Files
bison/tests/testsuite.at
Paul Eggert 97c9a05ecd (AT_COMPILE): Use new LDFLAGS, LIBS vars, to avoid testing problems
for installations that set these vars at configure-time.
2003-02-18 05:09:44 +00:00

120 lines
3.3 KiB
Plaintext

# Process this file with autom4te to create testsuite. -*- Autotest -*-
# Test suite for GNU Bison.
# 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
# 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])
# ----------------------------------------
# Compile SOURCES into OUTPUT. If OUTPUT does not contain '.',
# assume that we are linking too; this is a hack.
m4_define([AT_COMPILE],
[AT_CHECK([$CC $CFLAGS $CPPFLAGS m4_bmatch([$1], [[.]], [], [$LDFLAGS ])m4_default([$2], [$1.c]) m4_bmatch([$1], [[.]], [], [$LIBS ])-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])