* tests/conflicts.at (%nonassoc and eof): Don't exit with status

1 on syntax error; just let yyparse do its thing.
* tests/glr-regression.at (Badly Collapsed GLR States): Likewise.
* tests/torture.at (AT_DATA_STACK_TORTURE): Likewise.
(Exploding the Stack Size with Alloca):
(Exploding the Stack Size with Malloc):
Expect exit status 2, not 1, since the parser is supposed to blow
its stack.  Problem reported by twlevo@xs4all.nl.
This commit is contained in:
Paul Eggert
2005-07-18 06:14:16 +00:00
parent 15f40952f7
commit 67fd79c427
4 changed files with 12 additions and 6 deletions

View File

@@ -1,5 +1,14 @@
2005-07-17 Paul Eggert <eggert@cs.ucla.edu>
* tests/conflicts.at (%nonassoc and eof): Don't exit with status
1 on syntax error; just let yyparse do its thing.
* tests/glr-regression.at (Badly Collapsed GLR States): Likewise.
* tests/torture.at (AT_DATA_STACK_TORTURE): Likewise.
(Exploding the Stack Size with Alloca):
(Exploding the Stack Size with Malloc):
Expect exit status 2, not 1, since the parser is supposed to blow
its stack. Problem reported by twlevo@xs4all.nl.
* data/glr.c (yyparse): Don't assume that the initial calls
to YYMALLOC succeed; in that case, yyparse incorrectly returned 0.
Print a stack-overflow message and fail instead.

View File

@@ -1,6 +1,6 @@
# Exercising Bison on conflicts. -*- Autotest -*-
# Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
# Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -62,7 +62,6 @@ static void
yyerror (const char *msg)
{
fprintf (stderr, "%s\n", msg);
exit (1);
}
/* The current argument. */

View File

@@ -74,7 +74,6 @@ int
yyerror (char const *msg)
{
fprintf (stderr, "%s\n", msg);
exit (4);
}

View File

@@ -404,7 +404,6 @@ static void
yyerror (const char *msg)
{
fprintf (stderr, "%s\n", msg);
exit (1);
}
/* There are YYLVAL_MAX of WAIT_FOR_EOFs. */
@@ -452,7 +451,7 @@ AT_PARSER_CHECK([./input 20], 0, [], [ignore])
AT_PARSER_CHECK([./input 900], 0, [], [ignore])
# 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], 1, [], [ignore])
AT_PARSER_CHECK([./input 10000], 2, [], [ignore])
AT_CLEANUP
@@ -473,6 +472,6 @@ AT_PARSER_CHECK([./input 20], 0, [], [ignore])
AT_PARSER_CHECK([./input 900], 0, [], [ignore])
# 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], 1, [], [ignore])
AT_PARSER_CHECK([./input 10000], 2, [], [ignore])
AT_CLEANUP