]> git.saurik.com Git - bison.git/commitdiff
* tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
authorAkim Demaille <akim@epita.fr>
Thu, 30 Aug 2001 15:36:37 +0000 (15:36 +0000)
committerAkim Demaille <akim@epita.fr>
Thu, 30 Aug 2001 15:36:37 +0000 (15:36 +0000)
* m4/atconfig.m4: Remove.
* tests/testsuite.at, tests/atlocal.in, tests/output.at,
* tests/bison: New.
* tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
m4_if, m4_patsubst, and m4_regexp.
* tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
`input' file instead of echo.

14 files changed:
ChangeLog
configure.in
m4/Makefile.am
m4/atconfig.m4 [deleted file]
tests/Makefile.am
tests/atconfig.in [deleted file]
tests/atgeneral.m4 [deleted file]
tests/atlocal.in [new file with mode: 0644]
tests/bison [new file with mode: 0755]
tests/calc.at
tests/output.at [new file with mode: 0644]
tests/regression.at
tests/suite.at [deleted file]
tests/testsuite.at [new file with mode: 0644]

index 39a7d63918d49fc6e5c16ac0090b7557e570ed07..fc160a99aee698abf523aec2e4003de77b295c5a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2001-08-30  Akim Demaille  <akim@epita.fr>
+
+       * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
+       * m4/atconfig.m4: Remove.
+       * tests/testsuite.at, tests/atlocal.in, tests/output.at,
+       * tests/bison: New.
+       * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
+       m4_if, m4_patsubst, and m4_regexp.
+       * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
+       `input' file instead of echo.
+
 2001-08-29  Akim Demaille  <akim@epita.fr>
 
        Bump to 1.28e.
index b07000644cc40ad8d187cb2e8f484ecdecfdfe82..7cf04f5390cd8a40c43d1e8bd399368265e6e4cb 100644 (file)
@@ -1,12 +1,31 @@
-# Process this file with autoconf to produce a configure script.
-AC_PREREQ(2.52)
-AC_INIT(bison, 1.28e, bug-bison@gnu.org)
+# Configure template for GNU Bison.                   -*-Autoconf-*-
+#
+# 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 of the License, 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 Autoconf to run a recent Autotest.
+AC_PREREQ(2.52e)
+
+AC_INIT([GNU Bison], [1.28e], [bug-bison@gnu.org])
 AC_CONFIG_AUX_DIR(config)
-AM_INIT_AUTOMAKE(bison, 1.28e)
+
+AM_INIT_AUTOMAKE([bison], [1.28e])
 AM_CONFIG_HEADER(config.h:config.hin)
 
 # Initialize the test suite.
-AT_CONFIG(../src)
+AC_CONFIG_TESTDIR(tests)
 
 # Checks for programs.
 AC_PROG_CC
@@ -83,4 +102,4 @@ AC_OUTPUT([Makefile
            intl/Makefile po/Makefile.in
            lib/Makefile src/Makefile doc/Makefile
            m4/Makefile
-           tests/Makefile tests/atconfig])
+           tests/Makefile])
index 82e99cd9a6c544e2de3f423fe9903090ecdf202b..3ed90aa47a0f1b7c0e6e25c088b5535a9bdc9f06 100644 (file)
@@ -1,6 +1,5 @@
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
 EXTRA_DIST =                                   \
-atconfig.m4                                    \
 c-bs-a.m4                                      \
 codeset.m4                                     \
 error.m4                                       \
diff --git a/m4/atconfig.m4 b/m4/atconfig.m4
deleted file mode 100644 (file)
index f4a4de4..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-## ----------------------##
-## Prepare for testing.  ##
-## ----------------------##
-
-# serial 2
-
-# Single argument says where are built sources to test, relative to the
-# built test directory.  Maybe omitted if the same (flat distribution).
-
-AC_DEFUN([AT_CONFIG],
-[AT_TESTPATH=ifelse([$1], [], [.], [$1])
-AC_SUBST([AT_TESTPATH])
-# Try to be compatible with both Autoconf 2.13 and 2.50.
-if test -z "$ECHO_C$ECHO_N$ECHO_T"; then
-  ECHO_C="$ac_c"
-  ECHO_N="$ac_n"
-  ECHO_T="$ac_t"
-  AC_SUBST([ECHO_C])
-  AC_SUBST([ECHO_N])
-  AC_SUBST([ECHO_T])
-fi
-])
index bd17ad605f4ffcbb8931afeab140b3e989df1f3b..3d8d0d27003411527f825cfb53a1968bb553f56f 100644 (file)
 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 ## 02111-1307, USA.
 
-# Distribute the testsuite since GNU M4 is needed to build it.
-noinst_SCRIPTS = testsuite
+EXTRA_DIST = atlocal.in bison $(TESTSUITE_AT) testsuite
 
-SUITE = calc.at regression.at
+DISTCLEANFILES       = atconfig atlocal
+MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
 
-EXTRA_DIST = atgeneral.m4 suite.at $(SUITE) $(noinst_SCRIPTS)
+TESTSUITE_AT = \
+       testsuite.at \
+       output.at calc.at regression.at
+TESTSUITE = $(srcdir)/testsuite
 
