From 6483ac07dfcca5ddd282113f23c3771a8027767c Mon Sep 17 00:00:00 2001 From: Stefano Lattarini Date: Mon, 1 Aug 2011 16:14:44 +0200 Subject: [PATCH] testsuite: optimize tests on TAP for speed and against duplication The creation and configuration of common files and data used by many tests on TAP is, with this change, factored out into a new dedicated auxiliary test, from which those tests will depend upon. This reduces code duplication in tests and, more importantly, offers a noticeable speedup in the involved tests (30-40%). * tests/tap-common-setup.test: New test, setting up the common files and data used by various tests on TAP support. * tests/tap-setup.sh: New file, to be sourced by tests wanting to bring in data generated by `tap-common-setup.test'. * tests/tap-autonumber.test: Update to use the pre-computed data files. * tests/tap-bailout.test: Likewise. * tests/tap-color.test: Likewise. * tests/tap-deps.test: Likewise. * tests/tap-diagnostic.test: Likewise. * tests/tap-empty-diagnostic.test: Likewise. * tests/tap-empty.test: Likewise. * tests/tap-escape-directive.test: Likewise. * tests/tap-exit.test: Likewise. * tests/tap-signal.test: Likewise. * tests/tap-fancy.test: Likewise. * tests/tap-fancy2.test: Likewise. * tests/tap-global-log.test: Likewise. * tests/tap-global-result.test: Likewise. * tests/tap-html.test: Likewise. * tests/tap-log.test: Likewise. * tests/tap-merge-stdout-stderr.test: Likewise. * tests/tap-no-merge-stdout-stderr.test: Likewise. * tests/tap-message-0.test: Likewise. * tests/tap-no-disable-hard-error.test: Likewise. * tests/tap-no-spurious-summary.test: Likewise. * tests/tap-no-spurious.test: Likewise. * tests/tap-not-ok-skip.test: Likewise. * tests/tap-numeric-description.test: Likewise. * tests/tap-out-of-order.test: Likewise. * tests/tap-passthrough.test: Likewise. * tests/tap-passthrough-exit.test: Likewise. * tests/tap-plan.test: Likewise. * tests/tap-plan-corner.test: Likewise. * tests/tap-plan-corner2.test: Likewise. * tests/tap-plan-errors.test: Likewise. * tests/tap-realtime.test: Likewise. * tests/tap-recheck-logs.test: Likewise. * tests/tap-skip-whole.test: Likewise. * tests/tap-todo-skip-together.test: Likewise. * tests/tap-todo-skip-whitespace.test: Likewise. * tests/tap-todo-skip.test: Likewise. * tests/tap-unplanned.test: Likewise. * tests/tap-with-and-without-number.test: Likewise. * tests/tap-xfail-tests.test: Likewise. * tests/tap-skip-whole-whitespace.test: Likewise, and remove redundant definitions of `$sp' and `$tab' (they are already defined in `tests/defs'). * tests/tap-whitespace-normalization.test: Likewise. * tests/Makefile.am (TESTS): Update. (EXTRA_DIST): Distribute `tap-setup.sh'. (tap_with_common_setup_tests, tap_with_common_setup_logs)): New variables, holding respectively the list of tests using the files pre-computed by `tap-common-setup.test', and the list of their corresponding log files. (tap_other_tests): New variable, holding the list of other tests on TAP support. ($(tap_with_common_setup_logs)): Depend on `tap-common-setup.log' and `tap-setup.sh'. --- ChangeLog | 68 ++++++++++++++ tests/Makefile.am | 117 +++++++++++++---------- tests/Makefile.in | 120 ++++++++++++++---------- tests/tap-autonumber.test | 23 +---- tests/tap-bailout.test | 23 +---- tests/tap-color.test | 17 +--- tests/tap-common-setup.test | 47 ++++++++++ tests/tap-deps.test | 11 +-- tests/tap-diagnostic.test | 20 +--- tests/tap-empty-diagnostic.test | 16 +--- tests/tap-empty.test | 20 +--- tests/tap-escape-directive.test | 14 +-- tests/tap-exit.test | 20 +--- tests/tap-fancy.test | 20 +--- tests/tap-fancy2.test | 14 +-- tests/tap-global-log.test | 22 +---- tests/tap-global-result.test | 28 +----- tests/tap-html.test | 17 +--- tests/tap-log.test | 17 +--- tests/tap-merge-stdout-stderr.test | 16 +--- tests/tap-message-0.test | 20 +--- tests/tap-no-disable-hard-error.test | 17 +--- tests/tap-no-merge-stdout-stderr.test | 15 +-- tests/tap-no-spurious-summary.test | 20 +--- tests/tap-no-spurious.test | 14 +-- tests/tap-not-ok-skip.test | 20 +--- tests/tap-numeric-description.test | 20 +--- tests/tap-out-of-order.test | 18 +--- tests/tap-passthrough-exit.test | 15 +-- tests/tap-passthrough.test | 20 +--- tests/tap-plan-corner.test | 20 +--- tests/tap-plan-corner2.test | 20 +--- tests/tap-plan-errors.test | 26 +---- tests/tap-plan.test | 22 +---- tests/tap-realtime.test | 16 +--- tests/tap-recheck-logs.test | 17 +--- tests/tap-setup.sh | 48 ++++++++++ tests/tap-signal.test | 20 +--- tests/tap-skip-whole-whitespace.test | 26 +---- tests/tap-skip-whole.test | 25 +---- tests/tap-todo-skip-together.test | 20 +--- tests/tap-todo-skip-whitespace.test | 20 +--- tests/tap-todo-skip.test | 20 +--- tests/tap-unplanned.test | 66 +++++-------- tests/tap-whitespace-normalization.test | 18 +--- tests/tap-with-and-without-number.test | 20 +--- tests/tap-xfail-tests.test | 39 +++----- 47 files changed, 403 insertions(+), 869 deletions(-) create mode 100755 tests/tap-common-setup.test create mode 100755 tests/tap-setup.sh diff --git a/ChangeLog b/ChangeLog index 356c7636c..9c017febf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,71 @@ +2011-08-01 Stefano Lattarini + + testsuite: optimize tests on TAP for speed and against duplication + The creation and configuration of common files and data used by + many tests on TAP is, with this change, factored out into a new + dedicated auxiliary test, from which those tests will depend upon. + This reduces code duplication in tests and, more importantly, + offers a noticeable speedup in the involved tests (30-40%). + * tests/tap-common-setup.test: New test, setting up the common + files and data used by various tests on TAP support. + * tests/tap-setup.sh: New file, to be sourced by tests wanting to + bring in data generated by `tap-common-setup.test'. + * tests/tap-autonumber.test: Update to use the pre-computed data + files. + * tests/tap-bailout.test: Likewise. + * tests/tap-color.test: Likewise. + * tests/tap-deps.test: Likewise. + * tests/tap-diagnostic.test: Likewise. + * tests/tap-empty-diagnostic.test: Likewise. + * tests/tap-empty.test: Likewise. + * tests/tap-escape-directive.test: Likewise. + * tests/tap-exit.test: Likewise. + * tests/tap-signal.test: Likewise. + * tests/tap-fancy.test: Likewise. + * tests/tap-fancy2.test: Likewise. + * tests/tap-global-log.test: Likewise. + * tests/tap-global-result.test: Likewise. + * tests/tap-html.test: Likewise. + * tests/tap-log.test: Likewise. + * tests/tap-merge-stdout-stderr.test: Likewise. + * tests/tap-no-merge-stdout-stderr.test: Likewise. + * tests/tap-message-0.test: Likewise. + * tests/tap-no-disable-hard-error.test: Likewise. + * tests/tap-no-spurious-summary.test: Likewise. + * tests/tap-no-spurious.test: Likewise. + * tests/tap-not-ok-skip.test: Likewise. + * tests/tap-numeric-description.test: Likewise. + * tests/tap-out-of-order.test: Likewise. + * tests/tap-passthrough.test: Likewise. + * tests/tap-passthrough-exit.test: Likewise. + * tests/tap-plan.test: Likewise. + * tests/tap-plan-corner.test: Likewise. + * tests/tap-plan-corner2.test: Likewise. + * tests/tap-plan-errors.test: Likewise. + * tests/tap-realtime.test: Likewise. + * tests/tap-recheck-logs.test: Likewise. + * tests/tap-skip-whole.test: Likewise. + * tests/tap-todo-skip-together.test: Likewise. + * tests/tap-todo-skip-whitespace.test: Likewise. + * tests/tap-todo-skip.test: Likewise. + * tests/tap-unplanned.test: Likewise. + * tests/tap-with-and-without-number.test: Likewise. + * tests/tap-xfail-tests.test: Likewise. + * tests/tap-skip-whole-whitespace.test: Likewise, and remove + redundant definitions of `$sp' and `$tab' (they are already + defined in `tests/defs'). + * tests/tap-whitespace-normalization.test: Likewise. + * tests/Makefile.am (TESTS): Update. + (EXTRA_DIST): Distribute `tap-setup.sh'. + (tap_with_common_setup_tests, tap_with_common_setup_logs)): New + variables, holding respectively the list of tests using the files + pre-computed by `tap-common-setup.test', and the list of their + corresponding log files. + (tap_other_tests): New variable, holding the list of other tests + on TAP support. + ($(tap_with_common_setup_logs)): Depend on `tap-common-setup.log' + and `tap-setup.sh'. + 2011-08-01 Stefano Lattarini test harness: use new `.trs' files to hold test metadata diff --git a/tests/Makefile.am b/tests/Makefile.am index 104f70be8..09e5340af 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -994,55 +994,8 @@ suffix13.test \ symlink.test \ symlink2.test \ syntax.test \ -tap-autonumber.test \ -tap-bad-prog.test \ -tap-bailout.test \ -tap-basic.test \ -tap-color.test \ -tap-deps.test \ -tap-diagnostic.test \ -tap-doc.test \ -tap-empty.test \ -tap-empty-diagnostic.test \ -tap-escape-directive.test \ -tap-exit.test \ -tap-signal.test \ -tap-fancy.test \ -tap-fancy2.test \ -tap-global-log.test \ -tap-global-result.test \ -tap-html.test \ -tap-log.test \ -tap-more.test \ -tap-more2.test \ -tap-message-0.test \ -tap-merge-stdout-stderr.test \ -tap-no-merge-stdout-stderr.test \ -tap-no-disable-hard-error.test \ -tap-no-spurious-summary.test \ -tap-no-spurious.test \ -tap-not-ok-skip.test \ -tap-numeric-description.test \ -tap-out-of-order.test \ -tap-passthrough.test \ -tap-passthrough-exit.test \ -tap-plan.test \ -tap-plan-errors.test \ -tap-plan-corner.test \ -tap-plan-corner2.test \ -tap-realtime.test \ -tap-recheck-logs.test \ -tap-recheck.test \ -tap-summary.test \ -tap-skip-whole.test \ -tap-skip-whole-whitespace.test \ -tap-todo-skip.test \ -tap-todo-skip-whitespace.test \ -tap-todo-skip-together.test \ -tap-unplanned.test \ -tap-whitespace-normalization.test \ -tap-with-and-without-number.test \ -tap-xfail-tests.test \ +$(tap_with_common_setup_tests) \ +$(tap_other_tests) \ tags.test \ tags2.test \ tagsub.test \ @@ -1170,6 +1123,72 @@ EXTRA_DIST += extract-testsuite-summary testsuite-summary-count-many.log: trivial-test-driver testsuite-summary-count-many.log: extract-testsuite-summary +# List of tests on TAP support that use the files pre-computed by +# `tap-common-setup.test', and sources the `tap-setup.sh' helper +# script. +tap_with_common_setup_tests = \ +tap-autonumber.test \ +tap-bailout.test \ +tap-color.test \ +tap-deps.test \ +tap-diagnostic.test \ +tap-empty-diagnostic.test \ +tap-empty.test \ +tap-escape-directive.test \ +tap-exit.test \ +tap-signal.test \ +tap-fancy.test \ +tap-fancy2.test \ +tap-global-log.test \ +tap-global-result.test \ +tap-html.test \ +tap-log.test \ +tap-merge-stdout-stderr.test \ +tap-no-merge-stdout-stderr.test \ +tap-message-0.test \ +tap-no-disable-hard-error.test \ +tap-no-spurious-summary.test \ +tap-no-spurious.test \ +tap-not-ok-skip.test \ +tap-numeric-description.test \ +tap-out-of-order.test \ +tap-passthrough.test \ +tap-passthrough-exit.test \ +tap-plan.test \ +tap-plan-corner.test \ +tap-plan-corner2.test \ +tap-plan-errors.test \ +tap-realtime.test \ +tap-recheck-logs.test \ +tap-skip-whole-whitespace.test \ +tap-skip-whole.test \ +tap-todo-skip-together.test \ +tap-todo-skip-whitespace.test \ +tap-todo-skip.test \ +tap-unplanned.test \ +tap-whitespace-normalization.test \ +tap-with-and-without-number.test \ +tap-xfail-tests.test + +# Their log files. +tap_with_common_setup_logs = $(tap_with_common_setup_tests:.test=.log) + +# Their dependencies. +$(tap_with_common_setup_logs): tap-common-setup.log tap-setup.sh +EXTRA_DIST += tap-setup.sh + +# Other tests on TAP support. +tap_other_tests = \ +tap-common-setup.test \ +tap-bad-prog.test \ +tap-basic.test \ +tap-doc.test \ +tap-empty.test \ +tap-more.test \ +tap-more2.test \ +tap-recheck.test \ +tap-summary.test + # Dependencies valid for each test case. $(TEST_LOGS): defs defs-static aclocal-$(APIVERSION) automake-$(APIVERSION) diff --git a/tests/Makefile.in b/tests/Makefile.in index 1732555d9..065a772c8 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -276,7 +276,7 @@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = $(parallel_tests) $(instspc_tests) EXTRA_DIST = ChangeLog-old gen-parallel-tests instspc-tests.sh \ $(TESTS) trivial-test-driver testsuite-summary-checks.sh \ - extract-testsuite-summary + extract-testsuite-summary tap-setup.sh XFAIL_TESTS = all.test auxdir2.test cond17.test gcj6.test \ override-conditional-2.test pr8365-remake-timing.test \ yacc-dist-nobuild-subdir.test tap-bad-prog.test \ @@ -1245,55 +1245,8 @@ suffix13.test \ symlink.test \ symlink2.test \ syntax.test \ -tap-autonumber.test \ -tap-bad-prog.test \ -tap-bailout.test \ -tap-basic.test \ -tap-color.test \ -tap-deps.test \ -tap-diagnostic.test \ -tap-doc.test \ -tap-empty.test \ -tap-empty-diagnostic.test \ -tap-escape-directive.test \ -tap-exit.test \ -tap-signal.test \ -tap-fancy.test \ -tap-fancy2.test \ -tap-global-log.test \ -tap-global-result.test \ -tap-html.test \ -tap-log.test \ -tap-more.test \ -tap-more2.test \ -tap-message-0.test \ -tap-merge-stdout-stderr.test \ -tap-no-merge-stdout-stderr.test \ -tap-no-disable-hard-error.test \ -tap-no-spurious-summary.test \ -tap-no-spurious.test \ -tap-not-ok-skip.test \ -tap-numeric-description.test \ -tap-out-of-order.test \ -tap-passthrough.test \ -tap-passthrough-exit.test \ -tap-plan.test \ -tap-plan-errors.test \ -tap-plan-corner.test \ -tap-plan-corner2.test \ -tap-realtime.test \ -tap-recheck-logs.test \ -tap-recheck.test \ -tap-summary.test \ -tap-skip-whole.test \ -tap-skip-whole-whitespace.test \ -tap-todo-skip.test \ -tap-todo-skip-whitespace.test \ -tap-todo-skip-together.test \ -tap-unplanned.test \ -tap-whitespace-normalization.test \ -tap-with-and-without-number.test \ -tap-xfail-tests.test \ +$(tap_with_common_setup_tests) \ +$(tap_other_tests) \ tags.test \ tags2.test \ tagsub.test \ @@ -1405,6 +1358,70 @@ yflags-force-conditional.test \ yflags-var-expand.test \ $(parallel_tests) + +# List of tests on TAP support that use the files pre-computed by +# `tap-common-setup.test', and sources the `tap-setup.sh' helper +# script. +tap_with_common_setup_tests = \ +tap-autonumber.test \ +tap-bailout.test \ +tap-color.test \ +tap-deps.test \ +tap-diagnostic.test \ +tap-empty-diagnostic.test \ +tap-empty.test \ +tap-escape-directive.test \ +tap-exit.test \ +tap-signal.test \ +tap-fancy.test \ +tap-fancy2.test \ +tap-global-log.test \ +tap-global-result.test \ +tap-html.test \ +tap-log.test \ +tap-merge-stdout-stderr.test \ +tap-no-merge-stdout-stderr.test \ +tap-message-0.test \ +tap-no-disable-hard-error.test \ +tap-no-spurious-summary.test \ +tap-no-spurious.test \ +tap-not-ok-skip.test \ +tap-numeric-description.test \ +tap-out-of-order.test \ +tap-passthrough.test \ +tap-passthrough-exit.test \ +tap-plan.test \ +tap-plan-corner.test \ +tap-plan-corner2.test \ +tap-plan-errors.test \ +tap-realtime.test \ +tap-recheck-logs.test \ +tap-skip-whole-whitespace.test \ +tap-skip-whole.test \ +tap-todo-skip-together.test \ +tap-todo-skip-whitespace.test \ +tap-todo-skip.test \ +tap-unplanned.test \ +tap-whitespace-normalization.test \ +tap-with-and-without-number.test \ +tap-xfail-tests.test + + +# Their log files. +tap_with_common_setup_logs = $(tap_with_common_setup_tests:.test=.log) + +# Other tests on TAP support. +tap_other_tests = \ +tap-common-setup.test \ +tap-bad-prog.test \ +tap-basic.test \ +tap-doc.test \ +tap-empty.test \ +tap-more.test \ +tap-more2.test \ +tap-recheck.test \ +tap-summary.test + all: all-am .SUFFIXES: @@ -1861,6 +1878,9 @@ testsuite-summary-color.log testsuite-summary-count.log: \ testsuite-summary-count-many.log: trivial-test-driver testsuite-summary-count-many.log: extract-testsuite-summary +# Their dependencies. +$(tap_with_common_setup_logs): tap-common-setup.log tap-setup.sh + # Dependencies valid for each test case. $(TEST_LOGS): defs defs-static aclocal-$(APIVERSION) automake-$(APIVERSION) diff --git a/tests/tap-autonumber.test b/tests/tap-autonumber.test index 745a6398f..12dec1160 100755 --- a/tests/tap-autonumber.test +++ b/tests/tap-autonumber.test @@ -23,20 +23,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -EXTRA_DIST = $(TESTS) -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > all.test <<'END' 1..14 @@ -58,13 +45,7 @@ not ok ok END -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - -$MAKE check >stdout && { cat stdout; Exit 1; } +TESTS=all.test $MAKE -e check >stdout && { cat stdout; Exit 1; } cat stdout count_test_results total=14 pass=6 fail=5 xpass=1 xfail=1 skip=1 error=0 diff --git a/tests/tap-bailout.test b/tests/tap-bailout.test index 6c0a588f9..8354b277d 100755 --- a/tests/tap-bailout.test +++ b/tests/tap-bailout.test @@ -20,19 +20,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = a.test b.test c.test d.test e.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" : > exp @@ -131,13 +119,8 @@ echo "ERROR: e.test - Bail out!" >> exp # Doing the sums above, we have: test_counts='total=12 pass=3 fail=1 xpass=1 xfail=1 skip=1 error=5' -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - -$MAKE check >stdout && { cat stdout; Exit 1; } +TESTS='a.test b.test c.test d.test e.test' $MAKE -e check >stdout \ + && { cat stdout; Exit 1; } cat stdout count_test_results $test_counts diff --git a/tests/tap-color.test b/tests/tap-color.test index 82c0b5162..dbd662903 100755 --- a/tests/tap-color.test +++ b/tests/tap-color.test @@ -20,9 +20,6 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - TERM=ansi; export TERM esc='' @@ -42,20 +39,16 @@ case `echo "$std" | grep .` in *) echo "$me: grep can't parse nonprinting characters" >&2; Exit 77;; esac -cat >> configure.in < Makefile.am << 'END' AUTOMAKE_OPTIONS = color-tests AM_TEST_LOG_DRIVER_FLAGS = --comments TEST_LOG_COMPILER = cat -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver TESTS = all.test skip.test bail.test badplan.test noplan.test \ few.test many.test order.test END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" + cat > all.test << 'END' 1..5 ok 1 - foo @@ -102,12 +95,6 @@ cat > order.test << 'END' ok 5 END -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - AM_COLOR_TESTS=always $MAKE check >stdout && { cat stdout; Exit 1; } cat stdout diff --git a/tests/tap-common-setup.test b/tests/tap-common-setup.test new file mode 100755 index 000000000..de8ff2cbf --- /dev/null +++ b/tests/tap-common-setup.test @@ -0,0 +1,47 @@ +#! /bin/sh +# Copyright (C) 2011 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, see . + +# Auxiliary test to set up common data used by many tests on TAP support. + +parallel_tests=yes +. ./defs || Exit 1 + +cp "$top_testsrcdir"/lib/tap-driver . \ + || fatal_ "failed to fetch auxiliary script tap-driver" + +cat >> configure.in << END +AC_SUBST([PERL], ['$PERL']) +AC_OUTPUT +END + +cat > Makefile.am << 'END' +TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver +TEST_LOG_COMPILER = cat +TESTS = all.test +END + +$ACLOCAL +$AUTOCONF +$AUTOMAKE + +./configure + +rm -rf autom4te*.cache + +# So that the data files we've created won't be removed at exit. +keep_testdirs=yes + +: diff --git a/tests/tap-deps.test b/tests/tap-deps.test index ec744857b..b86d2356d 100755 --- a/tests/tap-deps.test +++ b/tests/tap-deps.test @@ -20,22 +20,15 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver # The tests are *deliberately* listed in inversed order here. TESTS = c.test b.test a.test b.log: a.log c.log: b.log END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" + cat > a.test << 'END' #!/bin/sh echo 1..2 diff --git a/tests/tap-diagnostic.test b/tests/tap-diagnostic.test index caef65119..73ab45eb2 100755 --- a/tests/tap-diagnostic.test +++ b/tests/tap-diagnostic.test @@ -21,19 +21,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" metacharacters=\''"\$!&()[]<>#;^?*' @@ -65,12 +53,6 @@ PASS: all.test 4 - zardoz # all.test: Shell metacharacters here: $metacharacters END -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - $MAKE check >stdout || { cat stdout; Exit 1; } cat stdout $EGREP -i "#.*all\\.test|a comment|(Tests|Shell) " stdout && Exit 1 diff --git a/tests/tap-empty-diagnostic.test b/tests/tap-empty-diagnostic.test index 0edea1392..2dcc880e7 100755 --- a/tests/tap-empty-diagnostic.test +++ b/tests/tap-empty-diagnostic.test @@ -20,20 +20,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -AM_TEST_LOG_DRIVER_FLAGS = --comments -TESTS = all.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" sed 's/\$$//' > all.test <stdout || { cat stdout; Exit 1; } cat stdout +grep '^PASS:.*all\.test' stdout # Sanity check. grep '#.*all\.test' stdout && Exit 1 grep "all\.test[ $tab]*:[ $tab]*$" stdout && Exit 1 diff --git a/tests/tap-empty.test b/tests/tap-empty.test index 565c1347f..557b7c796 100755 --- a/tests/tap-empty.test +++ b/tests/tap-empty.test @@ -21,25 +21,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" # Empty TAP input. : > empty.test diff --git a/tests/tap-escape-directive.test b/tests/tap-escape-directive.test index fb333baa6..2f8cb7349 100755 --- a/tests/tap-escape-directive.test +++ b/tests/tap-escape-directive.test @@ -20,19 +20,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > all.test <<'END' 1..2 diff --git a/tests/tap-exit.test b/tests/tap-exit.test index 07209d1b8..381adff12 100755 --- a/tests/tap-exit.test +++ b/tests/tap-exit.test @@ -22,19 +22,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TESTS = -END - +echo TESTS = > Makefile.am for st in 1 2 77 99; do unindent > exit${st}.test <stdout && { cat stdout; Exit 1; } cat stdout diff --git a/tests/tap-fancy.test b/tests/tap-fancy.test index 68612dec0..3348db770 100755 --- a/tests/tap-fancy.test +++ b/tests/tap-fancy.test @@ -20,25 +20,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" # # From manpage Test::Harness::TAP(3): diff --git a/tests/tap-fancy2.test b/tests/tap-fancy2.test index 977d38f4e..ddd64eabc 100755 --- a/tests/tap-fancy2.test +++ b/tests/tap-fancy2.test @@ -20,19 +20,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" # # From manpage Test::Harness::TAP(3): diff --git a/tests/tap-global-log.test b/tests/tap-global-log.test index da5aeb8bd..a4f6428aa 100755 --- a/tests/tap-global-log.test +++ b/tests/tap-global-log.test @@ -20,13 +20,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < ok.test << 'END' 1..5 @@ -108,20 +102,8 @@ cat > skipall.test << 'END' 1..0 # SKIP all END -cat > Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -END -echo TESTS = *.test >> Makefile.am - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - # We don't care about the exit status of "make check" here. -$MAKE check || : +TESTS="`echo *.test`" $MAKE -e check || : cat test-suite.log grep 'ok\.test|not seen' test-suite.log && Exit 1 diff --git a/tests/tap-global-result.test b/tests/tap-global-result.test index d2e593ecf..c49fae481 100755 --- a/tests/tap-global-result.test +++ b/tests/tap-global-result.test @@ -21,25 +21,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = \ - ok.test \ - skip.test skipall.test \ - fail.test fail2.test \ - xpass.test xpass2.test \ - error.test error2.test \ - hodgepodge.test hodgepodge-all.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > ok.test <stdout && { cat stdout; Exit 1; } +TESTS="`echo *.test`" $MAKE -e check >stdout && { cat stdout; Exit 1; } cat stdout for tst in ok skip skipall fail fail2 xpass xpass2 error error2 \ diff --git a/tests/tap-html.test b/tests/tap-html.test index 12dcb3689..b5a1beb30 100755 --- a/tests/tap-html.test +++ b/tests/tap-html.test @@ -21,20 +21,13 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver TEST_LOG_COMPILER = cat TESTS = ok.test ko.test END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" + cat > ok.test << 'END' 1..3 ok 1 - expected success @@ -49,12 +42,6 @@ ok 2 - spurious success # TODO Bail out! hard error END -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - no_rst2html_error () { $EGREP '(test-suite\.log:[0-9]|WARNING|SEVERE)' output && Exit 1 diff --git a/tests/tap-log.test b/tests/tap-log.test index e5bab2f47..eecb2a2cf 100755 --- a/tests/tap-log.test +++ b/tests/tap-log.test @@ -25,20 +25,13 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver TESTS = pass.test skip.test xfail.test fail.test xpass.test error.test TEST_SUITE_LOG = global.log END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" + # Custom markers, for use in grepping checks. cmarker=::: # comment marker pmarker=%%% # plain maker @@ -93,12 +86,6 @@ END chmod a+x *.test -$ACLOCAL -$AUTOCONF -$AUTOMAKE -a - -./configure - TEST_SUITE_LOG=my.log $MAKE -e check && Exit 1 ls -l # For debugging. test ! -f test-suite.log diff --git a/tests/tap-merge-stdout-stderr.test b/tests/tap-merge-stdout-stderr.test index e73f0ec05..787ad51f2 100755 --- a/tests/tap-merge-stdout-stderr.test +++ b/tests/tap-merge-stdout-stderr.test @@ -24,25 +24,12 @@ parallel_tests=yes cp "$top_testsrcdir"/lib/tap-driver . \ || fatal_ "failed to fetch auxiliary script tap-driver" -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver AM_TEST_LOG_DRIVER_FLAGS = --comments --merge TESTS = all.test END -: > all.test # Updated later. -chmod a+x all.test - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > all.test <&2 echo "ok 4 # SKIP" echo "# foo foo foo" >&2 END +chmod a+x all.test $MAKE check >stdout || { cat stdout; Exit 1; } cat stdout diff --git a/tests/tap-message-0.test b/tests/tap-message-0.test index 9f16171cf..bce333fbb 100755 --- a/tests/tap-message-0.test +++ b/tests/tap-message-0.test @@ -23,19 +23,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > all.test << 'END' 1..10 @@ -51,12 +39,6 @@ not ok 9 0 # TODO 0 ok 10 0 # SKIP 0 END -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - $MAKE check >stdout || { cat stdout; Exit 1; } cat stdout diff --git a/tests/tap-no-disable-hard-error.test b/tests/tap-no-disable-hard-error.test index a2f88f948..678e1849b 100755 --- a/tests/tap-no-disable-hard-error.test +++ b/tests/tap-no-disable-hard-error.test @@ -21,21 +21,14 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' DISABLE_HARD_ERRORS = yes -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver TEST_LOG_COMPILER = cat TESTS = bail.test few.test noplan.test END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" + cat > bail.test < noplan.test <stdout && { cat stdout; Exit 1; } cat stdout diff --git a/tests/tap-no-merge-stdout-stderr.test b/tests/tap-no-merge-stdout-stderr.test index c2995b29d..25a06fdc7 100755 --- a/tests/tap-no-merge-stdout-stderr.test +++ b/tests/tap-no-merge-stdout-stderr.test @@ -21,25 +21,12 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver TEST_LOG_DRIVER_FLAGS = --comments TESTS = all.test END -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > all.test <> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > all.test <<'END' 1..1 @@ -47,12 +35,6 @@ cat > all.test <<'END' ok 1 END -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - $MAKE check >stdout || { cat stdout; Exit 1; } cat stdout diff --git a/tests/tap-no-spurious.test b/tests/tap-no-spurious.test index cfe7dbd48..91b115fec 100755 --- a/tests/tap-no-spurious.test +++ b/tests/tap-no-spurious.test @@ -21,19 +21,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" echo 1..5 > all.test diff --git a/tests/tap-not-ok-skip.test b/tests/tap-not-ok-skip.test index 57b8d7a97..f154d2306 100755 --- a/tests/tap-not-ok-skip.test +++ b/tests/tap-not-ok-skip.test @@ -21,19 +21,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > all.test <<'END' 1..4 @@ -43,12 +31,6 @@ not ok - foo # SKIP not ok 4 - bar # SKIP END -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - $MAKE check >stdout && { cat stdout; Exit 1; } cat stdout diff --git a/tests/tap-numeric-description.test b/tests/tap-numeric-description.test index a2b4f79c7..ea010386c 100755 --- a/tests/tap-numeric-description.test +++ b/tests/tap-numeric-description.test @@ -19,19 +19,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" # Some random numbers to be used as test names. The definitions below are # selected so that $x != for every n >= 1. We can't use positional @@ -66,12 +54,6 @@ XPASS: all.test 9 ${x9} # TODO XPASS: all.test 10 - ${x10} # TODO END -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - $MAKE check >stdout && { cat stdout; Exit 1; } cat stdout diff --git a/tests/tap-out-of-order.test b/tests/tap-out-of-order.test index 2639e2cb4..f8f69c79f 100755 --- a/tests/tap-out-of-order.test +++ b/tests/tap-out-of-order.test @@ -20,19 +20,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = a.test b.test c.test d.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > a.test <stdout && { cat stdout; Exit 1; } + +TESTS='a.test b.test c.test d.test' $MAKE -e check >stdout \ + && { cat stdout; Exit 1; } cat stdout count_test_results total=17 pass=8 fail=0 xpass=0 xfail=1 skip=0 error=8 diff --git a/tests/tap-passthrough-exit.test b/tests/tap-passthrough-exit.test index 98213a381..ae8ffa891 100755 --- a/tests/tap-passthrough-exit.test +++ b/tests/tap-passthrough-exit.test @@ -22,16 +22,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver TEST_LOG_COMPILER = $(SHELL) TESTS = END @@ -48,11 +39,7 @@ END echo TESTS += exit-$e.test >> Makefile.am done -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" st=0 $MAKE check || st=$? diff --git a/tests/tap-passthrough.test b/tests/tap-passthrough.test index b4a7c127a..ba773ed58 100755 --- a/tests/tap-passthrough.test +++ b/tests/tap-passthrough.test @@ -23,27 +23,9 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = -END - weirdchars=\''"\$@!&()[]<>#;,:.^?*/' -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" # # Only successful tests. diff --git a/tests/tap-plan-corner.test b/tests/tap-plan-corner.test index 7f462636b..4215556fc 100755 --- a/tests/tap-plan-corner.test +++ b/tests/tap-plan-corner.test @@ -20,25 +20,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > leading-repeated-1.test <> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" # The leading blank line is meant. cat > leading-blank.test <> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = foo.test -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" my_check () { - cat > foo.test + cat > all.test test -n "$err" || fatal_ "\$err not set before calling my_check" - cat foo.test # For debugging. + cat all.test # For debugging. $MAKE check >stdout && { cat stdout; Exit 1; } cat stdout count_test_results "$@" - grep "^ERROR: foo\\.test - $err$" stdout + grep "^ERROR: all\\.test - $err$" stdout unset err } diff --git a/tests/tap-plan.test b/tests/tap-plan.test index 10fa377fd..79e9bddda 100755 --- a/tests/tap-plan.test +++ b/tests/tap-plan.test @@ -22,25 +22,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = top.test bot.test -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > top.test <stdout || { cat stdout; Exit 1; } +TESTS='top.test bot.test' $MAKE -e check >stdout || { cat stdout; Exit 1; } cat stdout count_test_results total=7 pass=5 xfail=1 skip=1 fail=0 xpass=0 error=0 diff --git a/tests/tap-realtime.test b/tests/tap-realtime.test index 0f43e9e43..4a38f1422 100755 --- a/tests/tap-realtime.test +++ b/tests/tap-realtime.test @@ -35,18 +35,10 @@ expect -f expect-check || { } rm -f expect-check -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver TESTS = all.test END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > all.test <<'END' #! /bin/sh @@ -72,12 +64,6 @@ END chmod a+x all.test -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - cat > expect-make <<'END' eval spawn $env(MAKE) check expect { diff --git a/tests/tap-recheck-logs.test b/tests/tap-recheck-logs.test index a3484bbc7..6e1b646d6 100755 --- a/tests/tap-recheck-logs.test +++ b/tests/tap-recheck-logs.test @@ -20,21 +20,14 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver TEST_LOG_COMPILER = cat TESTS = foo.test bar.test baz.test baz.log: zardoz END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" + : > zardoz cat > foo.test <<'END' @@ -53,12 +46,6 @@ cat > baz.test <<'END' Bail out! END -$ACLOCAL -$AUTOCONF -$AUTOMAKE -a - -./configure - # Even the tests that are not re-run should contribute to the testsuite # summary when obtained by "make check RECHECK_LOGS=". grep_summary () diff --git a/tests/tap-setup.sh b/tests/tap-setup.sh new file mode 100755 index 000000000..0d1a1e34e --- /dev/null +++ b/tests/tap-setup.sh @@ -0,0 +1,48 @@ +#! /bin/sh +# Copyright (C) 2011 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, see . + +# Auxiliary shell script that copies the common data and files used by +# many tests on TAP support into the current directory. It should be +# sourced by client test scripts, and assumes the auxiliary test +# `tap-common-setup.test' has been run beforehand (it will error out +# if this is not the case). + +# Check that we are running from a proper directory: last thing we want +# is to overwrite some random user files. +test -f ../defs-static && test -f ../defs \ + || fatal_ "running from a wrong directory" + +test ! -f Makefile.am || mv Makefile.am Makefile.am~ \ + || fatal_ "failed to save Makefile.am" + +test -d ../tap-common-setup.dir && cp -Rp ../tap-common-setup.dir/* . \ + || fatal_ "couldn't get precomputed data files" + +cp "$top_testsrcdir"/lib/tap-driver . \ + || fatal_ "failed to fetch auxiliary script tap-driver" + +if test -f Makefile.am~; then + mv -f Makefile.am~ Makefile.am \ + || fatal_ "failed to restore Makefile.am" + echo 'TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver' >> Makefile.am \ + || fatal_ "failed to update Makefile.am" + $AUTOMAKE Makefile \ + || fatal_ "failed to remake Makefile.in" + ./config.status Makefile \ + || fatal_ "failed to remake Makefile" +fi + +: diff --git a/tests/tap-signal.test b/tests/tap-signal.test index b1ac2dfed..fb75c83e4 100755 --- a/tests/tap-signal.test +++ b/tests/tap-signal.test @@ -20,19 +20,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TESTS = -END - +echo TESTS = > Makefile.am for sig in 1 2 13 15; do unindent > signal-$sig.test <> Makefile diff --git a/tests/tap-skip-whole-whitespace.test b/tests/tap-skip-whole-whitespace.test index 2a19d4c9e..bf83241a7 100755 --- a/tests/tap-skip-whole-whitespace.test +++ b/tests/tap-skip-whole-whitespace.test @@ -21,22 +21,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -sp=' ' -tab=' ' - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = foo.test bar.test baz.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > foo.test < baz.test < stdout || { cat stdout; Exit 1; } +TESTS='foo.test bar.test baz.test' $MAKE -e check > stdout \ + || { cat stdout; Exit 1; } cat stdout count_test_results total=3 pass=0 fail=0 error=0 xpass=0 xfail=0 skip=3 diff --git a/tests/tap-skip-whole.test b/tests/tap-skip-whole.test index bd75e904a..6b14be473 100755 --- a/tests/tap-skip-whole.test +++ b/tests/tap-skip-whole.test @@ -20,21 +20,9 @@ parallel_tests=yes . ./defs || Exit 1 -weirdchars=\''"$!&()[]<>#;^?*/@%=,.:' - -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = foo.test bar.test baz.test wget.test curl.test mu.test -END +weirdchars=\''"$!&()[]<>#;^?*/@%=,.:' cat > foo.test <stdout || { cat stdout; Exit 1; } +env TESTS='foo.test bar.test baz.test wget.test curl.test mu.test' \ + $MAKE -e check >stdout || { cat stdout; Exit 1; } cat stdout count_test_results total=6 pass=0 fail=0 xpass=0 xfail=0 skip=6 error=0 diff --git a/tests/tap-todo-skip-together.test b/tests/tap-todo-skip-together.test index 1528ca32e..14b8ed525 100755 --- a/tests/tap-todo-skip-together.test +++ b/tests/tap-todo-skip-together.test @@ -20,19 +20,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > all.test <stdout || { cat stdout; Exit 1; } cat stdout diff --git a/tests/tap-todo-skip-whitespace.test b/tests/tap-todo-skip-whitespace.test index 68fbbc1a1..695e98c2c 100755 --- a/tests/tap-todo-skip-whitespace.test +++ b/tests/tap-todo-skip-whitespace.test @@ -21,25 +21,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > stub.tap <> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" # ----------------------------------------------------- # # Check all possible combinations of: # diff --git a/tests/tap-unplanned.test b/tests/tap-unplanned.test index 696f73bef..177e36e96 100755 --- a/tests/tap-unplanned.test +++ b/tests/tap-unplanned.test @@ -20,27 +20,9 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = foo.test -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - -cat > foo.test < all.test <stdout && { cat stdout; Exit 1; } cat stdout count_test_results total=3 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=2 -grep '^ERROR: foo\.test - too many tests run (expected 1, got 2)$' stdout -grep '^ERROR: foo\.test 2 # UNPLANNED$' stdout +grep '^ERROR: all\.test - too many tests run (expected 1, got 2)$' stdout +grep '^ERROR: all\.test 2 # UNPLANNED$' stdout -cat > foo.test < all.test <stdout && { cat stdout; Exit 1; } cat stdout count_test_results total=4 pass=2 fail=0 xpass=0 xfail=0 skip=0 error=2 -grep '^ERROR: foo\.test - too many tests run (expected 2, got 3)$' stdout -grep '^ERROR: foo\.test 3 # UNPLANNED$' stdout +grep '^ERROR: all\.test - too many tests run (expected 2, got 3)$' stdout +grep '^ERROR: all\.test 3 # UNPLANNED$' stdout # Interaction with XFAIL_TESTS. -cat > foo.test < all.test <stdout && { cat stdout; Exit 1; } +XFAIL_TESTS=all.test $MAKE -e check >stdout && { cat stdout; Exit 1; } cat stdout count_test_results total=6 pass=0 fail=0 xpass=0 xfail=1 skip=1 error=4 -grep '^ERROR: foo\.test - too many tests run (expected 2, got 5)$' stdout -grep '^ERROR: foo\.test 3 # UNPLANNED$' stdout -grep '^ERROR: foo\.test 4 # UNPLANNED$' stdout -grep '^ERROR: foo\.test 5 # UNPLANNED$' stdout +grep '^ERROR: all\.test - too many tests run (expected 2, got 5)$' stdout +grep '^ERROR: all\.test 3 # UNPLANNED$' stdout +grep '^ERROR: all\.test 4 # UNPLANNED$' stdout +grep '^ERROR: all\.test 5 # UNPLANNED$' stdout -cat > foo.test < all.test <stdout && { cat stdout; Exit 1; } cat stdout count_test_results total=22 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=21 -echo 'PASS: foo.test 1' > exp -sed -e '/^$/d' -e 's/.*/ERROR: foo.test & # UNPLANNED/' t >> exp -echo 'ERROR: foo.test - too many tests run (expected 1, got 21)' >> exp +echo 'PASS: all.test 1' > exp +sed -e '/^$/d' -e 's/.*/ERROR: all.test & # UNPLANNED/' t >> exp +echo 'ERROR: all.test - too many tests run (expected 1, got 21)' >> exp -$FGREP ': foo.test' stdout > got +$FGREP ': all.test' stdout > got cat exp cat got @@ -159,7 +141,7 @@ diff exp got # message about the unmatched number of tests once we've got the plan. for x in 'ok' 'ok 3' 'not ok' 'not ok # TODO' 'ok # TODO' 'ok # SKIP'; do - unindent > foo.test < all.test <stdout && { cat stdout; Exit 1; } cat stdout - test `$FGREP -c ': foo.test' stdout` -eq 4 - $EGREP '^PASS: foo\.test 1($| )' stdout - $EGREP '^SKIP: foo\.test 2($| )' stdout - $EGREP ': foo\.test 3($| )' stdout - grep '^ERROR: foo\.test - too many tests run (expected 2, got 3)$' stdout + test `$FGREP -c ': all.test' stdout` -eq 4 + $EGREP '^PASS: all\.test 1($| )' stdout + $EGREP '^SKIP: all\.test 2($| )' stdout + $EGREP ': all\.test 3($| )' stdout + grep '^ERROR: all\.test - too many tests run (expected 2, got 3)$' stdout done : diff --git a/tests/tap-whitespace-normalization.test b/tests/tap-whitespace-normalization.test index 16e68015f..a902438bc 100755 --- a/tests/tap-whitespace-normalization.test +++ b/tests/tap-whitespace-normalization.test @@ -23,25 +23,13 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver TEST_LOG_COMPILER = cat TESTS = END : > exp -sp=' ' -tab=' ' - spaces_a=${sp}${tab}${tab}${sp}${sp}${tab} spaces_b=${tab}${tab}${sp}${tab}${sp}${sp}${sp} @@ -157,11 +145,7 @@ END chmod a+x *.test -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" # Don't care about exit status or number of test results, they should be # checked for in many other tests. diff --git a/tests/tap-with-and-without-number.test b/tests/tap-with-and-without-number.test index a1f7a4bf4..e989cc81b 100755 --- a/tests/tap-with-and-without-number.test +++ b/tests/tap-with-and-without-number.test @@ -22,19 +22,7 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" - -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = all.test -END +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" cat > all.test <<'END' 1..7 @@ -47,12 +35,6 @@ ok 6 # SKIP ok zardoz END -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure - $MAKE check >stdout || { cat stdout; Exit 1; } cat stdout count_test_results total=7 pass=4 fail=0 xpass=0 xfail=2 skip=1 error=0 diff --git a/tests/tap-xfail-tests.test b/tests/tap-xfail-tests.test index f159e8ae7..22733c8f8 100755 --- a/tests/tap-xfail-tests.test +++ b/tests/tap-xfail-tests.test @@ -20,28 +20,11 @@ parallel_tests=yes . ./defs || Exit 1 -cp "$top_testsrcdir"/lib/tap-driver . \ - || fatal_ "failed to fetch auxiliary script tap-driver" +. "$testsrcdir"/tap-setup.sh || fatal_ "sourcing tap-setup.sh" -cat >> configure.in < Makefile.am << 'END' -TEST_LOG_DRIVER = $(PERL) $(srcdir)/tap-driver -TEST_LOG_COMPILER = cat -TESTS = the.test -XFAIL_TESTS = $(TESTS) -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE - -./configure +echo 'XFAIL_TESTS = $(TESTS)' >> Makefile -cat > the.test < all.test < the.test < all.test <