# Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU Bison. # Copyright (C) 2000, 2001, 2002 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 # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # We need a recent Autotest. m4_version_prereq([2.52g]) # AT_DATA_GRAMMAR_PROLOGUE # ------------------------ # The prologue that should be included in any grammar which parser is # meant to be compiled. m4_define([AT_DATA_GRAMMAR_PROLOGUE], [[%{ #if HAVE_CONFIG_H # include /* We don't need perfect functions for these tests. */ # undef malloc # undef memcmp # undef realloc #endif %}] ]) # AT_DATA_GRAMMAR(NAME, CONTENT) # ------------------------------ # Generate the file NAME, which CONTENT is preceded by # AT_DATA_GRAMMAR_PROLOGUE. m4_define([AT_DATA_GRAMMAR], [AT_DATA([$1], [AT_DATA_GRAMMAR_PROLOGUE $2]) ]) # AT_COMPILE(OUTPUT, [SOURCES = OUTPUT.c]) # ---------------------------------------- # m4_define([AT_COMPILE], [AT_CHECK([$CC $CFLAGS $CPPFLAGS m4_default([$2], [$1.c]) -o $1], 0, [], [ignore])]) # AT_PARSER_CHECK(COMMAND, EXIT-STATUS, EXPOUT, EXPERR) # ----------------------------------------------------- # So that we can run `./testsuite PREPARSER='valgrind -q' for instance. m4_define([AT_PARSER_CHECK], [AT_CHECK([$PREPARSER $1], [$2], [$3], [$4])]) AT_INIT AT_TESTED([bison]) # Testing resistance to user bugs. m4_include([input.at]) # Testing output file names. m4_include([output.at]) # Testing the part of the engine that computes FOLLOW etc. m4_include([sets.at]) # Testing grammar reduction. m4_include([reduce.at]) # Testing that #lines are correct. m4_include([synclines.at]) # Testing that headers are sane. m4_include([headers.at]) # Testing that user actions are properly performed. m4_include([actions.at]) # Testing conflicts detection and resolution. m4_include([conflicts.at]) # Fulling testing (compilation and execution of the parser) on calc. m4_include([calc.at]) # Huge artificial grammars. # Torturing the stack expansion at runtime. m4_include([torture.at]) # Checking big, real world grammars. m4_include([existing.at]) # Some old bugs. m4_include([regression.at]) # GLR tests: # C++ types, simplified m4_include([cxx-type.at]) # Regression test for state-folding optimization m4_include([glr-regr1.at])