mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-21 18:23:03 +00:00
tests: use valgrind where appropriate
Reported by Théophile Ranquet. * tests/glr-regression.at: Rewrite some test cases so that AT_PARSER_CHECK, which runs valgrind, is exposed with the parser, not with "echo". * tests/local.at, tests/regression.at, tests/headers.at: Use AT_PARSER_CHECK for generated parsers.
This commit is contained in:
1
THANKS
1
THANKS
@@ -106,6 +106,7 @@ Shura debil_urod@ngs.ru
|
|||||||
Stefano Lattarini stefano.lattarini@gmail.com
|
Stefano Lattarini stefano.lattarini@gmail.com
|
||||||
Steve Murphy murf@parsetree.com
|
Steve Murphy murf@parsetree.com
|
||||||
Sum Wu sum@geekhouse.org
|
Sum Wu sum@geekhouse.org
|
||||||
|
Théophile Ranquet theophile.ranquet@gmail.com
|
||||||
Thiru Ramakrishnan thiru.ramakrishnan@gmail.com
|
Thiru Ramakrishnan thiru.ramakrishnan@gmail.com
|
||||||
Tim Josling tej@melbpc.org.au
|
Tim Josling tej@melbpc.org.au
|
||||||
Tim Landscheidt tim@tim-landscheidt.de
|
Tim Landscheidt tim@tim-landscheidt.de
|
||||||
|
|||||||
@@ -67,9 +67,13 @@ static YYSTYPE exprMerge (YYSTYPE x0, YYSTYPE x1)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *input = NULL;
|
||||||
|
|
||||||
int
|
int
|
||||||
main (void)
|
main (int argc, const char* argv[])
|
||||||
{
|
{
|
||||||
|
assert (argc == 2);
|
||||||
|
input = argv[1];
|
||||||
return yyparse ();
|
return yyparse ();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,16 +82,7 @@ main (void)
|
|||||||
int
|
int
|
||||||
yylex (void)
|
yylex (void)
|
||||||
{
|
{
|
||||||
for (;;)
|
return *input++;
|
||||||
{
|
|
||||||
int ch;
|
|
||||||
assert (!feof (stdin));
|
|
||||||
ch = getchar ();
|
|
||||||
if (ch == EOF)
|
|
||||||
return 0;
|
|
||||||
else if (ch == 'B' || ch == 'P')
|
|
||||||
return ch;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]])
|
]])
|
||||||
AT_BISON_OPTION_POPDEFS
|
AT_BISON_OPTION_POPDEFS
|
||||||
@@ -96,7 +91,7 @@ AT_BISON_CHECK([[-o glr-regr1.c glr-regr1.y]], 0, [],
|
|||||||
[glr-regr1.y: conflicts: 1 shift/reduce
|
[glr-regr1.y: conflicts: 1 shift/reduce
|
||||||
])
|
])
|
||||||
AT_COMPILE([glr-regr1])
|
AT_COMPILE([glr-regr1])
|
||||||
AT_PARSER_CHECK([[echo BPBPB | ./glr-regr1]], 0,
|
AT_PARSER_CHECK([[./glr-regr1 BPBPB]], 0,
|
||||||
[[E -> 'B'
|
[[E -> 'B'
|
||||||
E -> 'B'
|
E -> 'B'
|
||||||
E -> E 'P' E
|
E -> E 'P' E
|
||||||
@@ -212,16 +207,27 @@ AT_BISON_CHECK([[-o glr-regr2a.c glr-regr2a.y]], 0, [],
|
|||||||
])
|
])
|
||||||
AT_COMPILE([glr-regr2a])
|
AT_COMPILE([glr-regr2a])
|
||||||
|
|
||||||
AT_PARSER_CHECK([[echo s VARIABLE_1 t v x q | ./glr-regr2a]], 0,
|
AT_DATA([input1.txt],
|
||||||
|
[[s VARIABLE_1 t v x q
|
||||||
|
]])
|
||||||
|
AT_PARSER_CHECK([[./glr-regr2a input1.txt]], 0,
|
||||||
[[Variable: 'VARIABLE_1'
|
[[Variable: 'VARIABLE_1'
|
||||||
]], [])
|
]])
|
||||||
AT_PARSER_CHECK([[echo s VARIABLE_1 , ANOTHER_VARIABLE_2 t e | ./glr-regr2a]],
|
|
||||||
|
AT_DATA([input2.txt],
|
||||||
|
[[s VARIABLE_1 , ANOTHER_VARIABLE_2 t e
|
||||||
|
]])
|
||||||
|
AT_PARSER_CHECK([[./glr-regr2a input2.txt]],
|
||||||
0,
|
0,
|
||||||
[[Varlist: 'VARIABLE_1,ANOTHER_VARIABLE_2'
|
[[Varlist: 'VARIABLE_1,ANOTHER_VARIABLE_2'
|
||||||
]])
|
]])
|
||||||
AT_PARSER_CHECK([[echo s VARIABLE_3 t v x | ./glr-regr2a]], 0,
|
|
||||||
|
AT_DATA([input3.txt],
|
||||||
|
[[s VARIABLE_3 t v x
|
||||||
|
]])
|
||||||
|
AT_PARSER_CHECK([[./glr-regr2a input3.txt]], 0,
|
||||||
[[Variable: 'VARIABLE_3'
|
[[Variable: 'VARIABLE_3'
|
||||||
]], [])
|
]])
|
||||||
|
|
||||||
|
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
@@ -329,10 +335,13 @@ AT_BISON_CHECK([[-o glr-regr3.c glr-regr3.y]], 0, [],
|
|||||||
])
|
])
|
||||||
AT_COMPILE([glr-regr3])
|
AT_COMPILE([glr-regr3])
|
||||||
|
|
||||||
AT_PARSER_CHECK([[echo p1 t4 o2 p1 p1 t1 o1 t2 p2 o1 t3 p2 p2 | ./glr-regr3]],
|
AT_DATA([input.txt],
|
||||||
|
[[p1 t4 o2 p1 p1 t1 o1 t2 p2 o1 t3 p2 p2
|
||||||
|
]])
|
||||||
|
AT_PARSER_CHECK([[./glr-regr3 input.txt]],
|
||||||
0,
|
0,
|
||||||
[[Result: 1c04
|
[[Result: 1c04
|
||||||
]], [])
|
]])
|
||||||
|
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
|
|
||||||
|
|||||||
@@ -272,7 +272,7 @@ done
|
|||||||
AT_SKIP_IF_CANNOT_LINK_C_AND_CXX
|
AT_SKIP_IF_CANNOT_LINK_C_AND_CXX
|
||||||
|
|
||||||
AT_COMPILE_CXX([parser], [[x[1-8].o -DCC_IS_CXX=$CC_IS_CXX main.cc]])
|
AT_COMPILE_CXX([parser], [[x[1-8].o -DCC_IS_CXX=$CC_IS_CXX main.cc]])
|
||||||
AT_CHECK([./parser], [0], [[expout]])
|
AT_PARSER_CHECK([./parser], [0], [[expout]])
|
||||||
|
|
||||||
m4_popdef([AT_TEST])
|
m4_popdef([AT_TEST])
|
||||||
|
|
||||||
|
|||||||
@@ -716,7 +716,7 @@ AT_COMPILE([c-only.o], [c-only.c])
|
|||||||
AT_COMPILE_CXX([cxx-only.o], [cxx-only.cc])
|
AT_COMPILE_CXX([cxx-only.o], [cxx-only.cc])
|
||||||
AT_CHECK([$CXX $CXXFLAGS $CPPFLAGS $LDFLAGS c-only.o cxx-only.o -o c-and-cxx ||
|
AT_CHECK([$CXX $CXXFLAGS $CPPFLAGS $LDFLAGS c-only.o cxx-only.o -o c-and-cxx ||
|
||||||
exit 77], [ignore], [ignore])
|
exit 77], [ignore], [ignore])
|
||||||
AT_CHECK([./c-and-cxx])
|
AT_PARSER_CHECK([./c-and-cxx])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1593,7 +1593,7 @@ main (void)
|
|||||||
]])
|
]])
|
||||||
|
|
||||||
AT_FULL_COMPILE([input])
|
AT_FULL_COMPILE([input])
|
||||||
AT_CHECK([./input], 0, [[x: 1, y: 2
|
AT_PARSER_CHECK([./input], 0, [[x: 1, y: 2
|
||||||
]])
|
]])
|
||||||
AT_BISON_OPTION_POPDEFS
|
AT_BISON_OPTION_POPDEFS
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user