-check-local: atconfig $(srcdir)/testsuite
-       $(SHELL) $(srcdir)/testsuite
+AUTOM4TE = autom4te
+AUTOTEST = $(AUTOM4TE) --language=autotest
+$(srcdir)/$(TESTSUITE): $(TESTSUITE_AT)
+       $(AUTOTEST) -I $(srcdir) testsuite.at -o $@.tmp
+       mv $@.tmp $@
 
-testsuite: atgeneral.m4 suite.at $(SUITE)
-       $(M4) -I $(srcdir) atgeneral.m4 suite.at | \
-          sed -e 's/[  ]*$$//' | \
-         sed -e '/^$$/N;/\n$$/D' > $@-tmp
-       chmod +x $@-tmp
-       mv $@-tmp $@
+atconfig: $(top_builddir)/config.status
+       cd $(top_builddir) && ./config.status tests/$@
 
-CLEANFILES = debug-*.sh empty
-DISTCLEANFILES = atconfig
-MAINTAINERCLEANFILES = testsuite
+atlocal: $(srcdir)/atlocal.in $(top_builddir)/config.status
+       cd $(top_builddir) && ./config.status tests/$@
+
+clean-local:
+       $(SHELL) $(TESTSUITE) --clean
+
+check-local: atconfig atlocal $(TESTSUITE)
+       $(SHELL) $(TESTSUITE)
+
+# Run the test suite on the *installed* tree.
+installcheck-local:
+       $(SHELL) $(TESTSUITE) AUTOTEST_PATH=$(exec_prefix)/bin
diff --git a/tests/atconfig.in b/tests/atconfig.in
deleted file mode 100644 (file)
index 3d1bb78..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-# @configure_input@                                    -*- shell-script -*-
-# Configurable variable values for building test suites.
-# Copyright (C) 2000, 2001 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.
-
-# This script is part of Autotest.  Unlimited permission to copy,
-# distribute and modify the testing scripts that are the output of
-# that Autotest script is given.  You need not follow the terms of the
-# GNU General Public License when using or distributing such scripts,
-# even though portions of the text of Autotest appear in them.  The
-# GNU General Public License (GPL) does govern all other use of the
-# material that constitutes the Autotest.
-#
-# Certain portions of the Autotest source text are designed to be
-# copied (in certain cases, depending on the input) into the output of
-# Autotest.  We call these the "data" portions.  The rest of the
-# Autotest source text consists of comments plus executable code that
-# decides which of the data portions to output in any given case.  We
-# call these comments and executable code the "non-data" portions.
-# Autotest never copies any of the non-data portions into its output.
-#
-# This special exception to the GPL applies to versions of Autotest
-# released by the Free Software Foundation.  When you make and
-# distribute a modified version of Autotest, you may extend this
-# special exception to the GPL to apply to your modified version as
-# well, *unless* your modified version has the potential to copy into
-# its output some of the text that was the non-data portion of the
-# version that you started with.  (In other words, unless your change
-# moves or copies text from the non-data portions to the data
-# portions.)  If your modification has such potential, you must delete
-# any notice of this special exception to the GPL from your modified
-# version.
-
-# Snippet (1
-# This debugging script has been automatically generated from `make check'.
-# Call it with `--help' to get a quick usage summary.
-
-at_package='@PACKAGE@'
-at_version='@VERSION@'
-# Snippet )1
-# Snippet (2
-at_n='@ECHO_N@'
-at_c='@ECHO_C@'
-test -f atlocal && . ./atlocal
-
-# LC_MESSAGES is always shadowed by LC_ALL.  Here are the only cases:
-# - GNU:       LANGUAGE -> LC_ALL -> LC_MESSAGES -> LANG
-# - POSIX:     LC_ALL -> LC_MESSAGES -> LANG
-# - XPG4:      LC_ALL -> LANG
-# - SysV/XPG2: LANG
-export LANGUAGE; LANGUAGE=C
-export LANG; LANG=C
-export LC_ALL; LC_ALL=C
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-# Use absolute file notations, as the test might change directories.
-at_srcdir=`cd @srcdir@ && pwd`
-at_top_srcdir=`cd @top_srcdir@ && pwd`
-at_builddir=`pwd`
-at_top_builddir=`cd .. && pwd`
-if test -n "@AT_TESTPATH@"; then
-  export PATH; PATH=`pwd`:`cd @AT_TESTPATH@ && pwd`:$PATH
-else
-  export PATH; PATH=`pwd`:$PATH
-fi
-
-# We need GNU M4.
-M4='@M4@'
-
-# We need a C compiler.
-CC='@CC@'
-CFLAGS='@CFLAGS@'
-
-# We need `config.h'.
-CPPFLAGS="-I$at_top_builddir @CPPFLAGS@"
-
-# We want to use the files shipped with Bison.
-BISON_SIMPLE=$at_top_srcdir/src/bison.simple
-export BISON_SIMPLE
-BISON_HAIRY=$at_top_srcdir/src/bison.hairy
-export BISON_HAIRY
-# Snippet )2
diff --git a/tests/atgeneral.m4 b/tests/atgeneral.m4
deleted file mode 100644 (file)
index 1387b75..0000000
+++ /dev/null
@@ -1,420 +0,0 @@
-divert(-1)                                                 -*- Autoconf -*-
-# `m4' macros used in building test suites.
-# Copyright (C) 2000 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.
-
-# This script is part of Autotest.  Unlimited permission to copy,
-# distribute and modify the testing scripts that are the output of
-# that Autotest script is given.  You need not follow the terms of the
-# GNU General Public License when using or distributing such scripts,
-# even though portions of the text of Autotest appear in them.  The
-# GNU General Public License (GPL) does govern all other use of the
-# material that constitutes the Autotest.
-#
-# Certain portions of the Autotest source text are designed to be
-# copied (in certain cases, depending on the input) into the output of
-# Autotest.  We call these the "data" portions.  The rest of the
-# Autotest source text consists of comments plus executable code that
-# decides which of the data portions to output in any given case.  We
-# call these comments and executable code the "non-data" portions.
-# Autotest never copies any of the non-data portions into its output.
-#
-# This special exception to the GPL applies to versions of Autotest
-# released by the Free Software Foundation.  When you make and
-# distribute a modified version of Autotest, you may extend this
-# special exception to the GPL to apply to your modified version as
-# well, *unless* your modified version has the potential to copy into
-# its output some of the text that was the non-data portion of the
-# version that you started with.  (In other words, unless your change
-# moves or copies text from the non-data portions to the data
-# portions.)  If your modification has such potential, you must delete
-# any notice of this special exception to the GPL from your modified
-# version.
-
-changequote()
-changequote([, ])
-
-define([AT_DEFINE], defn([define]))
-define([AT_EVAL], defn([eval]))
-define([AT_FORMAT], defn([format]))
-define([AT_INCLUDE], defn([include]))
-define([AT_SHIFT], defn([shift]))
-define([AT_UNDEFINE], defn([undefine]))
-
-undefine([define])
-undefine([eval])
-undefine([format])
-undefine([include])
-undefine([shift])
-undefine([undefine])
-
-
-# AT_CASE(SWITCH, VAL1, IF-VAL1, VAL2, IF-VAL2, ..., DEFAULT)
-# -----------------------------------------------------------
-# m4 equivalent of
-# switch (SWITCH)
-# {
-#   case VAL1:
-#     IF-VAL1;
-#     break;
-#   case VAL2:
-#     IF-VAL2;
-#     break;
-#   ...
-#   default:
-#     DEFAULT;
-#     break;
-# }.
-# All the values are optional, and the macro is robust to active
-# symbols properly quoted.
-AT_DEFINE([AT_CASE],
-[ifelse([$#], 0, [],
-       [$#], 1, [],
-       [$#], 2, [$2],
-        [$1], [$2], [$3],
-        [AT_CASE([$1], AT_SHIFT(AT_SHIFT(AT_SHIFT($@))))])])
-
-
-# Use of diversions:
-#  0 - overall initialization; for each test group: skipping and cleanups;
-#  1 - for each test group: proper code, to reinsert between cleanups;
-#  2 - overall wrap up: generation of debugging scripts and statistics.
-
-
-# AT_LINE
-# -------
-# Return the current file sans directory, a colon, and the current line.
-AT_DEFINE([AT_LINE],
-[patsubst(__file__, ^.*/\(.*\), \1):__line__])
-
-
-# AT_INIT(PROGRAM)
-# ----------------
-# Begin testing suite, using PROGRAM to check version.  The search path
-# should be already preset so the proper executable will be selected.
-AT_DEFINE([AT_INIT],
-[AT_DEFINE(AT_ordinal, 0)
-. ./atconfig
-# Snippet (3
-# -e sets to true
-at_stop_on_error=false;
-# Shall we save and check stdout and stderr?
-# -n sets to false
-at_check_stds=:;
-# Shall we
-# -s sets to false, and -v to true
-at_verbose=false
-
-at_usage="Usage: $[0] [OPTION]...
-
-  -e  Abort the full suite and inhibit normal clean up if a test fails
-  -n  Do not redirect stdout and stderr and do not test their contents
-  -s  Inhibit verbosity while generating or executing debugging scripts
-  -v  Force more detailed output, default for debugging scripts unless -s
-  -x  Have the shell to trace command execution; also implies option -n"
-
-# Snippet )3
-
-# Snippet (4
-while test $[#] -gt 0; do
-  case "$[1]" in
-    --help) echo "$at_usage"; exit 0 ;;
-    --version) echo "$[0] ($at_package) $at_version"; exit 0 ;;
-    -e) at_stop_on_error=:;;
-    -n) at_check_stds=false;;
-    -s) at_verbose=false; at_silent=1;;
-    -v) at_verbose=:; at_silent=;;
-    -x) at_traceon='set -vx'; at_traceoff='set +vx'; at_check_stds=false;;
-    *) echo 1>&2 "Try \`$[0] --help' for more information."; exit 1 ;;
-  esac
-  shift
-done
-
-
-# To check whether a test succeeded or not, we compare an expected
-# output with a reference.  In the testing suite, we just need `cmp'
-# but in debugging scripts, we want more information, so we prefer
-# `diff -u'.  Nonetheless we will use `diff' only, because in DOS
-# environments, `diff' considers that two files are equal included
-# when there are only differences on the coding of new lines. `cmp'
-# does not.
-#
-# Finally, not all the `diff' support `-u', and some, like Tru64, even
-# refuse to `diff' /dev/null.
-: >empty
-
-if diff -u empty empty >/dev/null 2>&1; then
-  at_diff='diff -u'
-else
-  at_diff='diff'
-fi
-
-
-
-# Each generated debugging script, containing a single test group, cleans
-# up files at the beginning only, not at the end.  This is so we can repeat
-# the script many times and browse left over files.  To cope with such left
-# over files, the full test suite cleans up both before and after test groups.
-# Snippet )4
-
-if $1 --version | grep "$at_package.*$at_version" >/dev/null; then
-  at_banner="Testing suite for $at_package, version $at_version"
-  at_dashes=`echo $at_banner | sed s/./=/g`
-  echo "$at_dashes"
-  echo "$at_banner"
-  echo "$at_dashes"
-else
-  echo '======================================================='
-  echo 'ERROR: Not using the proper version, no tests performed'
-  echo '======================================================='
-  exit 1
-fi
-
-# Remove any debugging script resulting from a previous run.
-rm -f debug-*.sh
-
-at_failed_list=
-at_ignore_count=0
-divert(2)[]dnl
-
-# Wrap up the testing suite with summary statistics.
-
-rm -f at-check-line at-setup-line
-at_fail_count=0
-if test -z "$at_failed_list"; then
-  if test "$at_ignore_count" = 0; then
-    at_banner="All $at_test_count tests were successful"
-  else
-    at_banner="All $at_test_count tests were successful ($at_ignore_count ignored)"
-  fi
-else
-  echo
-  echo $at_n "Writing \`debug-NN.sh' scripts, NN =$at_c"
-  for at_group in $at_failed_list; do
-    echo $at_n " $at_group$at_c"
-    ( echo '#!/bin/sh'
-      sed -n '/^[#] Snippet (1/,/^[#] Snippet )1/p' atconfig
-      sed -n '/^[#] Snippet (2/,/^[#] Snippet )2/p' atconfig
-      sed -n "/^[#] Snippet (3/,/^[#] Snippet )3/p" $[0]
-      test -z "$at_silent" && echo 'at_verbose=:'
-      sed -n "/^[#] Snippet (4/,/^[#] Snippet )4/p" $[0]
-      sed -n "/^[#] Snippet (c$at_group(/,/^[#] Snippet )c$at_group)/p" $[0]
-      at_desc=`sed -n \
-        '/^[#] Snippet (d'$at_group'(/,/^[#] Snippet )d'$at_group')/p' $[0] \
-        | sed -n '2s/^[#] //p'`
-      echo 'if $at_verbose; then'
-      echo '  at_banner="$[0]: '$at_desc'"'
-      echo '  at_dashes=`echo $at_banner | sed s/./=/g`'
-      echo '  echo'
-      echo '  echo "$at_dashes"'
-      echo '  echo "$at_banner"'
-      echo '  echo "$at_dashes"'
-      echo 'fi'
-      echo
-      sed -n "/^[#] Snippet (d$at_group(/,/^[#] Snippet )d$at_group)/p" $[0]
-      sed -n "/^[#] Snippet (s$at_group(/,/^[#] Snippet )s$at_group)/p" $[0]
-      echo 'exit 0'
-    ) | grep -v '^[#] Snippet' > debug-$at_group.sh
-    chmod +x debug-$at_group.sh
-    at_fail_count=`expr $at_fail_count + 1`
-  done
-  echo ', done'
-  if $at_stop_on_error; then
-    at_banner='ERROR: One of the tests failed, inhibiting subsequent tests'
-  else
-    at_banner="ERROR: Suite unsuccessful, $at_fail_count of $at_test_count tests failed"
-  fi
-fi
-at_dashes=`echo $at_banner | sed s/./=/g`
-echo
-echo "$at_dashes"
-echo "$at_banner"
-echo "$at_dashes"
-
-if test -n "$at_failed_list"; then
-  if test -z "$at_silent"; then
-    echo
-    echo 'When reporting failed tests to maintainers, do not merely list test'
-    echo 'numbers, as the numbering changes between releases and pretests.'
-    echo 'Be careful to give at least all the information you got about them.'
-    echo 'You may investigate any problem if you feel able to do so, in which'
-    echo 'case the generated debugging scripts provide good starting points.'
-    echo "Go on and modify them at will.  \`./debug-NN --help' gives usage"
-    echo 'information.  Now, failed tests will be executed again, verbosely.'
-    for at_group in $at_failed_list; do
-      ./debug-$at_group.sh
-    done
-  fi
-  exit 1
-fi
-
-exit 0
-divert[]dnl
-])# AT_INIT
-
-
-
-# AT_SETUP(DESCRIPTION)
-# ---------------------
-# Start a group of related tests, all to be executed in the same subshell.
-# The group is testing what DESCRIPTION says.
-AT_DEFINE([AT_SETUP],
-[AT_DEFINE([AT_ordinal], AT_EVAL(AT_ordinal + 1))
-pushdef([AT_group_description], [$1])
-pushdef([AT_data_files], )
-pushdef([AT_data_expout], )
-pushdef([AT_data_experr], )
-if $at_stop_on_error && test -n "$at_failed_list"; then :; else
-divert(1)[]dnl
-  echo AT_LINE > at-check-line
-  echo AT_LINE > at-setup-line
-  if $at_verbose; then
-    echo 'testing AT_group_description'
-    echo $at_n "     $at_c"
-  fi
-  if $at_verbose; then
-    echo "AT_ordinal. $srcdir/AT_LINE..."
-  else
-    echo $at_n "substr(AT_ordinal. $srcdir/AT_LINE                            , 0, 30)[]$at_c"
-  fi
-  if test -z "$at_skip_mode"; then
-    (
-[#] Snippet (d[]AT_ordinal[](
-[#] Testing AT_group_description
-[#] Snippet )d[]AT_ordinal[])
-[#] Snippet (s[]AT_ordinal[](
-[#] starting from `AT_LINE'.
-$at_traceon
-])
-
-
-# AT_CLEANUP(FILES)
-# -----------------
-# Complete a group of related tests, recursively remove those FILES
-# created within the test.  There is no need to list stdout, stderr,
-# nor files created with AT_DATA.
-AT_DEFINE([AT_CLEANUP],
-$at_traceoff
-[[#] Snippet )s[]AT_ordinal[])
-    )
-    at_status=$?
-    $at_verbose &&
-      echo $at_n "     AT_ordinal. $srcdir/`cat at-setup-line`: $at_c"
-    case $at_status in
-      0) echo ok
-         ;;
-      77) echo "ignored near \``cat at-check-line`'"
-          at_ignore_count=`expr $at_ignore_count + 1`
-          ;;
-      *) echo "FAILED near \``cat at-check-line`'"
-         at_failed_list="$at_failed_list AT_ordinal"
-         ;;
-    esac
-  else
-     echo 'ignored (skipped)'
-     at_ignore_count=`expr $at_ignore_count + 1`
-  fi
-  at_test_count=AT_ordinal
-  if $at_stop_on_error && test -n "$at_failed_list"; then :; else
-divert(0)[]dnl
-[#] Snippet (c[]AT_ordinal[](
-
-rm ifelse([AT_data_files$1], , [-f], [-rf[]AT_data_files[]ifelse($1, , , [ $1])]) stdout stderr[]AT_data_expout[]AT_data_experr
-[#] Snippet )c[]AT_ordinal[])
-undivert(1)[]dnl
-    rm ifelse([AT_data_files$1], , [-f], [-rf[]AT_data_files[]ifelse($1, , , [ $1])]) stdout stderr[]AT_data_expout[]AT_data_experr
-  fi
-fi
-popdef([AT_data_experr])
-popdef([AT_data_expout])
-popdef([AT_data_files])
-popdef([AT_group_description])[]dnl
-])# AT_CLEANUP
-
-
-# AT_DATA(FILE, CONTENTS)
-# -----------------------
-# Initialize an input data FILE with given CONTENTS, which should end with
-# an end of line.
-# This macro is not robust to active symbols in CONTENTS *on purpose*.
-# If you don't want CONTENT to be evaluated, quote it twice.
-AT_DEFINE([AT_DATA],
-[AT_DEFINE([AT_data_files], AT_data_files[ ]$1)
-cat >$1 <<'_ATEOF'
-$2[]_ATEOF
-])
-
-
-# AT_CHECK(COMMANDS, [STATUS], STDOUT, STDERR)
-# --------------------------------------------
-# Execute a test by performing given shell COMMANDS.  These commands
-# should normally exit with STATUS, while producing expected STDOUT and
-# STDERR contents.  The special word `expout' for STDOUT means that file
-# `expout' contents has been set to the expected stdout.  The special word
-# `experr' for STDERR means that file `experr' contents has been set to
-# the expected stderr.
-# STATUS is not checked if it is empty.
-# STDOUT and STDERR can be the special value `ignore', in which case
-# their content is not checked.
-AT_DEFINE([AT_CHECK],
-[$at_traceoff
-$at_verbose && echo "$srcdir/AT_LINE: patsubst([$1], [\([\"`$]\)], \\\1)"
-echo AT_LINE > at-check-line
-$at_check_stds && exec 5>&1 6>&2 1>stdout 2>stderr
-$at_traceon
-$1
-ifelse([$2], [], [],
-[at_status=$?
-if test $at_status != $2; then
-  $at_verbose && echo "Exit code was $at_status, expected $2" >&6
-dnl Maybe there was an important message to read before it died.
-  $at_verbose && $at_check_stds && cat stderr >&6
-dnl Preserve exit code 77.
-  test $at_status = 77 && exit 77
-  exit 1
-fi
-])dnl
-$at_traceoff
-if $at_check_stds; then
-dnl Restore stdout to fd1 and stderr to fd2.
-  exec 1>&5 2>&6
-dnl If not verbose, neutralize the output of diff.
-  $at_verbose || exec 1>/dev/null 2>/dev/null
-  at_failed=false;
-  AT_CASE([$4],
-          ignore, [$at_verbose && cat stderr;:],
-          experr, [AT_DEFINE([AT_data_experr], [ experr])dnl
-$at_diff experr stderr || at_failed=:],
-          [], [$at_diff empty stderr || at_failed=:],
-          [echo $at_n "patsubst([$4], [\([\"`$]\)], \\\1)$at_c" | $at_diff - stderr || at_failed=:])
-  AT_CASE([$3],
-          ignore, [$at_verbose && cat stdout;:],
-          expout, [AT_DEFINE([AT_data_expout], [ expout])dnl
-$at_diff expout stdout || at_failed=:],
-          [], [$at_diff empty stdout || at_failed=:],
-          [echo $at_n "patsubst([$3], [\([\"`$]\)], \\\1)$at_c" | $at_diff - stdout || at_failed=:])
-  if $at_failed; then
-    exit 1
-  else
-    :
-  fi
-fi
-$at_traceon
-])# AT_CHECK
-
-
-divert(0)dnl
diff --git a/tests/atlocal.in b/tests/atlocal.in
new file mode 100644 (file)
index 0000000..9a6790a
--- /dev/null
@@ -0,0 +1,10 @@
+# @configure_input@                                    -*- shell-script -*-
+# Configurable variable values for Bison test suite.
+# Copyright 2000, 2001 Free Software Foundation, Inc.
+
+# We need a C compiler.
+CC='@CC@'
+CFLAGS='@CFLAGS@'
+
+# We need `config.h'.
+CPPFLAGS="-I $top_builddir @CPPFLAGS@"
diff --git a/tests/bison b/tests/bison
new file mode 100755 (executable)
index 0000000..86ecafa
--- /dev/null
@@ -0,0 +1,11 @@
+#! /bin/sh
+# Wrapper around a non installed bison to make it work as an installed one.
+. ./atconfig
+
+# We want to use the files shipped with Bison.
+BISON_SIMPLE=$top_srcdir/src/bison.simple
+export BISON_SIMPLE
+BISON_HAIRY=$top_srcdir/src/bison.hairy
+export BISON_HAIRY
+
+exec $top_builddir/src/bison ${1+"$@"}
index 3fa7aa6128ed25802361e55d3d5485d850d38593..4107dcb06fdcb65c511e56d14f1d40d9c94b6e52 100644 (file)
@@ -1,11 +1,22 @@
-#                                                        -*- Autoconf -*-
+# Checking the output filenames.                         -*- Autotest -*-
+# Copyright 2000, 2001 Free Software Foundation, Inc.
 
-cat <<EOF
+# 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.
 
-Simple Calculator.
+# 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.
 
-EOF
+# 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.
 
+AT_BANNER([[Simple Calculator.]])
 
 ## ---------------------------------------------------- ##
 ## Compile the grammar described in the documentation.  ##
@@ -23,11 +34,9 @@ EOF
 # some occurrences of `$1' etc. which will be interpreted by m4.  So
 # you should call it with $1, $2, and $3 as arguments, which is what
 # AT_DATA_CALC_Y does.
-AT_DEFINE([_AT_DATA_CALC_Y],
-[ifelse([$1$2$3],
-        $[1]$[2]$[3], [],
-        [errprint([$0: Invalid arguments: $@
-])m4exit(1)])dnl
+m4_define([_AT_DATA_CALC_Y],
+[m4_if([$1$2$3], $[1]$[2]$[3], [],
+       [m4_fatal([$0: Invalid arguments: $@])])dnl
 AT_DATA([calc.y],
 [[/* Infix notation calculator--calc */
 
@@ -241,11 +250,11 @@ main (int argn, const char **argv)
 # AT_DATA_CALC_Y([BISON-OPTIONS])
 # -------------------------------
 # Produce `calc.y'.
-AT_DEFINE([AT_DATA_CALC_Y],
+m4_define([AT_DATA_CALC_Y],
 [_AT_DATA_CALC_Y($[1], $[2], $[3],
-                 [ifelse(regexp([$1], [--yyerror-verbose]),
-                         [-1], [],
-                         [[#define YYERROR_VERBOSE]])])])
+                 [m4_if(m4_regexp([$1], [--yyerror-verbose]),
+                        [-1], [],
+                        [[#define YYERROR_VERBOSE]])])])
 
 
 
@@ -255,12 +264,15 @@ AT_DEFINE([AT_DATA_CALC_Y],
 # If `--debug' is passed to bison, discard all the debugging traces
 # preserving only the `parse errors'.  Note that since there should be
 # none, the `grep' will fail with exit status 1.
-AT_DEFINE([_AT_CHECK_CALC],
-[ifelse(regexp([$1], [--debug]),
+m4_define([_AT_CHECK_CALC],
+[AT_DATA([[input]],
+[[$2
+]])
+m4_if(m4_regexp([$1], [--debug]),
   [-1],
-     [AT_CHECK([echo "$2" | calc],
+     [AT_CHECK([./calc <input],
                [0], [], [])],
-     [AT_CHECK([echo "$2" | calc 2>&1 >/dev/null | grep 'parse error' >&2],
+     [AT_CHECK([calc ./input 2>&1 >/dev/null | grep 'parse error' >&2],
                [1], [], [])])])
 
 
@@ -268,14 +280,18 @@ AT_DEFINE([_AT_CHECK_CALC],
 #                      [ERROR-LOCATION], [IF-YYERROR-VERBOSE])
 # ------------------------------------------------------------
 # Run `calc' on INPUT, and expect STDERR.
-AT_DEFINE([_AT_CHECK_CALC_ERROR],
-[AT_CHECK([echo "$2" | calc 2>&1 >/dev/null | grep 'parse error' >&2], 0,
+m4_define([_AT_CHECK_CALC_ERROR],
+[AT_DATA([[input]],
+[[$2
+]])
+
+AT_CHECK([./calc <input 2>&1 >/dev/null | grep 'parse error' >&2], 0,
           [],
-[ifelse(regexp([$1], [--location]),
-        [-1], [], [$3: ])[]dnl
+[m4_if(m4_regexp([$1], [--location]),
+       [-1], [], [$3: ])[]dnl
 parse error[]dnl
-ifelse(regexp([$1], [--yyerror-verbose]),
-       [-1], [], [$4])[]dnl
+m4_if(m4_regexp([$1], [--yyerror-verbose]),
+      [-1], [], [$4])[]dnl
 
 ])])
 
@@ -284,14 +300,14 @@ ifelse(regexp([$1], [--yyerror-verbose]),
 # --------------------------------------------------------
 # Start a testing chunk which compiles `calc' grammar with
 # BISON-OPTIONS, and performs several tests over the parser.
-AT_DEFINE([AT_CHECK_CALC],
+m4_define([AT_CHECK_CALC],
 [# We use integers to avoid dependencies upon the precision of doubles.
 AT_SETUP([Calculator $1])
 
 AT_DATA_CALC_Y([$1])
 
 # Specify the output files to avoid problems on different file systems.
-AT_CHECK([bison calc.y -o calc.c patsubst([$1], [--yyerror-verbose])],
+AT_CHECK([bison calc.y -o calc.c m4_patsubst([$1], [--yyerror-verbose])],
          [0], [], [])
 AT_CHECK([$CC $CFLAGS $CPPFLAGS calc.c -o calc], 0, [], [])
 
diff --git a/tests/output.at b/tests/output.at
new file mode 100644 (file)
index 0000000..a2cf450
--- /dev/null
@@ -0,0 +1,103 @@
+# Checking the output filenames.                    -*- Autotest -*-
+# Copyright 2000, 2001 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.
+
+AT_BANNER([[Output file names.]])
+
+
+# AT_CHECK_BISON_FLAGS(FLAGS, EXPECTED-FILES-SORTED)
+# --------------------------------------------------
+m4_define([AT_CHECK_BISON_FLAGS],
+[AT_SETUP([Output files: $1.])
+AT_DATA([foo.y],
+[[%%
+foo: {}
+]])
+rm -rf $2
+AT_CHECK([bison -dv foo.y $1], 0, ignore, ignore)
+AT_CHECK([ls $2 | sort | tr '\n' ' ' | sed 's/.$//g'], 0, [$2])
+rm -f $2
+AT_CLEANUP
+])
+
+AT_CHECK_BISON_FLAGS([],             [foo.output foo.tab.c foo.tab.h])
+AT_CHECK_BISON_FLAGS([-o foo.c],     [foo.c foo.h foo.output])
+AT_CHECK_BISON_FLAGS([-o foo.tab.c], [foo.output foo.tab.c foo.tab.h])
+AT_CHECK_BISON_FLAGS([-y],           [y.output y.tab.c y.tab.h])
+AT_CHECK_BISON_FLAGS([-b bar],       [bar.output bar.tab.c bar.tab.h])
+AT_CHECK_BISON_FLAGS([-g -o foo.c],  [foo.c foo.h foo.output foo.vcg])
+
+# AT_CHECK_BISON_PERCENT(GRAMMAR-OPTIONS, EXPECTED-FILES-SORTED)
+# --------------------------------------------------------------
+m4_define([AT_CHECK_BISON_PERCENT],
+[AT_SETUP([Output files: $1.])
+AT_DATA([foo.y],
+[[$1
+%defines
+%verbose
+%%
+foo: {}
+]])
+rm -rf $2
+AT_CHECK([bison foo.y], 0, ignore, ignore)
+AT_CHECK([ls $2 | sort | tr '\n' ' ' | sed 's/.$//g'], 0, [$2])
+rm -f $2
+AT_CLEANUP
+])
+
+# The sames, but using the % directives.
+AT_CHECK_BISON_PERCENT([],                  [foo.output foo.tab.c foo.tab.h])
+# AT_CHECK_BISON_PERCENT([%output foo.c],     [foo.c foo.h foo.output])
+# AT_CHECK_BISON_PERCENT([%output foo.tab.c], [foo.output foo.tab.c foo.tab.h])
+AT_CHECK_BISON_PERCENT([%yacc],             [y.output y.tab.c y.tab.h])
+# AT_CHECK_BISON_PERCENT([%file_prefix bar],  [bar.output bar.tab.c bar.tab.h])
+
+# AT_CHECK_BISON_PERCENT_FLAGS(GRAMMAR_OPTIONS, FLAGS, EXPECTED-FILES-SORTED)
+# ---------------------------------------------------------------------------
+m4_define([AT_CHECK_BISON_PERCENT_FLAGS],
+[AT_SETUP([Output files: $1.])
+AT_DATA([foo.yy],
+[[$1
+%defines
+%verbose
+%%
+foo: {}
+]])
+rm -rf $3
+AT_CHECK([bison foo.yy $2], 0, ignore, ignore)
+AT_CHECK([ls $3 | sort | tr '\n' ' ' | sed 's/.$//g'], 0, [$3])
+rm -f $3
+AT_CLEANUP
+])
+
+# Check priorities of extension control.
+AT_CHECK_BISON_PERCENT_FLAGS(
+[],
+[],
+[foo.output foo.tab.cc foo.tab.hh])
+AT_CHECK_BISON_PERCENT_FLAGS(
+[],
+[-o foo.c],
+[foo.c foo.h foo.output])
+AT_CHECK_BISON_PERCENT_FLAGS(
+[%source_extension ".cpp"] [%header_extension ".hhh"],
+[],
+[foo.output foo.tab.cpp foo.tab.hhh])
+AT_CHECK_BISON_PERCENT_FLAGS(
+[%source_extension ".cc"] [%header_extension ".hh"],
+[-o foo.c],
+[foo.c foo.h foo.output])
index 8a00483188fa58e2e52a20c34499868399f48d4c..e12e4fddd3f06d962887dd272383d81c648f6ef1 100644 (file)
@@ -1,11 +1,22 @@
-#                                                        -*- Autoconf -*-
+# Bison Regressions.                               -*- Autotest -*-
+# Copyright 2001 Free Software Foundation, Inc.
 
-cat <<EOF
+# 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.
 
-Regression tests.
+# 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.
 
-EOF
+# 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.
 
+AT_BANNER([[Regression tests.]])
 
 ## ------------------ ##
 ## Duplicate string.  ##
diff --git a/tests/suite.at b/tests/suite.at
deleted file mode 100644 (file)
index ae502f0..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-#! /bin/sh
-# -*- Autoconf -*-
-# Validation suite for Bison.
-# Copyright 2000 Free Software Foundation, Inc.
-
-AT_INIT([bison])
-
-## ---------------------------- ##
-## Checking output file names.  ##
-## ---------------------------- ##
-
-# AT_CHECK_BISON_FLAGS(FLAGS, EXPECTED-FILES-SORTED)
-# --------------------------------------------------
-AT_DEFINE([AT_CHECK_BISON_FLAGS],
-[AT_SETUP([Output files: $1.])
-AT_DATA([foo.y],
-[[%%
-foo: {}
-]])
-rm -rf $2
-AT_CHECK([bison -dv foo.y $1], 0, ignore, ignore)
-AT_CHECK([ls $2 | sort | tr '\n' ' ' | sed 's/.$//g'], 0, [$2])
-rm -f $2
-AT_CLEANUP
-])
-
-AT_CHECK_BISON_FLAGS([],             [foo.output foo.tab.c foo.tab.h])
-AT_CHECK_BISON_FLAGS([-o foo.c],     [foo.c foo.h foo.output])
-AT_CHECK_BISON_FLAGS([-o foo.tab.c], [foo.output foo.tab.c foo.tab.h])
-AT_CHECK_BISON_FLAGS([-y],           [y.output y.tab.c y.tab.h])
-AT_CHECK_BISON_FLAGS([-b bar],       [bar.output bar.tab.c bar.tab.h])
-AT_CHECK_BISON_FLAGS([-g -o foo.c],  [foo.c foo.h foo.output foo.vcg])
-
-# AT_CHECK_BISON_PERCENT(GRAMMAR-OPTIONS, EXPECTED-FILES-SORTED)
-# --------------------------------------------------------------
-AT_DEFINE([AT_CHECK_BISON_PERCENT],
-[AT_SETUP([Output files: $1.])
-AT_DATA([foo.y],
-[[$1
-%defines
-%verbose
-%%
-foo: {}
-]])
-rm -rf $2
-AT_CHECK([bison foo.y], 0, ignore, ignore)
-AT_CHECK([ls $2 | sort | tr '\n' ' ' | sed 's/.$//g'], 0, [$2])
-rm -f $2
-AT_CLEANUP
-])
-
-# The sames, but using the % directives.
-AT_CHECK_BISON_PERCENT([],                  [foo.output foo.tab.c foo.tab.h])
-# AT_CHECK_BISON_PERCENT([%output foo.c],     [foo.c foo.h foo.output])
-# AT_CHECK_BISON_PERCENT([%output foo.tab.c], [foo.output foo.tab.c foo.tab.h])
-AT_CHECK_BISON_PERCENT([%yacc],             [y.output y.tab.c y.tab.h])
-# AT_CHECK_BISON_PERCENT([%file_prefix bar],  [bar.output bar.tab.c bar.tab.h])
-
-# AT_CHECK_BISON_PERCENT_FLAGS(GRAMMAR_OPTIONS, FLAGS, EXPECTED-FILES-SORTED)
-# ---------------------------------------------------------------------------
-AT_DEFINE([AT_CHECK_BISON_PERCENT_FLAGS],
-[AT_SETUP([Output files: $1.])
-AT_DATA([foo.yy],
-[[$1
-%defines
-%verbose
-%%
-foo: {}
-]])
-rm -rf $3
-AT_CHECK([bison foo.yy $2], 0, ignore, ignore)
-AT_CHECK([ls $3 | sort | tr '\n' ' ' | sed 's/.$//g'], 0, [$3])
-rm -f $3
-AT_CLEANUP
-])
-
-# Check priorities of extension control.
-AT_CHECK_BISON_PERCENT_FLAGS(
-[],
-[],
-[foo.output foo.tab.cc foo.tab.hh])
-AT_CHECK_BISON_PERCENT_FLAGS(
-[],
-[-o foo.c],
-[foo.c foo.h foo.output])
-AT_CHECK_BISON_PERCENT_FLAGS(
-[%source_extension ".cpp"] [%header_extension ".hhh"],
-[],
-[foo.output foo.tab.cpp foo.tab.hhh])
-AT_CHECK_BISON_PERCENT_FLAGS(
-[%source_extension ".cc"] [%header_extension ".hh"],
-[-o foo.c],
-[foo.c foo.h foo.output])
-
-AT_INCLUDE([calc.at])
-AT_INCLUDE([regression.at])
diff --git a/tests/testsuite.at b/tests/testsuite.at
new file mode 100644 (file)
index 0000000..5f24116
--- /dev/null
@@ -0,0 +1,28 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU Bison.
+# Copyright 2000, 2001 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.52c])
+
+AT_INIT([bison])
+
+m4_include([output.at])
+m4_include([calc.at])
+m4_include([regression.at])