]> git.saurik.com Git - bison.git/blobdiff - tests/testsuite.at
* tests/atlocal.in (CPPFLAGS): We have config.h.
[bison.git] / tests / testsuite.at
index be0d08d4673442ea8743fe28bb67cf9b98483157..73e184d58bccc2c5e774c9e4d1bb9b1ba7e9e589 100644 (file)
@@ -1,7 +1,7 @@
 # Process this file with autom4te to create testsuite. -*- Autotest -*-
 
 # Test suite for GNU Bison.
 # 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  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
 
 # 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
 # We need a recent Autotest.
 m4_version_prereq([2.52g])
 
 # 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])
 
 AT_INIT
 
 AT_TESTED([bison])
 
+# Testing resistance to user bugs.
+m4_include([input.at])
+
+# Testing output file names.
 m4_include([output.at])
 m4_include([output.at])
+
+# Testing the part of the engine that computes FOLLOW etc.
 m4_include([sets.at])
 m4_include([sets.at])
+
+# Testing grammar reduction.
 m4_include([reduce.at])
 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])
 m4_include([calc.at])
+
+# Huge artificial grammars.
+# Torturing the stack expansion at runtime.
 m4_include([torture.at])
 m4_include([torture.at])
+
+# Checking big, real world grammars.
+m4_include([existing.at])
+
+# Some old bugs.
 m4_include([regression.at])
 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])