mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 20:33:03 +00:00
* tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR): New. * tests/actions.at, tests/calc.at, tests/conflicts.at, * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at, * tests/regression.at, tests/torture.at: Use them for all the grammars that are to be compiled. * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as... * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this. * doc/bison.texinfo (GLR Parsers): Document `inline'.
113 lines
2.9 KiB
Plaintext
113 lines
2.9 KiB
Plaintext
# 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 <config.h>
|
|
/* 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])
|