[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: test 145 failure
From: |
Joel E. Denny |
Subject: |
Re: test 145 failure |
Date: |
Fri, 12 Jan 2007 17:21:55 -0500 (EST) |
Another ignored message.
On Tue, 9 Jan 2007, Joel E. Denny wrote:
> On Tue, 9 Jan 2007, Joel E. Denny wrote:
>
> > It turns out that Valgrind was actually detecting this problem on my
> > system before the seg fault, but we're still not using the right
> > combination of Valgrind flags in order to see it. I'll look into it.
>
> Rather, that test case was just ignoring stderr. I committed the
> following to fix that. I think there are other test cases that need this
> as well, but I'm going to be lazy and leave that to someone else.
>
> Index: ChangeLog
> ===================================================================
> RCS file: /sources/bison/bison/ChangeLog,v
> retrieving revision 1.1658
> diff -p -u -r1.1658 ChangeLog
> --- ChangeLog 10 Jan 2007 00:50:55 -0000 1.1658
> +++ ChangeLog 10 Jan 2007 02:49:06 -0000
> @@ -1,5 +1,14 @@
> 2007-01-09 Joel E. Denny <address@hidden>
>
> + * tests/local.at (AT_PARSER_CHECK): Add a PRE argument to specify a
> + command-line prefix.
> + * tests/torture.at (Exploding the Stack Size with Alloca): Stderr is
> + ignored, so use that PRE to set --log-fd=1 in VALGRIND_OPTS so we don't
> + miss Valgrind messages.
> + (Exploding the Stack Size with Malloc): Likewise.
> +
> +2007-01-09 Joel E. Denny <address@hidden>
> +
> Ignore YYSTACK_USE_ALLOCA for push parsers since the stacks can't be
> locals. Reported by Juan Manuel Guerrero at
> <http://lists.gnu.org/archive/html/bug-bison/2007-01/msg00000.html>.
> Index: tests/local.at
> ===================================================================
> RCS file: /sources/bison/bison/tests/local.at,v
> retrieving revision 1.23
> diff -p -u -r1.23 local.at
> --- tests/local.at 1 Jan 2007 00:42:21 -0000 1.23
> +++ tests/local.at 10 Jan 2007 02:49:06 -0000
> @@ -198,11 +198,11 @@ AT_CHECK([$CXX $CXXFLAGS $CPPFLAGS m4_bm
> ## Running a generated parser. ##
> ## ---------------------------- ##
>
> -# AT_PARSER_CHECK(COMMAND, EXIT-STATUS, EXPOUT, EXPERR)
> -# -----------------------------------------------------
> +# AT_PARSER_CHECK(COMMAND, EXIT-STATUS, EXPOUT, EXPERR, [PRE])
> +# ------------------------------------------------------------
> # So that we can run `./testsuite PREPARSER='valgrind -q' for instance.
> m4_define([AT_PARSER_CHECK],
> -[AT_CHECK([$PREPARSER $1], [$2], [$3], [$4])])
> +[AT_CHECK([$5 $PREPARSER $1], [$2], [$3], [$4])])
>
>
>
> Index: tests/torture.at
> ===================================================================
> RCS file: /sources/bison/bison/tests/torture.at,v
> retrieving revision 1.35
> diff -p -u -r1.35 torture.at
> --- tests/torture.at 10 Jan 2007 00:50:55 -0000 1.35
> +++ tests/torture.at 10 Jan 2007 02:49:06 -0000
> @@ -483,12 +483,15 @@ m4_pushdef([AT_USE_ALLOCA], [[
> AT_DATA_STACK_TORTURE([AT_USE_ALLOCA])
>
> # Below the limit of 200.
> -AT_PARSER_CHECK([./input 20], 0, [], [ignore])
> +AT_PARSER_CHECK([./input 20], 0, [], [ignore],
> + [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
> # Two enlargements: 2 * 2 * 200.
> -AT_PARSER_CHECK([./input 900], 0, [], [ignore])
> +AT_PARSER_CHECK([./input 900], 0, [], [ignore],
> + [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
> # Fails: beyond the limit of 10,000 (which we don't reach anyway since we
> # multiply by two starting at 200 => 5120 is the last possible).
> -AT_PARSER_CHECK([./input 10000], 2, [], [ignore])
> +AT_PARSER_CHECK([./input 10000], 2, [], [ignore],
> + [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
>
> # The push parser can't use alloca since the stacks can't be locals. This
> test
> # just helps guarantee we don't let the YYSTACK_USE_ALLOCA feature affect
> @@ -496,9 +499,12 @@ AT_PARSER_CHECK([./input 10000], 2, [],
> AT_DATA_STACK_TORTURE([AT_USE_ALLOCA],
> [[%push-pull-parser
> ]])
> -AT_PARSER_CHECK([./input 20], 0, [], [ignore])
> -AT_PARSER_CHECK([./input 900], 0, [], [ignore])
> -AT_PARSER_CHECK([./input 10000], 2, [], [ignore])
> +AT_PARSER_CHECK([./input 20], 0, [], [ignore],
> + [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
> +AT_PARSER_CHECK([./input 900], 0, [], [ignore],
> + [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
> +AT_PARSER_CHECK([./input 10000], 2, [], [ignore],
> + [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
>
> m4_popdef([AT_USE_ALLOCA])
>
> @@ -518,19 +524,25 @@ m4_pushdef([AT_USE_ALLOCA], [[#define YY
> AT_DATA_STACK_TORTURE([AT_USE_ALLOCA])
>
> # Below the limit of 200.
> -AT_PARSER_CHECK([./input 20], 0, [], [ignore])
> +AT_PARSER_CHECK([./input 20], 0, [], [ignore],
> + [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
> # Two enlargements: 2 * 2 * 200.
> -AT_PARSER_CHECK([./input 900], 0, [], [ignore])
> +AT_PARSER_CHECK([./input 900], 0, [], [ignore],
> + [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
> # Fails: beyond the limit of 10,000 (which we don't reach anyway since we
> # multiply by two starting at 200 => 5120 is the possible).
> -AT_PARSER_CHECK([./input 10000], 2, [], [ignore])
> +AT_PARSER_CHECK([./input 10000], 2, [], [ignore],
> + [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
>
> AT_DATA_STACK_TORTURE([AT_USE_ALLOCA],
> [[%push-pull-parser
> ]])
> -AT_PARSER_CHECK([./input 20], 0, [], [ignore])
> -AT_PARSER_CHECK([./input 900], 0, [], [ignore])
> -AT_PARSER_CHECK([./input 10000], 2, [], [ignore])
> +AT_PARSER_CHECK([./input 20], 0, [], [ignore],
> + [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
> +AT_PARSER_CHECK([./input 900], 0, [], [ignore],
> + [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
> +AT_PARSER_CHECK([./input 10000], 2, [], [ignore],
> + [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
>
> m4_popdef([AT_USE_ALLOCA])
>
>
- test 145 failure, Juan Manuel Guerrero, 2007/01/09
- Re: test 145 failure, Paul Eggert, 2007/01/09
- Message not available
- Message not available
- Message not available
- Message not available
- Re: test 145 failure,
Joel E. Denny <=