diff options
-rw-r--r-- | tests/general/Makefile.am | 38 | ||||
-rw-r--r-- | tests/general/atgeneral.m4 | 445 | ||||
-rw-r--r-- | tests/general/dd.at | 65 |
3 files changed, 0 insertions, 548 deletions
diff --git a/tests/general/Makefile.am b/tests/general/Makefile.am deleted file mode 100644 index 8256074b3..000000000 --- a/tests/general/Makefile.am +++ /dev/null @@ -1,38 +0,0 @@ -## Process this file with automake to create Makefile.in. - -## Makefile for Autoconf testsuite. -## Copyright (C) 2000, 2003, 2007 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 3 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, see <http://www.gnu.org/licenses/>. - -SUITE = suite.at dd.at m4sh.at - -EXTRA_DIST = $(SUITE) testsuite - -TESTS_ENVIRONMENT = \ - CU_TEST_NAME=`basename $(abs_srcdir)`,$$tst \ - PATH="$(VG_PATH_PREFIX)`pwd`/../../src$(PATH_SEPARATOR)$$PATH" - -TESTS = testsuite - -check-local: atconfig - -testsuite: $(SUITE) atgeneral.m4 - $(M4) -I $(srcdir) atgeneral.m4 suite.at > $@-t1 - sed 's/[ ]*$$//;/^$$/N;/\n$$/D' $@-t1 > $@-tmp - rm -f $@-t1 - chmod +x $@-tmp - mv $@-tmp $@ - -DISTCLEANFILES = atconfig diff --git a/tests/general/atgeneral.m4 b/tests/general/atgeneral.m4 deleted file mode 100644 index 96e82f12c..000000000 --- a/tests/general/atgeneral.m4 +++ /dev/null @@ -1,445 +0,0 @@ -include(m4sh.m4) -*- 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 3 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, see <http://www.gnu.org/licenses/>. - -# 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. - - -m4_define([AT_DEFINE], m4_defn([m4_define])) -m4_define([AT_INCLUDE], m4_defn([m4_include])) -m4_define([AT_SHIFT], m4_defn([m4_shift])) -m4_define([AT_UNDEFINE], m4_defn([m4_undefine])) - - - -# Use of diversions: -# -# - DEFAULT -# Overall initialization, value of $at_tests_all. -# - OPTIONS -# Option processing -# - HELP -# Help message. Of course it is useless, you could just push into -# OPTIONS, but that's much clearer this way. -# - SETUP -# Be ready to run the tests. -# - TESTS -# The core of the test suite, the ``normal'' diversion. -# - TAIL -# tail of the core for;case, overall wrap up, generation of debugging -# scripts and statistics. -# -# - TEST -# for each test group: proper code, to reinsert between cleanups; -# undiverted into TESTS once at_data_files diverted. - -m4_define([_m4_divert(DEFAULT)], 0) -m4_define([_m4_divert(OPTIONS)], 10) -m4_define([_m4_divert(HELP)], 20) -m4_define([_m4_divert(SETUP)], 30) -m4_define([_m4_divert(TESTS)], 50) -m4_define([_m4_divert(TAIL)], 60) - -m4_define([_m4_divert(TEST)], 100) - -m4_divert_push([TESTS]) -m4_divert_push([KILL]) - - -# AT_LINE -# ------- -# Return the current file sans directory, a colon, and the current line. -AT_DEFINE([AT_LINE], -[m4_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) -m4_divert_push([DEFAULT])dnl -#! /bin/sh - -AS_SHELL_SANITIZE - -. ./atconfig -# Use absolute file notations, as the test might change directories. -at_srcdir=`cd "$srcdir" && pwd` -at_top_srcdir=`cd "$top_srcdir" && pwd` - -if test -n "$AUTOTEST_PATH"; then - export PATH; PATH=`pwd`:`cd "$AUTOTEST_PATH" && pwd`:$PATH -else - export PATH; PATH=`pwd`:$PATH -fi - -test -f atlocal && . ./atlocal - -# -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 be verbose? -at_verbose=: -# Shall we keep the debug scripts? Must be `:' when testsuite is -# run by a debug script, so that the script doesn't remove itself. -at_debug=false -# Display help message? -at_help=false -# Tests to run -at_tests= -m4_divert([OPTIONS])dnl Other vars inserted here. - -while test $[#] -gt 0; do - case $[1] in - --help | -h) at_help=:; break ;; - --version) echo "$[0] ($at_package) $at_version"; exit 0 ;; - - -d) at_debug=:;; - -e) at_stop_on_error=:;; - -n) at_check_stds=false;; - -v) at_verbose=echo;; - -x) at_traceon='set -vx'; at_traceoff='set +vx'; at_check_stds=false;; - - [[0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]]) - at_tests="$at_tests$[1] ";; - - *) echo 1>&2 "Try \`$[0] --help' for more information."; exit 1 ;; - esac - shift -done - -test -z "$at_tests" && at_tests=$at_tests_all - -# Help message. -# Display only the title of selected tests. -if $at_help; then - cat <<EOF -Usage: $[0] [[OPTION]]... [[TESTS]] - -Run all the tests, or the selected TESTS. - -Options: - -h Display this help message and the list of tests - -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 - -v Force more detailed output, default for debugging scripts - -x Have the shell to trace command execution; also implies option -n - -Tests: -EOF - # "1 42 45 " => " (1|42|45|dummy): " - at_tests_pattern=`echo "$at_tests" | tr ' ' '|'` - egrep -e " (${at_tests_pattern}dummy): " <<EOF -m4_divert([HELP])dnl Help message inserted here. -m4_divert([SETUP])dnl -EOF - exit 0 -fi - -# 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. - -if $1 --version | grep "$at_package.*$at_version" >/dev/null; then - at_banner="Test 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 - -at_failed_list= -at_ignore_count=0 -at_test_count=0 -m4_divert([TESTS])dnl - -for at_test in $at_tests -do - at_status=0; - case $at_test in -m4_divert([TAIL])[]dnl - esac - at_test_count=`expr 1 + $at_test_count` - $at_verbose $at_n " $at_test. $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_test" - $at_stop_on_error && break - ;; - esac - $at_debug || rm -rf $at_data_files -done - -# 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 -elif test $at_debug = false; then - # Remove any debugging script resulting from a previous run. - rm -f debug-*.sh - 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" - echo 'exec '"$[0]"' -v -d '"$at_group"' ${1+"$[@]"}' - echo 'exit 1' - ) >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 $at_debug = false && test -n "$at_failed_list"; 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 testsuite provide a good starting point.' - echo 'information. Now, failed tests will be executed again, verbosely.' - for at_group in $at_failed_list; do - ./debug-$at_group.sh - done - exit 1 -fi - -exit 0 -m4_divert_pop()dnl -m4_wrap([m4_divert_text([DEFAULT], - [# List of the tests. -at_tests_all="m4_for([i], 1, AT_ordinal, 1, [i ])"])])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], -[m4_define([AT_ordinal], m4_eval(AT_ordinal + 1)) -m4_divert_text([HELP], - [m4_format([ %3d: %-15s %s], AT_ordinal, AT_LINE, [$1])]) -m4_pushdef([AT_data_files], [stdout stderr ]) -m4_divert_push([TESTS])dnl - AT_ordinal ) -dnl Here will be inserted the definition of at_data_files. -m4_divert([TEST])[]dnl - rm -rf $at_data_files - echo AT_LINE >at-setup-line - $at_verbose 'testing $1' - $at_verbose $at_n " $at_c" - if test $at_verbose = echo; then - echo "AT_ordinal. $srcdir/AT_LINE..." - else - echo $at_n "m4_substr(AT_ordinal. $srcdir/AT_LINE , 0, 30)[]$at_c" - fi - ( - $at_traceon -]) - - -# AT_CLEANUP_FILE_IFELSE(FILE, IF-REGISTERED, IF-NOT-REGISTERED) -# -------------------------------------------------------------- -AT_DEFINE([AT_CLEANUP_FILE_IFELSE], -[ifelse(m4_regexp(AT_data_files, m4_patsubst([ $1 ], [\([\[\]*.]\)], [\\\1])), - -1, - [$3], [$2])]) - - -# AT_CLEANUP_FILE(FILE) -# --------------------- -# Register FILE for AT_CLEANUP. -AT_DEFINE([AT_CLEANUP_FILE], -[AT_CLEANUP_FILE_IFELSE([$1], [], - [m4_append([AT_data_files], [$1 ])])]) - - -# AT_CLEANUP_FILES(FILES) -# ----------------------- -# Declare a list of FILES to clean. -AT_DEFINE([AT_CLEANUP_FILES], -[m4_foreach([AT_File], m4_quote(m4_patsubst([$1], [ *], [,])), - [AT_CLEANUP_FILE(AT_File)])]) - - -# 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_CLEANUP_FILES([$1])dnl - $at_traceoff - ) - at_status=$? - ;; -m4_divert([TESTS])[]dnl - at_data_files="AT_data_files" -m4_undivert([TEST])[]dnl -m4_popdef([AT_data_files])dnl -m4_divert_pop()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_CLEANUP_FILES([$1])dnl -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 "$srcdir/AT_LINE: m4_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 "Exit code was $at_status, expected $2" >&6 -dnl Maybe there was an important message to read before it died. - $at_verbose = echo && $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. - test $at_verbose = : && exec 1>/dev/null 2>/dev/null - at_failed=false; - m4_case([$4], - ignore, [$at_verbose = echo && cat stderr;:], - experr, [AT_CLEANUP_FILE([experr])dnl -$at_diff experr stderr || at_failed=:], - [], [$at_diff empty stderr || at_failed=:], - [echo $at_n "m4_patsubst([$4], [\([\"`$]\)], \\\1)$at_c" | $at_diff - stderr || at_failed=:]) - m4_case([$3], - ignore, [test $at_verbose = echo && cat stdout;:], - expout, [AT_CLEANUP_FILES([expout])dnl -$at_diff expout stdout || at_failed=:], - [], [$at_diff empty stdout || at_failed=:], - [echo $at_n "m4_patsubst([$3], [\([\"`$]\)], \\\1)$at_c" | $at_diff - stdout || at_failed=:]) - if $at_failed; then - exit 1 - else - : - fi -fi -$at_traceon -])# AT_CHECK diff --git a/tests/general/dd.at b/tests/general/dd.at deleted file mode 100644 index 5733c2e4e..000000000 --- a/tests/general/dd.at +++ /dev/null @@ -1,65 +0,0 @@ -# -*- autoconf -*- - -# 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 3 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, see <http://www.gnu.org/licenses/>. - -cat <<EOF - -Executables (autoheader, autoupdate...) - -EOF - -AT_SETUP([dd's skip, seek, and conv=notrunc options]) - -AT_DATA(in, [[12345*7 -]]) -AT_DATA(out, [[abcdefghijklmnop -]]) - -AT_CHECK([dd bs=1 skip=1 seek=2 conv=notrunc count=3 if=in of=out], 0, [], -[3+0 records in -3+0 records out -]) -AT_CHECK([cat out], 0, [ab234fghijklmnop -]) - -AT_CHECK([dd bskip=5 bseek=9 conv=notrunc count=1 if=in of=out], 0, [], -[0+1 records in -0+1 records out -]) -AT_CHECK([cat out], 0, [ab234fghi*7 -mnop -]) - -AT_CLEANUP - - -# ====================================================== -AT_SETUP([dd]) -AT_SETUP([dd's new bskip and bseek options]) - -AT_DATA(in, [[1*3 -]]) -AT_DATA(out, [[abcde -]]) - -AT_CHECK([dd bskip=1 bseek=2 count=1 if=in of=out], 0, [], -[0+1 records in -0+1 records out -]) -AT_CHECK([cat out], 0, [ab*3 -]) - -AT_CLEANUP |