mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-19 17:23:02 +00:00
* 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.
This commit is contained in:
@@ -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, [], [ignore])
|
||||
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 YYSTACK_USE_ALLOCA 0]])
|
||||
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])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user