X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/ed8e1f68e9743c391f4aba148968ea1e5e960973..9d56d2940aa8056748b1c1fe08f00b0125deba13:/tests/testsuite.at diff --git a/tests/testsuite.at b/tests/testsuite.at index be0d08d4..870207a4 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU Bison. -# Copyright 2000, 2001 Free Software Foundation, Inc. +# Copyright (C) 2000, 2001, 2002, 2003 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 @@ -21,13 +21,98 @@ # 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_COMPILE_CXX(OUTPUT, [SOURCES = OUTPUT.c]) +# -------------------------------------------- +m4_define([AT_COMPILE_CXX], +[AT_CHECK([$CXX $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 tests +m4_include([glr-regression.at])