bug-bison
[Top][All Lists]
Advanced

[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])
>  
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]