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 <[EMAIL PROTECTED]> > > + * 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 <[EMAIL PROTECTED]> > + > 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]) > >
