[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Test the return value of yyparse
From: |
Akim Demaille |
Subject: |
Test the return value of yyparse |
Date: |
Fri, 15 Nov 2002 10:01:11 +0100 |
User-agent: |
Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.2 (i386-pc-linux-gnu) |
Index: ChangeLog
from Akim Demaille <address@hidden>
Always check the value returned by yyparse.
* tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
returned by yyparse.
(_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
Adjust calls.
* tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
returned by yyparse.
Index: tests/calc.at
===================================================================
RCS file: /cvsroot/bison/bison/tests/calc.at,v
retrieving revision 1.42
diff -u -u -r1.42 calc.at
--- tests/calc.at 14 Nov 2002 09:58:01 -0000 1.42
+++ tests/calc.at 15 Nov 2002 08:55:59 -0000
@@ -291,6 +291,7 @@
{
value_t result = 0;
int count = 0;
+ int status = 0;
yyin = NULL;
if (argc == 2)
@@ -307,11 +308,10 @@
#if YYDEBUG
yydebug = 1;
#endif
- yyparse (]AT_PARAM_IF([&result, &count])[);
+ status = yyparse (]AT_PARAM_IF([&result, &count])[);
assert (global_result == result);
assert (global_count == count);
-
- return 0;
+ return status;
}
]])
])# _AT_DATA_CALC_Y
@@ -349,9 +349,10 @@
])
-# _AT_CHECK_CALC_ERROR(BISON-OPTIONS, INPUT, [NUM-DEBUG-LINES],
+# _AT_CHECK_CALC_ERROR(BISON-OPTIONS, EXIT-STATUS, INPUT,
+# [NUM-DEBUG-LINES],
# [VERBOSE-AND-LOCATED-ERROR-MESSAGE])
-# -------------------------------------------------------------
+# ---------------------------------------------------------
# Run `calc' on INPUT, and expect a `parse error' message.
#
# If INPUT starts with a slash, it is used as absolute input file name,
@@ -367,17 +368,17 @@
# If BISON-OPTIONS contains `%debug' but not `%glr', then NUM-STDERR-LINES
# is the number of expected lines on stderr.
m4_define([_AT_CHECK_CALC_ERROR],
-[m4_bmatch([$2], [^/],
- [AT_PARSER_CHECK([./calc $2], 0, [], [stderr])],
+[m4_bmatch([$3], [^/],
+ [AT_PARSER_CHECK([./calc $3], $2, [], [stderr])],
[AT_DATA([[input]],
-[[$2
+[[$3
]])
-AT_PARSER_CHECK([./calc input], 0, [], [stderr])])
+AT_PARSER_CHECK([./calc input], $2, [], [stderr])])
m4_bmatch([$1],
[%debug.*%glr\|%glr.*%debug],
[],
[%debug],
- [AT_CHECK([wc -l <stderr | sed 's/[[^0-9]]//g'], 0, [$3
+ [AT_CHECK([wc -l <stderr | sed 's/[[^0-9]]//g'], 0, [$4
])])
# Normalize the observed and expected error messages, depending upon the
@@ -397,7 +398,7 @@
mv at-stderr stderr
# 2. Create the reference error message.
AT_DATA([[expout]],
-[$4
+[$5
])
# 3. If locations are not used, remove them.
AT_YYERROR_SEES_LOC_IF([],
@@ -497,27 +498,27 @@
[486])
# Some parse errors.
-_AT_CHECK_CALC_ERROR([$1], [0 0], [11],
+_AT_CHECK_CALC_ERROR([$1], [1], [0 0], [11],
[1.3-1.4: parse error, unexpected "number"])
-_AT_CHECK_CALC_ERROR([$1], [1//2], [15],
+_AT_CHECK_CALC_ERROR([$1], [1], [1//2], [15],
[1.3-1.4: parse error, unexpected '/', expecting "number"
or '-' or '('])
-_AT_CHECK_CALC_ERROR([$1], [error], [4],
+_AT_CHECK_CALC_ERROR([$1], [1], [error], [4],
[1.1-1.2: parse error, unexpected $undefined, expecting
"number" or '-' or '\n' or '('])
-_AT_CHECK_CALC_ERROR([$1], [1 = 2 = 3], [22],
+_AT_CHECK_CALC_ERROR([$1], [1], [1 = 2 = 3], [22],
[1.7-1.8: parse error, unexpected '='])
-_AT_CHECK_CALC_ERROR([$1],
+_AT_CHECK_CALC_ERROR([$1], [1],
[
+1],
[14],
[2.1-2.2: parse error, unexpected '+'])
# Exercise error messages with EOF: work on an empty file.
-_AT_CHECK_CALC_ERROR([$1], [/dev/null], [4],
+_AT_CHECK_CALC_ERROR([$1], [1], [/dev/null], [4],
[1.1-1.2: parse error, unexpected "end of input",
expecting "number" or '-' or '\n' or '('])
# Exercise the error token: without it, we die at the first error,
# hence be sure i. to have several errors, ii. to test the action
# associated to `error'.
-_AT_CHECK_CALC_ERROR([$1], [(1 ++ 2) + (0 0) = 1], [82],
+_AT_CHECK_CALC_ERROR([$1], [0], [(1 ++ 2) + (0 0) = 1], [82],
[1.5-1.6: parse error, unexpected '+', expecting "number" or '-' or '('
1.15-1.16: parse error, unexpected "number"
calc: error: 0 != 1])
Index: tests/glr-regr1.at
===================================================================
RCS file: /cvsroot/bison/bison/tests/glr-regr1.at,v
retrieving revision 1.4
diff -u -u -r1.4 glr-regr1.at
--- tests/glr-regr1.at 14 Nov 2002 09:58:01 -0000 1.4
+++ tests/glr-regr1.at 15 Nov 2002 08:55:59 -0000
@@ -63,8 +63,7 @@
int
main (void)
{
- yyparse ();
- return 0;
+ return yyparse ();
}
int
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Test the return value of yyparse,
Akim Demaille <=