From 82c53be476163f328c99f04e85462d7494631a24 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 2 Jun 2003 03:58:34 +0000 Subject: [PATCH] (_AT_DATA_CALC_Y): Include unistd.h if available. Define 'alarm' to do nothing if unistd.h is not available. Add a new rule "exp: '-' error;" to test the above change to data/yacc.c. Use 'alarm' to abort any test taking longer than 10 seconds, as it's probably looping. (AT_CHECK_CALC): Test recovery from error in new grammar rule. Also, the new yacc.c generates two fewer diagnostics for an existing test. --- tests/calc.at | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) 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 -- 2.45.2