diff --git a/tests/calc.at b/tests/calc.at index 2eb594eb..377b9d19 100644 --- a/tests/calc.at +++ b/tests/calc.at @@ -1,4 +1,4 @@ -# Checking the output filenames. -*- Autotest -*- +# Simple calculator. -*- Autotest -*- # Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -45,6 +45,12 @@ AT_DATA_GRAMMAR([calc.y], # include # include #endif +#if HAVE_UNISTD_H +# include +#else +# undef alarm +# define alarm(seconds) /* empty */ +#endif #include extern void perror (const char *s); @@ -117,6 +123,7 @@ exp: | '(' exp ')' { $$ = $2; } | '(' error ')' { $$ = 1111; } | '!' { YYERROR; } +| '-' error { YYERROR; } ; %% /* The input. */ @@ -303,6 +310,7 @@ main (int argc, const char **argv) int count = 0; int status; + alarm (10); if (argc == 2) yyin = fopen (argv[1], "r"); else @@ -503,9 +511,13 @@ calc: error: 4444 != 1]) # The same, but this time exercising explicitly triggered syntax errors. # POSIX says the lookahead causing the error should not be discarded. -_AT_CHECK_CALC_ERROR([$1], [0], [(!) + (0 0) = 1], [64], +_AT_CHECK_CALC_ERROR([$1], [0], [(!) + (0 0) = 1], [62], [1.9: syntax error, unexpected "number" calc: error: 2222 != 1]) +_AT_CHECK_CALC_ERROR([$1], [0], [(- *) + (0 0) = 1], [70], +[1.3: syntax error, unexpected '*', expecting "number" or '-' or '(' or '!' +1.11: syntax error, unexpected "number" +calc: error: 2222 != 1]) AT_BISON_OPTION_POPDEFS AT_CLEANUP