[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FYI 2/3] {testsuite-work} testsuite: revamp generation of autogenerated
From: |
Stefano Lattarini |
Subject: |
[FYI 2/3] {testsuite-work} testsuite: revamp generation of autogenerated tests |
Date: |
Thu, 8 Sep 2011 17:04:25 +0200 |
With this change, we make generated tests be real scripts again
-- albeit only thin layers around the tests they wrap. It turned
out that the apparently clever tricks we played by having lots
of custom (and auto-generated) `..._LOG_COMPILER' variables and
by having the tests in $(wrap_TESTS) not being real on-file-system
scripts caused more pain and confusion than expected, for only
marginal gains. Also, that previous setup didn't interact very
well with "make check RECHECK_LOGS=", since the log files for
the "wrappee" tests were always considered out-of-date (which in
hindsight is natural, since these log files depended on wrappee
tests that didn't exist -- and weren't created). And finally, it
wasn't possible to easily and naturally run the wrappee tests
from the command line -- definitely harmful for debugging and
sanity checking.
* tests/gen-wrap-tests: Deleted, its role subsumed into ...
* tests/gen-tests-deps: ... this script, with the help of
(unindent, atomic_write, build_matcher, write_wrapper_script,
%test_generators): ... these new functions and variables.
Other few minor fixlets and improvements.
* tests/wrap-tests.sh: Delete, not needed anymore.
* tests/Makefile.am ($(srcdir)/wrap-tests.am): Don't generate
nor include anymore.
(EXTRA_DIST): Update.
(wrap_TESTS): Renamed to ...
(generated_TESTS): ... this.
($(generated_TESTS)): Must have the same dependencies of
`$(srcdir)/tests-deps.am'.
Other minor related reordering and adjustments.
* bootstrap: Do not generate `wrap-tests.am' anymore.
* tests/.gitignore (wrap-tests.am): Don't ignore anymore.
(*-w.test, *-w.tap): Ignore.
* tests/README: Update paragraph on automatically-generated
tests.
---
ChangeLog | 37 +++
bootstrap | 3 -
tests/.gitignore | 3 +-
tests/Makefile.am | 56 ++---
tests/Makefile.in | 703 ++++++++++++++++++++++++--------------------------
tests/README | 12 +-
tests/gen-tests-deps | 196 ++++++++++++++-
tests/gen-wrap-tests | 185 -------------
tests/wrap-tests.sh | 89 -------
9 files changed, 595 insertions(+), 689 deletions(-)
delete mode 100755 tests/gen-wrap-tests
delete mode 100755 tests/wrap-tests.sh
diff --git a/ChangeLog b/ChangeLog
index faea7f2..4c15e57 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,42 @@
2011-09-08 Stefano Lattarini <address@hidden>
+ testsuite: revamp generation of autogenerated tests
+ With this change, we make generated tests be real scripts again
+ -- albeit only thin layers around the tests they wrap. It turned
+ out that the apparently clever tricks we played by having lots
+ of custom (and auto-generated) `..._LOG_COMPILER' variables and
+ by having the tests in $(wrap_TESTS) not being real on-file-system
+ scripts caused more pain and confusion than expected, for only
+ marginal gains. Also, that previous setup didn't interact very
+ well with "make check RECHECK_LOGS=", since the log files for
+ the "wrappee" tests were always considered out-of-date (which in
+ hindsight is natural, since these log files depended on wrappee
+ tests that didn't exist -- and weren't created). And finally, it
+ wasn't possible to easily and naturally run the wrappee tests
+ from the command line -- definitely harmful for debugging and
+ sanity checking.
+ * tests/gen-wrap-tests: Deleted, its role subsumed into ...
+ * tests/gen-tests-deps: ... this script, with the help of
+ (unindent, atomic_write, build_matcher, write_wrapper_script,
+ %test_generators): ... these new functions and variables.
+ Other few minor fixlets and improvements.
+ * tests/wrap-tests.sh: Delete, not needed anymore.
+ * tests/Makefile.am ($(srcdir)/wrap-tests.am): Don't generate
+ nor include anymore.
+ (EXTRA_DIST): Update.
+ (wrap_TESTS): Renamed to ...
+ (generated_TESTS): ... this.
+ ($(generated_TESTS)): Must have the same dependencies of
+ `$(srcdir)/tests-deps.am'.
+ Other minor related reordering and adjustments.
+ * bootstrap: Do not generate `wrap-tests.am' anymore.
+ * tests/.gitignore (wrap-tests.am): Don't ignore anymore.
+ (*-w.test, *-w.tap): Ignore.
+ * tests/README: Update paragraph on automatically-generated
+ tests.
+
+2011-09-08 Stefano Lattarini <address@hidden>
+
testsuite: automatize generation of dependencies for tests
* tests/gen-test-deps: New script, automatically generates
dependencies for the tests.
diff --git a/bootstrap b/bootstrap
index 77509dc..7b3f76f 100755
--- a/bootstrap
+++ b/bootstrap
@@ -105,9 +105,6 @@ dosubst automake.in automake.tmp
# Create required makefile snippets.
cd tests
-$BOOTSTRAP_SHELL ./gen-wrap-tests > wrap-tests.tmp
-chmod a-w wrap-tests.tmp
-mv -f wrap-tests.tmp wrap-tests.am
$PERL ./gen-tests-deps > tests-deps.tmp
chmod a-w tests-deps.tmp
mv -f tests-deps.tmp tests-deps.am
diff --git a/tests/.gitignore b/tests/.gitignore
index cea5f6d..bb5f7e9 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -1,8 +1,9 @@
/aclocal-*
/automake-*
/defs-static
-/wrap-tests.am
/tests-deps.am
+/*-w.tap
+/*-w.test
/*.dir
/*.log
/*.trs
diff --git a/tests/Makefile.am b/tests/Makefile.am
index d2c05dc..21c9c15 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -38,8 +38,7 @@ AM_TAP_LOG_DRIVER_FLAGS += --diagnostic-string `printf
'\043%%\043\n'`
EXTRA_DIST = ChangeLog-old
-## Will be updated later.
-TESTS =
+TESTS = ## Will be updated later.
XFAIL_TESTS = \
all.test \
@@ -78,24 +77,31 @@ include $(srcdir)/list-of-tests.mk
TESTS += $(handwritten_TESTS)
EXTRA_DIST += $(handwritten_TESTS)
-# "Auto-generated" tests wrapping hand-written ones.
+# Automatically-generated tests wrapping hand-written ones.
+# Also, automatically-computed dependencies for tests.
-include $(srcdir)/wrap-tests.am
+include $(srcdir)/tests-deps.am
-TESTS += $(wrap_TESTS)
+TESTS += $(generated_TESTS)
+EXTRA_DIST += $(generated_TESTS)
-$(srcdir)/wrap-tests.am: gen-wrap-tests list-of-tests.mk Makefile.am
- $(AM_V_GEN)($(am__cd) $(srcdir) \
- && $(SHELL) ./gen-wrap-tests) > wrap-tests.tmp
- $(AM_V_at)chmod a-w wrap-tests.tmp && mv -f wrap-tests.tmp $@
-EXTRA_DIST += gen-wrap-tests
+$(srcdir)/tests-deps.am:
+ $(AM_V_at)rm -f tests-deps.tmp $@
+ $(AM_V_GEN)$(PERL) $(srcdir)/gen-tests-deps --srcdir $(srcdir) \
+ > tests-deps.tmp
+ $(AM_V_at)chmod a-w tests-deps.tmp && mv -f tests-deps.tmp $@
+EXTRA_DIST += gen-tests-deps
+
+$(generated_TESTS) $(srcdir)/tests-deps.am: \
+ gen-tests-deps list-of-tests.mk Makefile.am $(handwritten_TESTS)
+
+# Static dependencies valid for each test case.
+$(TEST_LOGS): defs defs-static aclocal-$(APIVERSION) automake-$(APIVERSION)
+# FIXME: this should be made more granular once we have a cleaner
+# subdivision of the tests.
+$(TEST_LOGS): plain-functions.sh tap-functions.sh
+EXTRA_DIST += tap-functions.sh plain-functions.sh
-# These tests are not expected to exist on filesystem, so we need this
-# declaration to avoid spurious failures.
-$(wrap_TESTS):
-# All the "wrapper" tests work by sourcing the script `wrap-tests.sh'.
-$(wrap_LOGS): wrap-tests.sh
-EXTRA_DIST += wrap-tests.sh
# If two test scripts have the same basename, they will end up sharing
# the same log file, leading to all sort of undefined and undesired
@@ -117,24 +123,6 @@ checked_test_extensions = .test .tap
expected_list_of_tests = $(handwritten_TESTS)
include $(top_srcdir)/CheckListOfTests.am
-# Automatically computed dependencies for tests.
-
-$(srcdir)/tests-deps.am: gen-tests-deps list-of-tests.mk Makefile.am
- $(AM_V_at)rm -f tests-deps.tmp $@
- $(AM_V_GEN)$(PERL) $(srcdir)/gen-tests-deps --srcdir $(srcdir) \
- > tests-deps.tmp
- $(AM_V_at)chmod a-w tests-deps.tmp && mv -f tests-deps.tmp $@
-EXTRA_DIST += gen-tests-deps
-
-include $(srcdir)/tests-deps.am
-
-# Static dependencies valid for each test case.
-$(TEST_LOGS): defs defs-static aclocal-$(APIVERSION) automake-$(APIVERSION)
-# FIXME: this should be made more granular once we have a cleaner
-# subdivision of the tests.
-$(TEST_LOGS): plain-functions.sh tap-functions.sh
-EXTRA_DIST += tap-functions.sh plain-functions.sh
-
clean-local: clean-local-check
.PHONY: clean-local-check
clean-local-check:
diff --git a/tests/Makefile.in b/tests/Makefile.in
index c7cd0aa..25df95f 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -52,8 +52,7 @@ host_triplet = @host@
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/aclocal.in $(srcdir)/automake.in $(srcdir)/defs \
$(srcdir)/defs-static.in $(srcdir)/list-of-tests.mk \
- $(srcdir)/tests-deps.am $(srcdir)/wrap-tests.am \
- $(top_srcdir)/CheckListOfTests.am
+ $(srcdir)/tests-deps.am $(top_srcdir)/CheckListOfTests.am
subdir = tests
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/amversion.m4 \
@@ -182,21 +181,9 @@ am__test_logs2 = $(am__test_logs1:.test.log=.log)
TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/lib/test-driver
TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
$(TEST_LOG_FLAGS)
-am__test_logs3 = $(am__test_logs2:.tap.log=.log)
+TEST_LOGS = $(am__test_logs2:.tap.log=.log)
TAP_LOG_COMPILE = $(TAP_LOG_COMPILER) $(AM_TAP_LOG_FLAGS) \
$(TAP_LOG_FLAGS)
-am__test_logs4 = $(am__test_logs3:.test_pt.log=.log)
-TEST_PT_LOG_COMPILE = $(TEST_PT_LOG_COMPILER) $(AM_TEST_PT_LOG_FLAGS) \
- $(TEST_PT_LOG_FLAGS)
-am__test_logs5 = $(am__test_logs4:.test_cs.log=.log)
-TEST_CS_LOG_COMPILE = $(TEST_CS_LOG_COMPILER) $(AM_TEST_CS_LOG_FLAGS) \
- $(TEST_CS_LOG_FLAGS)
-am__test_logs6 = $(am__test_logs5:.test_pltap.log=.log)
-TEST_PLTAP_LOG_COMPILE = $(TEST_PLTAP_LOG_COMPILER) \
- $(AM_TEST_PLTAP_LOG_FLAGS) $(TEST_PLTAP_LOG_FLAGS)
-TEST_LOGS = $(am__test_logs6:.tap_pltap.log=.log)
-TAP_PLTAP_LOG_COMPILE = $(TAP_PLTAP_LOG_COMPILER) \
- $(AM_TAP_PLTAP_LOG_FLAGS) $(TAP_PLTAP_LOG_FLAGS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -299,21 +286,23 @@ top_srcdir = @top_srcdir@
# Run the tests with the shell detected at configure time.
LOG_COMPILER = $(SHELL)
-TEST_EXTENSIONS = .test .tap .test_pt .test_cs .test_pltap .tap_pltap
+TEST_EXTENSIONS = .test .tap
TEST_LOG_COMPILER = $(LOG_COMPILER)
TAP_LOG_COMPILER = $(LOG_COMPILER)
TAP_LOG_DRIVER = AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/lib/tap-driver.sh
AM_TAP_LOG_DRIVER_FLAGS = --merge --comments --diagnostic-string \
`printf '\043%%\043\n'`
-EXTRA_DIST = ChangeLog-old $(handwritten_TESTS) gen-wrap-tests \
- wrap-tests.sh gen-tests-deps tap-summary-aux.sh tap-setup.sh \
- extract-testsuite-summary testsuite-summary-checks.sh \
- trivial-test-driver tap-functions.sh plain-functions.sh
+EXTRA_DIST = ChangeLog-old $(handwritten_TESTS) tap-summary-aux.sh \
+ tap-setup.sh extract-testsuite-summary \
+ testsuite-summary-checks.sh trivial-test-driver \
+ $(generated_TESTS) gen-tests-deps tap-functions.sh \
+ plain-functions.sh
# Hand-written tests.
-# "Auto-generated" tests wrapping hand-written ones.
-TESTS = $(handwritten_TESTS) $(wrap_TESTS)
+# Automatically-generated tests wrapping hand-written ones.
+# Also, automatically-computed dependencies for tests.
+TESTS = $(handwritten_TESTS) $(generated_TESTS)
XFAIL_TESTS = \
all.test \
cond17.test \
@@ -1438,170 +1427,61 @@ yflags-force-override.test \
yflags-force-conditional.test \
yflags-var-expand.test
-wrap_TESTS = check-concurrency-bug9245-w.test_pt \
- check-exported-srcdir-w.test_pt check-fd-redirect-w.test_pt \
- check-subst-prog-w.test_pt check-subst-w.test_pt \
- check-tests-in-builddir-w.test_pt check-w.test_pt \
- check11-w.test_pt check12-w.test_pt check2-w.test_pt \
- check3-w.test_pt check4-w.test_pt check5-w.test_pt \
- check6-w.test_pt check7-w.test_pt check8-w.test_pt \
- color-w.test_pt color2-w.test_pt comment9-w.test_pt \
- dejagnu-w.test_pt exeext4-w.test_pt maken3-w.test_pt \
- maken4-w.test_pt posixsubst-tests-w.test_pt \
- tests-environment-w.test_pt ar-lib-w.test_cs compile-w.test_cs \
- compile2-w.test_cs compile3-w.test_cs compile4-w.test_cs \
- compile5-w.test_cs compile6-w.test_cs instsh2-w.test_cs \
- instsh3-w.test_cs mdate5-w.test_cs mdate6-w.test_cs \
- missing-w.test_cs missing2-w.test_cs missing3-w.test_cs \
- missing5-w.test_cs mkinst3-w.test_cs \
- tap-ambiguous-directive-w.test_pltap \
- tap-autonumber-w.test_pltap tap-bad-prog-w.tap_pltap \
- tap-bailout-and-logging-w.test_pltap \
- tap-bailout-suppress-badexit-w.test_pltap \
- tap-bailout-suppress-later-diagnostic-w.test_pltap \
- tap-bailout-suppress-later-errors-w.test_pltap \
- tap-bailout-w.test_pltap tap-basic-w.test_pltap \
- tap-color-w.test_pltap tap-deps-w.test_pltap \
- tap-diagnostic-custom-w.test_pltap tap-diagnostic-w.test_pltap \
- tap-doc-w.test_pltap tap-driver-stderr-w.test_pltap \
- tap-empty-diagnostic-w.test_pltap tap-empty-w.test_pltap \
- tap-escape-directive-2-w.test_pltap \
- tap-escape-directive-w.test_pltap tap-exit-w.test_pltap \
- tap-fancy-w.test_pltap tap-fancy2-w.test_pltap \
- tap-global-log-w.test_pltap tap-global-result-w.test_pltap \
- tap-html-w.test_pltap tap-log-w.test_pltap \
- tap-merge-stdout-stderr-w.test_pltap \
- tap-missing-plan-and-bad-exit-w.test_pltap \
- tap-more-w.test_pltap tap-more2-w.test_pltap \
- tap-msg0-bailout-w.test_pltap tap-msg0-directive-w.test_pltap \
- tap-msg0-misc-w.test_pltap tap-msg0-planskip-w.test_pltap \
- tap-msg0-result-w.test_pltap tap-negative-numbers-w.test_pltap \
- tap-no-disable-hard-error-w.test_pltap \
- tap-no-merge-stdout-stderr-w.test_pltap \
- tap-no-spurious-numbers-w.test_pltap \
- tap-no-spurious-summary-w.test_pltap \
- tap-no-spurious-w.test_pltap tap-not-ok-skip-w.test_pltap \
- tap-number-wordboundary-w.test_pltap \
- tap-numbers-leading-zero-w.test_pltap \
- tap-numeric-description-w.test_pltap \
- tap-out-of-order-w.test_pltap \
- tap-passthrough-exit-w.test_pltap tap-passthrough-w.test_pltap \
- tap-plan-corner-w.test_pltap tap-plan-errors-w.test_pltap \
- tap-plan-leading-zero-w.test_pltap \
- tap-plan-malformed-w.test_pltap tap-plan-middle-w.test_pltap \
- tap-plan-whitespace-w.test_pltap tap-plan-w.test_pltap \
- tap-planskip-and-logging-w.test_pltap \
- tap-planskip-badexit-w.test_pltap \
- tap-planskip-bailout-w.test_pltap \
- tap-planskip-case-insensitive-w.test_pltap \
- tap-planskip-late-w.test_pltap \
- tap-planskip-later-errors-w.test_pltap \
- tap-planskip-unplanned-corner-w.test_pltap \
- tap-planskip-unplanned-w.test_pltap \
- tap-planskip-whitespace-w.test_pltap tap-planskip-w.test_pltap \
- tap-realtime-w.test_pltap tap-recheck-logs-w.test_pltap \
- tap-recheck-w.test_pltap tap-result-comment-w.test_pltap \
- tap-signal-w.tap_pltap tap-test-number-0-w.test_pltap \
- tap-todo-skip-together-w.test_pltap \
- tap-todo-skip-whitespace-w.test_pltap \
- tap-todo-skip-w.test_pltap tap-unplanned-w.test_pltap \
- tap-whitespace-normalization-w.test_pltap \
- tap-with-and-without-number-w.test_pltap \
- tap-xfail-tests-w.test_pltap
-wrap_LOGS = check-concurrency-bug9245-w.log \
- check-exported-srcdir-w.log check-fd-redirect-w.log \
- check-subst-prog-w.log check-subst-w.log \
- check-tests-in-builddir-w.log check-w.log check11-w.log \
- check12-w.log check2-w.log check3-w.log check4-w.log \
- check5-w.log check6-w.log check7-w.log check8-w.log \
- color-w.log color2-w.log comment9-w.log dejagnu-w.log \
- exeext4-w.log maken3-w.log maken4-w.log posixsubst-tests-w.log \
- tests-environment-w.log ar-lib-w.log compile-w.log \
- compile2-w.log compile3-w.log compile4-w.log compile5-w.log \
- compile6-w.log instsh2-w.log instsh3-w.log mdate5-w.log \
- mdate6-w.log missing-w.log missing2-w.log missing3-w.log \
- missing5-w.log mkinst3-w.log tap-ambiguous-directive-w.log \
- tap-autonumber-w.log tap-bad-prog-w.log \
- tap-bailout-and-logging-w.log \
- tap-bailout-suppress-badexit-w.log \
- tap-bailout-suppress-later-diagnostic-w.log \
- tap-bailout-suppress-later-errors-w.log tap-bailout-w.log \
- tap-basic-w.log tap-color-w.log tap-deps-w.log \
- tap-diagnostic-custom-w.log tap-diagnostic-w.log tap-doc-w.log \
- tap-driver-stderr-w.log tap-empty-diagnostic-w.log \
- tap-empty-w.log tap-escape-directive-2-w.log \
- tap-escape-directive-w.log tap-exit-w.log tap-fancy-w.log \
- tap-fancy2-w.log tap-global-log-w.log tap-global-result-w.log \
- tap-html-w.log tap-log-w.log tap-merge-stdout-stderr-w.log \
- tap-missing-plan-and-bad-exit-w.log tap-more-w.log \
- tap-more2-w.log tap-msg0-bailout-w.log \
- tap-msg0-directive-w.log tap-msg0-misc-w.log \
- tap-msg0-planskip-w.log tap-msg0-result-w.log \
- tap-negative-numbers-w.log tap-no-disable-hard-error-w.log \
- tap-no-merge-stdout-stderr-w.log tap-no-spurious-numbers-w.log \
- tap-no-spurious-summary-w.log tap-no-spurious-w.log \
- tap-not-ok-skip-w.log tap-number-wordboundary-w.log \
- tap-numbers-leading-zero-w.log tap-numeric-description-w.log \
- tap-out-of-order-w.log tap-passthrough-exit-w.log \
- tap-passthrough-w.log tap-plan-corner-w.log \
- tap-plan-errors-w.log tap-plan-leading-zero-w.log \
- tap-plan-malformed-w.log tap-plan-middle-w.log \
- tap-plan-whitespace-w.log tap-plan-w.log \
- tap-planskip-and-logging-w.log tap-planskip-badexit-w.log \
- tap-planskip-bailout-w.log tap-planskip-case-insensitive-w.log \
- tap-planskip-late-w.log tap-planskip-later-errors-w.log \
- tap-planskip-unplanned-corner-w.log \
- tap-planskip-unplanned-w.log tap-planskip-whitespace-w.log \
- tap-planskip-w.log tap-realtime-w.log tap-recheck-logs-w.log \
- tap-recheck-w.log tap-result-comment-w.log tap-signal-w.log \
- tap-test-number-0-w.log tap-todo-skip-together-w.log \
- tap-todo-skip-whitespace-w.log tap-todo-skip-w.log \
- tap-unplanned-w.log tap-whitespace-normalization-w.log \
- tap-with-and-without-number-w.log tap-xfail-tests-w.log
-TEST_PT_LOG_DRIVER = \
- $(TEST_LOG_DRIVER)
-
-AM_TEST_PT_LOG_DRIVER_FLAGS = \
- $(AM_TEST_LOG_DRIVER_FLAGS) \
- $(TEST_LOG_DRIVER_FLAGS)
-
-TEST_PT_LOG_COMPILER = \
- $(LOG_COMPILER) $(srcdir)/wrap-tests.sh \
- --type pt --define parallel_tests "yes"
-
-TEST_CS_LOG_DRIVER = \
- $(TEST_LOG_DRIVER)
-
-AM_TEST_CS_LOG_DRIVER_FLAGS = \
- $(AM_TEST_LOG_DRIVER_FLAGS) \
- $(TEST_LOG_DRIVER_FLAGS)
-
-TEST_CS_LOG_COMPILER = \
- $(LOG_COMPILER) $(srcdir)/wrap-tests.sh \
- --type cs --define test_prefer_config_shell "yes"
-
-TEST_PLTAP_LOG_DRIVER = \
- $(TEST_LOG_DRIVER)
-
-AM_TEST_PLTAP_LOG_DRIVER_FLAGS = \
- $(AM_TEST_LOG_DRIVER_FLAGS) \
- $(TEST_LOG_DRIVER_FLAGS)
-
-TEST_PLTAP_LOG_COMPILER = \
- $(LOG_COMPILER) $(srcdir)/wrap-tests.sh \
- --type pltap --define am_tap_implementation "perl"
-
-TAP_PLTAP_LOG_DRIVER = \
- $(TAP_LOG_DRIVER)
-
-AM_TAP_PLTAP_LOG_DRIVER_FLAGS = \
- $(AM_TAP_LOG_DRIVER_FLAGS) \
- $(TAP_LOG_DRIVER_FLAGS)
-
-TAP_PLTAP_LOG_COMPILER = \
- $(LOG_COMPILER) $(srcdir)/wrap-tests.sh \
- --type pltap --define am_tap_implementation "perl"
-
+generated_TESTS = ar-lib-w.test compile-w.test compile2-w.test \
+ compile3-w.test compile4-w.test compile5-w.test \
+ compile6-w.test instsh2-w.test instsh3-w.test mdate5-w.test \
+ mdate6-w.test missing-w.test missing2-w.test missing3-w.test \
+ missing5-w.test mkinst3-w.test check-w.test check2-w.test \
+ check3-w.test check4-w.test check5-w.test check6-w.test \
+ check7-w.test check8-w.test check11-w.test check12-w.test \
+ check-subst-w.test check-subst-prog-w.test \
+ check-exported-srcdir-w.test check-fd-redirect-w.test \
+ check-tests-in-builddir-w.test \
+ check-concurrency-bug9245-w.test color-w.test color2-w.test \
+ comment9-w.test dejagnu-w.test exeext4-w.test maken3-w.test \
+ maken4-w.test tests-environment-w.test posixsubst-tests-w.test \
+ tap-ambiguous-directive-w.test tap-autonumber-w.test \
+ tap-bailout-w.test tap-bailout-and-logging-w.test \
+ tap-bailout-suppress-badexit-w.test \
+ tap-bailout-suppress-later-diagnostic-w.test \
+ tap-bailout-suppress-later-errors-w.test tap-color-w.test \
+ tap-deps-w.test tap-diagnostic-w.test \
+ tap-empty-diagnostic-w.test tap-empty-w.test \
+ tap-escape-directive-w.test tap-escape-directive-2-w.test \
+ tap-exit-w.test tap-signal-w.tap tap-fancy-w.test \
+ tap-fancy2-w.test tap-global-log-w.test \
+ tap-global-result-w.test tap-html-w.test tap-log-w.test \
+ tap-msg0-result-w.test tap-msg0-directive-w.test \
+ tap-msg0-planskip-w.test tap-msg0-bailout-w.test \
+ tap-msg0-misc-w.test tap-merge-stdout-stderr-w.test \
+ tap-no-merge-stdout-stderr-w.test \
+ tap-no-disable-hard-error-w.test \
+ tap-no-spurious-summary-w.test tap-no-spurious-numbers-w.test \
+ tap-no-spurious-w.test tap-not-ok-skip-w.test \
+ tap-number-wordboundary-w.test tap-numeric-description-w.test \
+ tap-negative-numbers-w.test tap-numbers-leading-zero-w.test \
+ tap-out-of-order-w.test tap-passthrough-w.test \
+ tap-passthrough-exit-w.test tap-plan-w.test \
+ tap-plan-corner-w.test tap-plan-errors-w.test \
+ tap-plan-middle-w.test tap-plan-whitespace-w.test \
+ tap-plan-leading-zero-w.test tap-plan-malformed-w.test \
+ tap-missing-plan-and-bad-exit-w.test tap-planskip-w.test \
+ tap-planskip-late-w.test tap-planskip-and-logging-w.test \
+ tap-planskip-unplanned-w.test \
+ tap-planskip-unplanned-corner-w.test \
+ tap-planskip-case-insensitive-w.test \
+ tap-planskip-whitespace-w.test tap-planskip-badexit-w.test \
+ tap-planskip-bailout-w.test tap-planskip-later-errors-w.test \
+ tap-realtime-w.test tap-test-number-0-w.test \
+ tap-recheck-logs-w.test tap-result-comment-w.test \
+ tap-todo-skip-together-w.test tap-todo-skip-whitespace-w.test \
+ tap-todo-skip-w.test tap-unplanned-w.test \
+ tap-whitespace-normalization-w.test \
+ tap-with-and-without-number-w.test tap-xfail-tests-w.test \
+ tap-bad-prog-w.tap tap-basic-w.test \
+ tap-diagnostic-custom-w.test tap-driver-stderr-w.test \
+ tap-doc-w.test tap-more-w.test tap-more2-w.test \
+ tap-recheck-w.test
checked_test_extensions = .test .tap
expected_list_of_tests = $(handwritten_TESTS)
am__tmk = tests-in-makefile-list.tmp
@@ -1610,8 +1490,8 @@ am__tdf = diff-in-tests-lists.tmp
all: all-am
.SUFFIXES:
-.SUFFIXES: .html .log .tap .tap_pltap .test .test_cs .test_pltap .test_pt .trs
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/list-of-tests.mk
$(srcdir)/wrap-tests.am $(top_srcdir)/CheckListOfTests.am
$(srcdir)/tests-deps.am $(am__configure_deps)
+.SUFFIXES: .html .log .tap .test .trs
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/list-of-tests.mk
$(srcdir)/tests-deps.am $(top_srcdir)/CheckListOfTests.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
@@ -1846,26 +1726,6 @@ recheck recheck-html:
--log-file '$*.log' --trs-file '$*.trs' \
$(am__common_driver_flags) $(AM_TAP_LOG_DRIVER_FLAGS)
$(TAP_LOG_DRIVER_FLAGS) -- $(TAP_LOG_COMPILE) "$$tst" \
$(AM_TESTS_FD_REDIRECT)
-.test_pt.log:
- @p='$<'; $(am__check_pre) $(TEST_PT_LOG_DRIVER) --test-name "$$f" \
- --log-file '$*.log' --trs-file '$*.trs' \
- $(am__common_driver_flags) $(AM_TEST_PT_LOG_DRIVER_FLAGS)
$(TEST_PT_LOG_DRIVER_FLAGS) -- $(TEST_PT_LOG_COMPILE) "$$tst" \
- $(AM_TESTS_FD_REDIRECT)
-.test_cs.log:
- @p='$<'; $(am__check_pre) $(TEST_CS_LOG_DRIVER) --test-name "$$f" \
- --log-file '$*.log' --trs-file '$*.trs' \
- $(am__common_driver_flags) $(AM_TEST_CS_LOG_DRIVER_FLAGS)
$(TEST_CS_LOG_DRIVER_FLAGS) -- $(TEST_CS_LOG_COMPILE) "$$tst" \
- $(AM_TESTS_FD_REDIRECT)
-.test_pltap.log:
- @p='$<'; $(am__check_pre) $(TEST_PLTAP_LOG_DRIVER) --test-name "$$f" \
- --log-file '$*.log' --trs-file '$*.trs' \
- $(am__common_driver_flags) $(AM_TEST_PLTAP_LOG_DRIVER_FLAGS)
$(TEST_PLTAP_LOG_DRIVER_FLAGS) -- $(TEST_PLTAP_LOG_COMPILE) "$$tst" \
- $(AM_TESTS_FD_REDIRECT)
-.tap_pltap.log:
- @p='$<'; $(am__check_pre) $(TAP_PLTAP_LOG_DRIVER) --test-name "$$f" \
- --log-file '$*.log' --trs-file '$*.trs' \
- $(am__common_driver_flags) $(AM_TAP_PLTAP_LOG_DRIVER_FLAGS)
$(TAP_PLTAP_LOG_DRIVER_FLAGS) -- $(TAP_PLTAP_LOG_COMPILE) "$$tst" \
- $(AM_TESTS_FD_REDIRECT)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -2021,136 +1881,339 @@ uninstall-am:
print-list-of-tests:
@echo $(handwritten_TESTS)
.PHONY: print-list-of-tests
-check-concurrency-bug9245-w.log: check-concurrency-bug9245.test
-check-exported-srcdir-w.log: check-exported-srcdir.test
-check-fd-redirect-w.log: check-fd-redirect.test
-check-subst-prog-w.log: check-subst-prog.test
-check-subst-w.log: check-subst.test
-check-tests-in-builddir-w.log: check-tests-in-builddir.test
-check-w.log: check.test
-check11-w.log: check11.test
-check12-w.log: check12.test
-check2-w.log: check2.test
-check3-w.log: check3.test
-check4-w.log: check4.test
-check5-w.log: check5.test
-check6-w.log: check6.test
-check7-w.log: check7.test
-check8-w.log: check8.test
-color-w.log: color.test
-color2-w.log: color2.test
-comment9-w.log: comment9.test
-dejagnu-w.log: dejagnu.test
-exeext4-w.log: exeext4.test
-maken3-w.log: maken3.test
-maken4-w.log: maken4.test
-posixsubst-tests-w.log: posixsubst-tests.test
-tests-environment-w.log: tests-environment.test
+tap-summary.log: tap-summary-aux.sh
+tap-summary-color.log: tap-summary-aux.sh
+tap-ambiguous-directive.log: tap-setup.sh tap-common-setup.log
+tap-autonumber.log: tap-setup.sh tap-common-setup.log
+tap-bailout.log: tap-setup.sh tap-common-setup.log
+tap-bailout-and-logging.log: tap-setup.sh tap-common-setup.log
+tap-bailout-suppress-badexit.log: tap-setup.sh tap-common-setup.log
+tap-bailout-suppress-later-diagnostic.log: tap-setup.sh tap-common-setup.log
+tap-bailout-suppress-later-errors.log: tap-setup.sh tap-common-setup.log
+tap-color.log: tap-setup.sh tap-common-setup.log
+tap-deps.log: tap-setup.sh tap-common-setup.log
+tap-diagnostic.log: tap-setup.sh tap-common-setup.log
+tap-empty-diagnostic.log: tap-setup.sh tap-common-setup.log
+tap-empty.log: tap-setup.sh tap-common-setup.log
+tap-escape-directive.log: tap-setup.sh tap-common-setup.log
+tap-escape-directive-2.log: tap-setup.sh tap-common-setup.log
+tap-exit.log: tap-setup.sh tap-common-setup.log
+tap-signal.log: tap-setup.sh tap-common-setup.log
+tap-fancy.log: tap-setup.sh tap-common-setup.log
+tap-fancy2.log: tap-setup.sh tap-common-setup.log
+tap-global-log.log: tap-setup.sh tap-common-setup.log
+tap-global-result.log: tap-setup.sh tap-common-setup.log
+tap-html.log: tap-setup.sh tap-common-setup.log
+tap-log.log: tap-setup.sh tap-common-setup.log
+tap-msg0-result.log: tap-setup.sh tap-common-setup.log
+tap-msg0-directive.log: tap-setup.sh tap-common-setup.log
+tap-msg0-planskip.log: tap-setup.sh tap-common-setup.log
+tap-msg0-bailout.log: tap-setup.sh tap-common-setup.log
+tap-msg0-misc.log: tap-setup.sh tap-common-setup.log
+tap-merge-stdout-stderr.log: tap-setup.sh tap-common-setup.log
+tap-no-merge-stdout-stderr.log: tap-setup.sh tap-common-setup.log
+tap-no-disable-hard-error.log: tap-setup.sh tap-common-setup.log
+tap-no-spurious-summary.log: tap-setup.sh tap-common-setup.log
+tap-no-spurious-numbers.log: tap-setup.sh tap-common-setup.log
+tap-no-spurious.log: tap-setup.sh tap-common-setup.log
+tap-not-ok-skip.log: tap-setup.sh tap-common-setup.log
+tap-number-wordboundary.log: tap-setup.sh tap-common-setup.log
+tap-numeric-description.log: tap-setup.sh tap-common-setup.log
+tap-negative-numbers.log: tap-setup.sh tap-common-setup.log
+tap-numbers-leading-zero.log: tap-setup.sh tap-common-setup.log
+tap-out-of-order.log: tap-setup.sh tap-common-setup.log
+tap-passthrough.log: tap-setup.sh tap-common-setup.log
+tap-passthrough-exit.log: tap-setup.sh tap-common-setup.log
+tap-plan.log: tap-setup.sh tap-common-setup.log
+tap-plan-corner.log: tap-setup.sh tap-common-setup.log
+tap-plan-errors.log: tap-setup.sh tap-common-setup.log
+tap-plan-middle.log: tap-setup.sh tap-common-setup.log
+tap-plan-whitespace.log: tap-setup.sh tap-common-setup.log
+tap-plan-leading-zero.log: tap-setup.sh tap-common-setup.log
+tap-plan-malformed.log: tap-setup.sh tap-common-setup.log
+tap-missing-plan-and-bad-exit.log: tap-setup.sh tap-common-setup.log
+tap-planskip.log: tap-setup.sh tap-common-setup.log
+tap-planskip-late.log: tap-setup.sh tap-common-setup.log
+tap-planskip-and-logging.log: tap-setup.sh tap-common-setup.log
+tap-planskip-unplanned.log: tap-setup.sh tap-common-setup.log
+tap-planskip-unplanned-corner.log: tap-setup.sh tap-common-setup.log
+tap-planskip-case-insensitive.log: tap-setup.sh tap-common-setup.log
+tap-planskip-whitespace.log: tap-setup.sh tap-common-setup.log
+tap-planskip-badexit.log: tap-setup.sh tap-common-setup.log
+tap-planskip-bailout.log: tap-setup.sh tap-common-setup.log
+tap-planskip-later-errors.log: tap-setup.sh tap-common-setup.log
+tap-realtime.log: tap-setup.sh tap-common-setup.log
+tap-test-number-0.log: tap-setup.sh tap-common-setup.log
+tap-recheck-logs.log: tap-setup.sh tap-common-setup.log
+tap-result-comment.log: tap-setup.sh tap-common-setup.log
+tap-todo-skip-together.log: tap-setup.sh tap-common-setup.log
+tap-todo-skip-whitespace.log: tap-setup.sh tap-common-setup.log
+tap-todo-skip.log: tap-setup.sh tap-common-setup.log
+tap-unplanned.log: tap-setup.sh tap-common-setup.log
+tap-whitespace-normalization.log: tap-setup.sh tap-common-setup.log
+tap-with-and-without-number.log: tap-setup.sh tap-common-setup.log
+tap-xfail-tests.log: tap-setup.sh tap-common-setup.log
+testsuite-summary-count-many.log: extract-testsuite-summary
+testsuite-summary-color.log: testsuite-summary-checks.sh
+testsuite-summary-count.log: testsuite-summary-checks.sh
+testsuite-summary-count-many.log: trivial-test-driver
+test-driver-custom-multitest.log: trivial-test-driver
+test-driver-custom-multitest-recheck.log: trivial-test-driver
+test-driver-custom-multitest-recheck2.log: trivial-test-driver
+test-driver-custom-html.log: trivial-test-driver
ar-lib-w.log: ar-lib.test
+ar-lib-w.log: ar-lib.log
compile-w.log: compile.test
+compile-w.log: compile.log
compile2-w.log: compile2.test
+compile2-w.log: compile2.log
compile3-w.log: compile3.test
+compile3-w.log: compile3.log
compile4-w.log: compile4.test
+compile4-w.log: compile4.log
compile5-w.log: compile5.test
+compile5-w.log: compile5.log
compile6-w.log: compile6.test
+compile6-w.log: compile6.log
instsh2-w.log: instsh2.test
+instsh2-w.log: instsh2.log
instsh3-w.log: instsh3.test
+instsh3-w.log: instsh3.log
mdate5-w.log: mdate5.test
+mdate5-w.log: mdate5.log
mdate6-w.log: mdate6.test
+mdate6-w.log: mdate6.log
missing-w.log: missing.test
+missing-w.log: missing.log
missing2-w.log: missing2.test
+missing2-w.log: missing2.log
missing3-w.log: missing3.test
+missing3-w.log: missing3.log
missing5-w.log: missing5.test
+missing5-w.log: missing5.log
mkinst3-w.log: mkinst3.test
+mkinst3-w.log: mkinst3.log
+check-w.log: check.test
+check-w.log: check.log
+check2-w.log: check2.test
+check2-w.log: check2.log
+check3-w.log: check3.test
+check3-w.log: check3.log
+check4-w.log: check4.test
+check4-w.log: check4.log
+check5-w.log: check5.test
+check5-w.log: check5.log
+check6-w.log: check6.test
+check6-w.log: check6.log
+check7-w.log: check7.test
+check7-w.log: check7.log
+check8-w.log: check8.test
+check8-w.log: check8.log
+check11-w.log: check11.test
+check11-w.log: check11.log
+check12-w.log: check12.test
+check12-w.log: check12.log
+check-subst-w.log: check-subst.test
+check-subst-w.log: check-subst.log
+check-subst-prog-w.log: check-subst-prog.test
+check-subst-prog-w.log: check-subst-prog.log
+check-exported-srcdir-w.log: check-exported-srcdir.test
+check-exported-srcdir-w.log: check-exported-srcdir.log
+check-fd-redirect-w.log: check-fd-redirect.test
+check-fd-redirect-w.log: check-fd-redirect.log
+check-tests-in-builddir-w.log: check-tests-in-builddir.test
+check-tests-in-builddir-w.log: check-tests-in-builddir.log
+check-concurrency-bug9245-w.log: check-concurrency-bug9245.test
+check-concurrency-bug9245-w.log: check-concurrency-bug9245.log
+color-w.log: color.test
+color-w.log: color.log
+color2-w.log: color2.test
+color2-w.log: color2.log
+comment9-w.log: comment9.test
+comment9-w.log: comment9.log
+dejagnu-w.log: dejagnu.test
+dejagnu-w.log: dejagnu.log
+exeext4-w.log: exeext4.test
+exeext4-w.log: exeext4.log
+maken3-w.log: maken3.test
+maken3-w.log: maken3.log
+maken4-w.log: maken4.test
+maken4-w.log: maken4.log
+tests-environment-w.log: tests-environment.test
+tests-environment-w.log: tests-environment.log
+posixsubst-tests-w.log: posixsubst-tests.test
+posixsubst-tests-w.log: posixsubst-tests.log
tap-ambiguous-directive-w.log: tap-ambiguous-directive.test
+tap-ambiguous-directive-w.log: tap-ambiguous-directive.log
tap-autonumber-w.log: tap-autonumber.test
-tap-bad-prog-w.log: tap-bad-prog.tap
+tap-autonumber-w.log: tap-autonumber.log
+tap-bailout-w.log: tap-bailout.test
+tap-bailout-w.log: tap-bailout.log
tap-bailout-and-logging-w.log: tap-bailout-and-logging.test
+tap-bailout-and-logging-w.log: tap-bailout-and-logging.log
tap-bailout-suppress-badexit-w.log: tap-bailout-suppress-badexit.test
+tap-bailout-suppress-badexit-w.log: tap-bailout-suppress-badexit.log
tap-bailout-suppress-later-diagnostic-w.log:
tap-bailout-suppress-later-diagnostic.test
+tap-bailout-suppress-later-diagnostic-w.log:
tap-bailout-suppress-later-diagnostic.log
tap-bailout-suppress-later-errors-w.log: tap-bailout-suppress-later-errors.test
-tap-bailout-w.log: tap-bailout.test
-tap-basic-w.log: tap-basic.test
+tap-bailout-suppress-later-errors-w.log: tap-bailout-suppress-later-errors.log
tap-color-w.log: tap-color.test
+tap-color-w.log: tap-color.log
tap-deps-w.log: tap-deps.test
-tap-diagnostic-custom-w.log: tap-diagnostic-custom.test
+tap-deps-w.log: tap-deps.log
tap-diagnostic-w.log: tap-diagnostic.test
-tap-doc-w.log: tap-doc.test
-tap-driver-stderr-w.log: tap-driver-stderr.test
+tap-diagnostic-w.log: tap-diagnostic.log
tap-empty-diagnostic-w.log: tap-empty-diagnostic.test
+tap-empty-diagnostic-w.log: tap-empty-diagnostic.log
tap-empty-w.log: tap-empty.test
-tap-escape-directive-2-w.log: tap-escape-directive-2.test
+tap-empty-w.log: tap-empty.log
tap-escape-directive-w.log: tap-escape-directive.test
+tap-escape-directive-w.log: tap-escape-directive.log
+tap-escape-directive-2-w.log: tap-escape-directive-2.test
+tap-escape-directive-2-w.log: tap-escape-directive-2.log
tap-exit-w.log: tap-exit.test
+tap-exit-w.log: tap-exit.log
+tap-signal-w.log: tap-signal.tap
+tap-signal-w.log: tap-signal.log
tap-fancy-w.log: tap-fancy.test
+tap-fancy-w.log: tap-fancy.log
tap-fancy2-w.log: tap-fancy2.test
+tap-fancy2-w.log: tap-fancy2.log
tap-global-log-w.log: tap-global-log.test
+tap-global-log-w.log: tap-global-log.log
tap-global-result-w.log: tap-global-result.test
+tap-global-result-w.log: tap-global-result.log
tap-html-w.log: tap-html.test
+tap-html-w.log: tap-html.log
tap-log-w.log: tap-log.test
-tap-merge-stdout-stderr-w.log: tap-merge-stdout-stderr.test
-tap-missing-plan-and-bad-exit-w.log: tap-missing-plan-and-bad-exit.test
-tap-more-w.log: tap-more.test
-tap-more2-w.log: tap-more2.test
-tap-msg0-bailout-w.log: tap-msg0-bailout.test
+tap-log-w.log: tap-log.log
+tap-msg0-result-w.log: tap-msg0-result.test
+tap-msg0-result-w.log: tap-msg0-result.log
tap-msg0-directive-w.log: tap-msg0-directive.test
-tap-msg0-misc-w.log: tap-msg0-misc.test
+tap-msg0-directive-w.log: tap-msg0-directive.log
tap-msg0-planskip-w.log: tap-msg0-planskip.test
-tap-msg0-result-w.log: tap-msg0-result.test
-tap-negative-numbers-w.log: tap-negative-numbers.test
-tap-no-disable-hard-error-w.log: tap-no-disable-hard-error.test
+tap-msg0-planskip-w.log: tap-msg0-planskip.log
+tap-msg0-bailout-w.log: tap-msg0-bailout.test
+tap-msg0-bailout-w.log: tap-msg0-bailout.log
+tap-msg0-misc-w.log: tap-msg0-misc.test
+tap-msg0-misc-w.log: tap-msg0-misc.log
+tap-merge-stdout-stderr-w.log: tap-merge-stdout-stderr.test
+tap-merge-stdout-stderr-w.log: tap-merge-stdout-stderr.log
tap-no-merge-stdout-stderr-w.log: tap-no-merge-stdout-stderr.test
-tap-no-spurious-numbers-w.log: tap-no-spurious-numbers.test
+tap-no-merge-stdout-stderr-w.log: tap-no-merge-stdout-stderr.log
+tap-no-disable-hard-error-w.log: tap-no-disable-hard-error.test
+tap-no-disable-hard-error-w.log: tap-no-disable-hard-error.log
tap-no-spurious-summary-w.log: tap-no-spurious-summary.test
+tap-no-spurious-summary-w.log: tap-no-spurious-summary.log
+tap-no-spurious-numbers-w.log: tap-no-spurious-numbers.test
+tap-no-spurious-numbers-w.log: tap-no-spurious-numbers.log
tap-no-spurious-w.log: tap-no-spurious.test
+tap-no-spurious-w.log: tap-no-spurious.log
tap-not-ok-skip-w.log: tap-not-ok-skip.test
+tap-not-ok-skip-w.log: tap-not-ok-skip.log
tap-number-wordboundary-w.log: tap-number-wordboundary.test
-tap-numbers-leading-zero-w.log: tap-numbers-leading-zero.test
+tap-number-wordboundary-w.log: tap-number-wordboundary.log
tap-numeric-description-w.log: tap-numeric-description.test
+tap-numeric-description-w.log: tap-numeric-description.log
+tap-negative-numbers-w.log: tap-negative-numbers.test
+tap-negative-numbers-w.log: tap-negative-numbers.log
+tap-numbers-leading-zero-w.log: tap-numbers-leading-zero.test
+tap-numbers-leading-zero-w.log: tap-numbers-leading-zero.log
tap-out-of-order-w.log: tap-out-of-order.test
-tap-passthrough-exit-w.log: tap-passthrough-exit.test
+tap-out-of-order-w.log: tap-out-of-order.log
tap-passthrough-w.log: tap-passthrough.test
+tap-passthrough-w.log: tap-passthrough.log
+tap-passthrough-exit-w.log: tap-passthrough-exit.test
+tap-passthrough-exit-w.log: tap-passthrough-exit.log
+tap-plan-w.log: tap-plan.test
+tap-plan-w.log: tap-plan.log
tap-plan-corner-w.log: tap-plan-corner.test
+tap-plan-corner-w.log: tap-plan-corner.log
tap-plan-errors-w.log: tap-plan-errors.test
-tap-plan-leading-zero-w.log: tap-plan-leading-zero.test
-tap-plan-malformed-w.log: tap-plan-malformed.test
+tap-plan-errors-w.log: tap-plan-errors.log
tap-plan-middle-w.log: tap-plan-middle.test
+tap-plan-middle-w.log: tap-plan-middle.log
tap-plan-whitespace-w.log: tap-plan-whitespace.test
-tap-plan-w.log: tap-plan.test
+tap-plan-whitespace-w.log: tap-plan-whitespace.log
+tap-plan-leading-zero-w.log: tap-plan-leading-zero.test
+tap-plan-leading-zero-w.log: tap-plan-leading-zero.log
+tap-plan-malformed-w.log: tap-plan-malformed.test
+tap-plan-malformed-w.log: tap-plan-malformed.log
+tap-missing-plan-and-bad-exit-w.log: tap-missing-plan-and-bad-exit.test
+tap-missing-plan-and-bad-exit-w.log: tap-missing-plan-and-bad-exit.log
+tap-planskip-w.log: tap-planskip.test
+tap-planskip-w.log: tap-planskip.log
+tap-planskip-late-w.log: tap-planskip-late.test
+tap-planskip-late-w.log: tap-planskip-late.log
tap-planskip-and-logging-w.log: tap-planskip-and-logging.test
+tap-planskip-and-logging-w.log: tap-planskip-and-logging.log
+tap-planskip-unplanned-w.log: tap-planskip-unplanned.test
+tap-planskip-unplanned-w.log: tap-planskip-unplanned.log
+tap-planskip-unplanned-corner-w.log: tap-planskip-unplanned-corner.test
+tap-planskip-unplanned-corner-w.log: tap-planskip-unplanned-corner.log
+tap-planskip-case-insensitive-w.log: tap-planskip-case-insensitive.test
+tap-planskip-case-insensitive-w.log: tap-planskip-case-insensitive.log
+tap-planskip-whitespace-w.log: tap-planskip-whitespace.test
+tap-planskip-whitespace-w.log: tap-planskip-whitespace.log
tap-planskip-badexit-w.log: tap-planskip-badexit.test
+tap-planskip-badexit-w.log: tap-planskip-badexit.log
tap-planskip-bailout-w.log: tap-planskip-bailout.test
-tap-planskip-case-insensitive-w.log: tap-planskip-case-insensitive.test
-tap-planskip-late-w.log: tap-planskip-late.test
+tap-planskip-bailout-w.log: tap-planskip-bailout.log
tap-planskip-later-errors-w.log: tap-planskip-later-errors.test
-tap-planskip-unplanned-corner-w.log: tap-planskip-unplanned-corner.test
-tap-planskip-unplanned-w.log: tap-planskip-unplanned.test
-tap-planskip-whitespace-w.log: tap-planskip-whitespace.test
-tap-planskip-w.log: tap-planskip.test
+tap-planskip-later-errors-w.log: tap-planskip-later-errors.log
tap-realtime-w.log: tap-realtime.test
+tap-realtime-w.log: tap-realtime.log
+tap-test-number-0-w.log: tap-test-number-0.test
+tap-test-number-0-w.log: tap-test-number-0.log
tap-recheck-logs-w.log: tap-recheck-logs.test
-tap-recheck-w.log: tap-recheck.test
+tap-recheck-logs-w.log: tap-recheck-logs.log
tap-result-comment-w.log: tap-result-comment.test
-tap-signal-w.log: tap-signal.tap
-tap-test-number-0-w.log: tap-test-number-0.test
+tap-result-comment-w.log: tap-result-comment.log
tap-todo-skip-together-w.log: tap-todo-skip-together.test
+tap-todo-skip-together-w.log: tap-todo-skip-together.log
tap-todo-skip-whitespace-w.log: tap-todo-skip-whitespace.test
+tap-todo-skip-whitespace-w.log: tap-todo-skip-whitespace.log
tap-todo-skip-w.log: tap-todo-skip.test
+tap-todo-skip-w.log: tap-todo-skip.log
tap-unplanned-w.log: tap-unplanned.test
+tap-unplanned-w.log: tap-unplanned.log
tap-whitespace-normalization-w.log: tap-whitespace-normalization.test
+tap-whitespace-normalization-w.log: tap-whitespace-normalization.log
tap-with-and-without-number-w.log: tap-with-and-without-number.test
+tap-with-and-without-number-w.log: tap-with-and-without-number.log
tap-xfail-tests-w.log: tap-xfail-tests.test
+tap-xfail-tests-w.log: tap-xfail-tests.log
+tap-bad-prog-w.log: tap-bad-prog.tap
+tap-bad-prog-w.log: tap-bad-prog.log
+tap-basic-w.log: tap-basic.test
+tap-basic-w.log: tap-basic.log
+tap-diagnostic-custom-w.log: tap-diagnostic-custom.test
+tap-diagnostic-custom-w.log: tap-diagnostic-custom.log
+tap-driver-stderr-w.log: tap-driver-stderr.test
+tap-driver-stderr-w.log: tap-driver-stderr.log
+tap-doc-w.log: tap-doc.test
+tap-doc-w.log: tap-doc.log
+tap-more-w.log: tap-more.test
+tap-more-w.log: tap-more.log
+tap-more2-w.log: tap-more2.test
+tap-more2-w.log: tap-more2.log
+tap-recheck-w.log: tap-recheck.test
+tap-recheck-w.log: tap-recheck.log
-$(srcdir)/wrap-tests.am: gen-wrap-tests list-of-tests.mk Makefile.am
- $(AM_V_GEN)($(am__cd) $(srcdir) \
- && $(SHELL) ./gen-wrap-tests) > wrap-tests.tmp
- $(AM_V_at)chmod a-w wrap-tests.tmp && mv -f wrap-tests.tmp $@
+$(srcdir)/tests-deps.am:
+ $(AM_V_at)rm -f tests-deps.tmp $@
+ $(AM_V_GEN)$(PERL) $(srcdir)/gen-tests-deps --srcdir $(srcdir) \
+ > tests-deps.tmp
+ $(AM_V_at)chmod a-w tests-deps.tmp && mv -f tests-deps.tmp $@
-# These tests are not expected to exist on filesystem, so we need this
-# declaration to avoid spurious failures.
-$(wrap_TESTS):
-# All the "wrapper" tests work by sourcing the script `wrap-tests.sh'.
-$(wrap_LOGS): wrap-tests.sh
+$(generated_TESTS) $(srcdir)/tests-deps.am: \
+ gen-tests-deps list-of-tests.mk Makefile.am $(handwritten_TESTS)
+
+# Static dependencies valid for each test case.
+$(TEST_LOGS): defs defs-static aclocal-$(APIVERSION) automake-$(APIVERSION)
+# FIXME: this should be made more granular once we have a cleaner
+# subdivision of the tests.
+$(TEST_LOGS): plain-functions.sh tap-functions.sh
# If two test scripts have the same basename, they will end up sharing
# the same log file, leading to all sort of undefined and undesired
@@ -2210,100 +2273,6 @@ clean-local: clean-maintcheck-testslist-tmp
clean-maintcheck-testslist-tmp:
rm -f $(am__tmk) $(am__tfs) $(am__tdf)
-# Automatically computed dependencies for tests.
-
-$(srcdir)/tests-deps.am: gen-tests-deps list-of-tests.mk Makefile.am
- $(AM_V_at)rm -f tests-deps.tmp $@
- $(AM_V_GEN)$(PERL) $(srcdir)/gen-tests-deps --srcdir $(srcdir) \
- > tests-deps.tmp
- $(AM_V_at)chmod a-w tests-deps.tmp && mv -f tests-deps.tmp $@
-tap-summary.log: tap-summary-aux.sh
-tap-summary-color.log: tap-summary-aux.sh
-tap-ambiguous-directive.log: tap-setup.sh tap-common-setup.log
-tap-autonumber.log: tap-setup.sh tap-common-setup.log
-tap-bailout.log: tap-setup.sh tap-common-setup.log
-tap-bailout-and-logging.log: tap-setup.sh tap-common-setup.log
-tap-bailout-suppress-badexit.log: tap-setup.sh tap-common-setup.log
-tap-bailout-suppress-later-diagnostic.log: tap-setup.sh tap-common-setup.log
-tap-bailout-suppress-later-errors.log: tap-setup.sh tap-common-setup.log
-tap-color.log: tap-setup.sh tap-common-setup.log
-tap-deps.log: tap-setup.sh tap-common-setup.log
-tap-diagnostic.log: tap-setup.sh tap-common-setup.log
-tap-empty-diagnostic.log: tap-setup.sh tap-common-setup.log
-tap-empty.log: tap-setup.sh tap-common-setup.log
-tap-escape-directive.log: tap-setup.sh tap-common-setup.log
-tap-escape-directive-2.log: tap-setup.sh tap-common-setup.log
-tap-exit.log: tap-setup.sh tap-common-setup.log
-tap-signal.log: tap-setup.sh tap-common-setup.log
-tap-fancy.log: tap-setup.sh tap-common-setup.log
-tap-fancy2.log: tap-setup.sh tap-common-setup.log
-tap-global-log.log: tap-setup.sh tap-common-setup.log
-tap-global-result.log: tap-setup.sh tap-common-setup.log
-tap-html.log: tap-setup.sh tap-common-setup.log
-tap-log.log: tap-setup.sh tap-common-setup.log
-tap-msg0-result.log: tap-setup.sh tap-common-setup.log
-tap-msg0-directive.log: tap-setup.sh tap-common-setup.log
-tap-msg0-planskip.log: tap-setup.sh tap-common-setup.log
-tap-msg0-bailout.log: tap-setup.sh tap-common-setup.log
-tap-msg0-misc.log: tap-setup.sh tap-common-setup.log
-tap-merge-stdout-stderr.log: tap-setup.sh tap-common-setup.log
-tap-no-merge-stdout-stderr.log: tap-setup.sh tap-common-setup.log
-tap-no-disable-hard-error.log: tap-setup.sh tap-common-setup.log
-tap-no-spurious-summary.log: tap-setup.sh tap-common-setup.log
-tap-no-spurious-numbers.log: tap-setup.sh tap-common-setup.log
-tap-no-spurious.log: tap-setup.sh tap-common-setup.log
-tap-not-ok-skip.log: tap-setup.sh tap-common-setup.log
-tap-number-wordboundary.log: tap-setup.sh tap-common-setup.log
-tap-numeric-description.log: tap-setup.sh tap-common-setup.log
-tap-negative-numbers.log: tap-setup.sh tap-common-setup.log
-tap-numbers-leading-zero.log: tap-setup.sh tap-common-setup.log
-tap-out-of-order.log: tap-setup.sh tap-common-setup.log
-tap-passthrough.log: tap-setup.sh tap-common-setup.log
-tap-passthrough-exit.log: tap-setup.sh tap-common-setup.log
-tap-plan.log: tap-setup.sh tap-common-setup.log
-tap-plan-corner.log: tap-setup.sh tap-common-setup.log
-tap-plan-errors.log: tap-setup.sh tap-common-setup.log
-tap-plan-middle.log: tap-setup.sh tap-common-setup.log
-tap-plan-whitespace.log: tap-setup.sh tap-common-setup.log
-tap-plan-leading-zero.log: tap-setup.sh tap-common-setup.log
-tap-plan-malformed.log: tap-setup.sh tap-common-setup.log
-tap-missing-plan-and-bad-exit.log: tap-setup.sh tap-common-setup.log
-tap-planskip.log: tap-setup.sh tap-common-setup.log
-tap-planskip-late.log: tap-setup.sh tap-common-setup.log
-tap-planskip-and-logging.log: tap-setup.sh tap-common-setup.log
-tap-planskip-unplanned.log: tap-setup.sh tap-common-setup.log
-tap-planskip-unplanned-corner.log: tap-setup.sh tap-common-setup.log
-tap-planskip-case-insensitive.log: tap-setup.sh tap-common-setup.log
-tap-planskip-whitespace.log: tap-setup.sh tap-common-setup.log
-tap-planskip-badexit.log: tap-setup.sh tap-common-setup.log
-tap-planskip-bailout.log: tap-setup.sh tap-common-setup.log
-tap-planskip-later-errors.log: tap-setup.sh tap-common-setup.log
-tap-realtime.log: tap-setup.sh tap-common-setup.log
-tap-test-number-0.log: tap-setup.sh tap-common-setup.log
-tap-recheck-logs.log: tap-setup.sh tap-common-setup.log
-tap-result-comment.log: tap-setup.sh tap-common-setup.log
-tap-todo-skip-together.log: tap-setup.sh tap-common-setup.log
-tap-todo-skip-whitespace.log: tap-setup.sh tap-common-setup.log
-tap-todo-skip.log: tap-setup.sh tap-common-setup.log
-tap-unplanned.log: tap-setup.sh tap-common-setup.log
-tap-whitespace-normalization.log: tap-setup.sh tap-common-setup.log
-tap-with-and-without-number.log: tap-setup.sh tap-common-setup.log
-tap-xfail-tests.log: tap-setup.sh tap-common-setup.log
-testsuite-summary-count-many.log: extract-testsuite-summary
-testsuite-summary-color.log: testsuite-summary-checks.sh
-testsuite-summary-count.log: testsuite-summary-checks.sh
-testsuite-summary-count-many.log: trivial-test-driver
-test-driver-custom-multitest.log: trivial-test-driver
-test-driver-custom-multitest-recheck.log: trivial-test-driver
-test-driver-custom-multitest-recheck2.log: trivial-test-driver
-test-driver-custom-html.log: trivial-test-driver
-
-# Static dependencies valid for each test case.
-$(TEST_LOGS): defs defs-static aclocal-$(APIVERSION) automake-$(APIVERSION)
-# FIXME: this should be made more granular once we have a cleaner
-# subdivision of the tests.
-$(TEST_LOGS): plain-functions.sh tap-functions.sh
-
clean-local: clean-local-check
.PHONY: clean-local-check
clean-local-check:
diff --git a/tests/README b/tests/README
index fb12380..e917d87 100644
--- a/tests/README
+++ b/tests/README
@@ -191,12 +191,12 @@ Do
Some tests in the Automake testsuite are auto-generated; those tests
might have custom extensions, but their basename (that is, with such
- extension stripped) is expected to end with the "-w" string. For
- example, the name of an auto-generated test can be `color-w.ptest'
- or `ar-lib-w.shtst'. Please don't name hand-written tests in a way
- that could cause them to be confused with auto-generated tests; for
- example, `u-v-w.test' or `option-w.tap' are *not* valid name for
- hand-written tests.
+ extension stripped) is expected to end with "-w" string, optionally
+ followed by decimal digits. For example, the name of a valid
+ auto-generated test can be `color-w.test' or `tap-signal-w09.tap'.
+ Please don't name hand-written tests in a way that could cause them
+ to be confused with auto-generated tests; for example, `u-v-w.test'
+ or `option-w0.tap' are *not* valid name for hand-written tests.
./defs brings in some commonly required files, and sets a skeleton
configure.in. If possible, append to this file. In some cases
diff --git a/tests/gen-tests-deps b/tests/gen-tests-deps
index af13842..56e9227 100755
--- a/tests/gen-tests-deps
+++ b/tests/gen-tests-deps
@@ -1,5 +1,7 @@
-#! /usr/bin/perl
-# Generate tests-deps.am.
+#! /usr/bin/env perl
+# Automatically compute some dependencies for the hand-written tests
+# of the Automake testsuite. Also, automatically generate some more
+# tests from them (for particular cases/setups only).
# Copyright (C) 2011 Free Software Foundation, Inc.
@@ -16,6 +18,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#--------------------------------------------------------------------------
+
use warnings FATAL => "all";
use strict;
use File::Basename ();
@@ -27,9 +31,41 @@ my $srcdir = ".";
#--------------------------------------------------------------------------
+sub unindent ($)
+{
+ my $text = shift;
+ $text =~ /^(\s*)/;
+ my $indentation = $1;
+ $text =~ s/^$indentation//gm;
+ return $text;
+}
+
+sub atomic_write ($$;$)
+{
+ my ($outfile, $func) = (shift, shift);
+ my $perms = @_ > 0 ? shift : 0777;
+ my $tmpfile = "$outfile-t";
+ foreach my $f ($outfile, $tmpfile)
+ {
+ unlink $f or die "$me: cannot unlink `$f': $!\n"
+ if -e $f;
+ }
+ open (my $fh, ">$tmpfile")
+ or die "$me: can't write to `$tmpfile': $!\n";
+ $func->($fh);
+ close $fh
+ or die "$me: closing `$tmpfile': $!\n";
+ chmod ($perms & ~umask, $tmpfile)
+ or die "$me: cannot change perms for `$tmpfile': $!\n";
+ rename ($tmpfile, $outfile)
+ or die "$me: renaming `$tmpfile' -> `$outfile: $!\n'";
+}
+
sub line_match ($$)
{
my ($re, $file) = (shift, shift);
+ # Try both curdir and srcdir, with curdir first, to play nice
+ # with VPATH builds.
open (FH, "<$file") or open (FH, "<$srcdir/$file")
or die "$me: cannot open file `$file': $!\n";
my $ret = 0;
@@ -45,6 +81,28 @@ sub line_match ($$)
return $ret;
}
+sub write_wrapper_script ($$$)
+{
+ my ($file_handle, $wrapped_test, $shell_setup_code, $creator_name) = @_;
+ print $file_handle unindent <<EOF;
+ #! /bin/sh
+ # This file has been automatically generated. DO NOT EDIT BY HAND!
+ # FIXME: creative quoting to please maintainer-check.
+ . ./defs-static || exit '99';
+ $shell_setup_code
+ # In the spirit of VPATH, we prefer a test in the build tree
+ # over one in the source tree.
+ for dir in . "\$testsrcdir"; do
+ if test -f "\$dir/$wrapped_test"; then
+ echo "\$0: will source \$dir/$wrapped_test"
+ . "\$dir/$wrapped_test"; exit \$?
+ fi
+ done
+ echo "\$0: cannot find wrapped test \\`$wrapped_test'" >&2
+ exit 99
+EOF
+}
+
sub get_list_of_tests ()
{
my $make = defined $ENV{MAKE} ? $ENV{MAKE} : "make";
@@ -56,6 +114,7 @@ sub get_list_of_tests ()
my $ok = 1;
foreach my $test (@tests_list)
{
+ # Respect VPATH builds.
next if -f $test || -f "$srcdir/$test";
warn "$me: test `$test' not found\n";
$ok = 0;
@@ -107,11 +166,96 @@ my %deps_extractor =
#--------------------------------------------------------------------------
+my %test_generators =
+ (
+ #
+ # For each test script in the Automake testsuite that itself tests
+ # features of the TESTS automake interface, define a sibling test
+ # that does likewise, but with the option `parallel-tests' enabled.
+ #
+ # A test is considered a candidate for sibling-generation if any
+ # Makefile.am generated by it define the TESTS variable.
+ #
+ # Individual tests can prevent the creation of such a sibling by
+ # explicitly setting the `$parallel_tests' variable to either "yes"
+ # or "no". The rationale for this is that if the variable is set to
+ # "yes", the test already uses the `parallel-tests' option, so that
+ # a sibling would be just a duplicate; while if the variable is set
+ # to "no", the test doesn't support, or is not meant to run with, the
+ # `parallel-tests' option, and forcing it to do so in the sibling
+ # would likely cause a spurious failure.
+ #
+ parallel_testsuite_harness =>
+ {
+ line_matcher =>
+ qr/(?:^|\s)TESTS\s*=/,
+ line_rejecter =>
+ qr/(?:^[^#]*\bparallel-tests\b)|\bparallel_tests=/,
+ shell_setup_code =>
+ 'parallel_tests=yes'
+ },
+ #
+ # For each test script in the Automake testsuite that tests features
+ # of one or more automake-provided shell script from the `lib/'
+ # subdirectory by running those scripts directly (i.e., not thought
+ # make calls and automake-generated makefiles), define a sibling test
+ # that does likewise, but running the said script with the configure
+ # time $SHELL instead of the default system shell /bin/sh.
+ #
+ # A test is considered a candidate for sibling-generation if it calls
+ # the `get_shell_script' function anywhere.
+ #
+ # Individual tests can prevent the creation of such a sibling by
+ # explicitly setting the `$test_prefer_config_shell' variable to
+ # either "yes" or "no".
+ # The rationale for this is that if the variable is set to "yes",
+ # the test already uses $SHELL, so that a sibling would be just a
+ # duplicate; while if the variable is set to "no", the test doesn't
+ # support, or is not meant to use, $SHELL to run the script under
+ # testing, and forcing it to do so in the sibling would likely
+ # cause a spurious failure.
+ #
+ prefer_config_shell =>
+ {
+ line_matcher =>
+ qr/(^|\s)get_shell_script\s/,
+ line_rejecter =>
+ qr/\btest_prefer_config_shell=/,
+ shell_setup_code =>
+ 'test_prefer_config_shell=yes',
+ },
+ #
+ # Tests on tap support should be run with both the perl and awk
+ # implementations of the TAP driver (they run with the awk one
+ # by default).
+ #
+ perl_tap_driver =>
+ {
+ line_matcher =>
+ qr<(?:\bfetch_tap_driver\b|[\s/]tap-setup\.sh\b)>,
+ line_rejecter =>
+ qr/\bam_tap_implementation=/,
+ shell_setup_code =>
+ 'am_tap_implementation=perl',
+ },
+ );
+
+#--------------------------------------------------------------------------
+
parse_options @ARGV;
my @tests = get_list_of_tests;
-print "## Generated by $me. DO NOT EDIT BY HAND!\n";
+print "## -*- Makefile -*-\n";
+print "## Generated by $me. DO NOT EDIT BY HAND!\n\n";
+
+print <<EOF;
+
+## ---------------------------------------------------- ##
+## Autogenerated dependencies for hand-written tests. ##
+## ---------------------------------------------------- ##
+
+EOF
while (my ($k, $x) = each %deps_extractor)
{
@@ -119,9 +263,53 @@ while (my ($k, $x) = each %deps_extractor)
my $nodist_prereqs = $x->{nodist_prereqs} || "";
my @logs = grep { line_match $x->{line_matcher}, $_ } @tests;
map { s/\.[^.]*$//; s/$/\.log/; } @logs;
- print "\n## Added by deps-extracting key `$k'.\n";
+ print "## Added by deps-extracting key `$k'.\n";
print "EXTRA_DIST += $dist_prereqs\n";
map { print "$_: $dist_prereqs $nodist_prereqs\n" } @logs;
+ print "\n";
+ }
+
+print <<EOF;
+
+## --------------------------------------------- ##
+## Autogenerated tests and their dependencies. ##
+## --------------------------------------------- ##
+
+generated_TESTS =
+
+EOF
+
+# FIXME: the following is not really right, since cannot compose wrapping
+# of tests matching more than one condition. Still, there should be no
+# such test at the moment, so the limitation is (temporarily) acceptable.
+while (my ($k, $g) = each %test_generators)
+ {
+ my @wrapped_tests = grep {
+ line_match ($g->{line_matcher}, $_)
+ && !line_match ($g->{line_rejecter}, $_)
+ } @tests;
+ foreach my $wrapped_test (@wrapped_tests)
+ {
+ (my $base = $wrapped_test) =~ s/\.([^.]*)$//;
+ my $suf = $1 or die "$me: test `$wrapped_test' lacks a suffix\n";
+ # Create wrapper test.
+ atomic_write "$base-w.$suf",
+ sub { write_wrapper_script $_[0], $wrapped_test,
+ $g->{shell_setup_code} },
+ 0555;
+ # Update generated makefile fragment to account for it.
+ print "generated_TESTS += $base-w.$suf\n";
+ # The generated test works by sourcing the original test, so that
+ # it has to be re-run every time that changes ...
+ print "$base-w.log: $wrapped_test\n";
+ # ... but also every time the prerequisites of the wrapped test
+ # changes. The simpler (although suboptimal) way to do so is to
+ # ensure that the wrapped tests runs before the wrappee one (in
+ # case it needs to be re-run *at all*.
+ # FIXME: we could maybe refactor the script to find a more
+ # granular way to express such implicit dependencies.
+ print "$base-w.log: $base.log\n";
+ }
}
__END__
diff --git a/tests/gen-wrap-tests b/tests/gen-wrap-tests
deleted file mode 100755
index f794fb0..0000000
--- a/tests/gen-wrap-tests
+++ /dev/null
@@ -1,185 +0,0 @@
-#! /bin/sh
-# Generate wrap-tests.am.
-#
-# Copyright (C) 2009, 2010, 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 <http://www.gnu.org/licenses/>.
-
-set -e
-set -u
-
-MAKE=${MAKE-make}
-PERL=${PERL-perl}
-
-tests=`$MAKE -s -f list-of-tests.mk print-list-of-tests` \
- && tests=`echo $tests` && test -n "$tests" \
- || { echo "$0: cannot get list of tests" >&2; exit 1; }
-
-st=0
-for tst in $tests; do
- test -f $tst || { echo "$0: test \`$tst' not found" >&2; st=1; }
-done
-test $st -eq 0 || exit 1
-
-add_wrapper_type () { wrapper_type_list="$wrapper_type_list $*"; }
-wrapper_type_list="" # Avoid interferences from the environment.
-
-#
-# For each test script in the Automake testsuite that itself tests features
-# of the TESTS automake interface, define a sibling test that does likewise,
-# but with the option `parallel-tests' enabled.
-#
-# A test is considered a candidate for sibling-generation if any
-# Makefile.am generated by it define the TESTS variable.
-#
-# Individual tests can prevent the creation of such a sibling by explicitly
-# setting the `$parallel_tests' variable to either "yes" or "no". The
-# rationale for this is that if the variable is set to "yes", the test
-# already uses the `parallel-tests' option, so that a sibling would be just
-# a duplicate; while if the variable is set to "no", the test doesn't
-# support, or is not meant to run with, the `parallel-tests' option, and
-# forcing it to do so in the sibling would likely cause a spurious failure.
-#
-get_list_for_pt ()
-{
- { grep -l '^TESTS *=' $*; grep -l ' TESTS *=' $*; } \
- | LC_ALL=C sort -u \
- | while read tst; do
- grep '^[^#]*parallel-tests' $tst >/dev/null && continue
- grep "parallel_tests=" $tst >/dev/null && continue
- echo $tst
- done
-}
-defines_for_pt='--define parallel_tests "yes"'
-add_wrapper_type "pt"
-
-#
-# For each test script in the Automake testsuite that tests features of
-# one or more automake-provided shell script from the `lib/' subdirectory
-# by running those scripts directly (i.e., not thought make calls and
-# automake-generated makefiles), define a sibling test that does likewise,
-# but running the said script with the configure-time $SHELL instead of
-# the default system shell /bin/sh.
-#
-# A test is considered a candidate for sibling-generation if it calls the
-# `get_shell_script' function anywhere.
-#
-# Individual tests can prevent the creation of such a sibling by explicitly
-# setting the `$test_prefer_config_shell' variable to either "yes" or "no".
-# The rationale for this is that if the variable is set to "yes", the test
-# already uses $SHELL, so that a sibling would be just a duplicate; while
-# if the variable is set to "no", the test doesn't support, or is not meant
-# to use, $SHELL to run the script under testing, and forcing it to do so
-# in the sibling would likely cause a spurious failure.
-#
-get_list_for_cs ()
-{
- { grep -l '^get_shell_script ' $*; grep -l ' get_shell_script ' $*; } \
- | LC_ALL=C sort -u \
- | while read tst; do
- grep "test_prefer_config_shell=" $tst >/dev/null || echo $tst
- done
-}
-defines_for_cs='--define test_prefer_config_shell "yes"'
-add_wrapper_type "cs"
-
-# Tests on tap support should be run with both the perl and awk
-# implementations of the TAP driver.
-get_list_for_pltap ()
-{
- {
- grep -l '[ /]tap-setup\.sh' $*;
- grep -l '^fetch_tap_driver$' $*;
- grep -l '^fetch_tap_driver ' $*;
- grep -l ' fetch_tap_driver$' $*;
- grep -l ' fetch_tap_driver ' $*;
- } | LC_ALL=C sort -u \
- | while read tst; do
- grep "am_tap_implementation=" $tst >/dev/null || echo $tst
- done
-}
-defines_for_pltap='--define am_tap_implementation "perl"'
-add_wrapper_type "pltap"
-
-echo '## Generated by gen-wrapped-tests. DO NOT EDIT.'
-echo 'wrap_TESTS ='
-echo 'wrap_LOGS ='
-echo
-
-# NOTE: the following is not really right, since cannot compose wrapping
-# of tests matching more than one condition. Still, there should be no
-# such test at the moment, so the limitation is acceptable. Also, if
-# this invariant stops holding, the check `check-no-repeated-test-name'
-# in Makefile.am will start failing.
-
-for wtype in $wrapper_type_list; do
- eval defines=\${defines_for_$wtype}
- get_list_for_$wtype $tests \
- | wtype="$wtype" defines="$defines" $PERL -w -e '
- use strict;
- use warnings FATAL => "all";
-
- my $wtype = $ENV{"wtype"};
-
- # Suffix for a generated wrapped test, from the suffix of a
- # hand-written test.
- sub gen_suffix ($) { return $_[0] . "_" . $wtype; }
-
- HANDLE_SUFFIX :
- {
- my %have_suffix;
- sub handle_if_new_suffix ($)
- {
- my $suf = shift;
- return
- if $have_suffix{$suf};
- $have_suffix{$suf} = 1;
- print "\n";
- print "TEST_EXTENSIONS += ." . gen_suffix ($suf) . "\n";
- my $uc_orig_suf = uc ($suf);
- my $uc_wrap_suf = uc ($suf) . "_" . uc ($wtype);
- print <<EOF;
-
-${uc_wrap_suf}_LOG_DRIVER = \\
- \$(${uc_orig_suf}_LOG_DRIVER)
-
-AM_${uc_wrap_suf}_LOG_DRIVER_FLAGS = \\
- \$(AM_${uc_orig_suf}_LOG_DRIVER_FLAGS) \\
- \$(${uc_orig_suf}_LOG_DRIVER_FLAGS)
-
-${uc_wrap_suf}_LOG_COMPILER = \\
- \$(LOG_COMPILER) \$(srcdir)/wrap-tests.sh \\
- --type $wtype $ENV{"defines"}
-
-EOF
- }
- }
- while (<>)
- {
- chomp;
- if (/^(.*)\.(test|tap)$/)
- {
- my ($bas, $suf) = ($1, $2);
- handle_if_new_suffix ($suf);
- print "wrap_TESTS += $bas-w." . gen_suffix ($suf) . "\n";
- print "wrap_LOGS += $bas-w.log\n";
- print "$bas-w.log: $bas.$suf\n";
- }
- else
- {
- die "invalid test name `$_`";
- }
- }
- '
-done
diff --git a/tests/wrap-tests.sh b/tests/wrap-tests.sh
deleted file mode 100755
index 2eb65a5..0000000
--- a/tests/wrap-tests.sh
+++ /dev/null
@@ -1,89 +0,0 @@
-#! /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 <http://www.gnu.org/licenses/>.
-
-# Wrap en existing test script of the automake testsuite by pre-defining
-# some influential variables and then sourcing it.
-
-set -e
-
-# Will be properly overridden once the wrapped test script is sourced.
-fatal_ () { echo "$0: $*" >&2; exit 99; }
-
-# Ensure proper definition of $testsrcdir.
-. ./defs-static || fatal_ "couldn't source ./defs-static"
-test x"$testsrcdir" != x || fatal_ "\$testsrcdir is empty or undefined"
-
-echo "args: $*" # For debugging.
-
-typ=
-while test $# -gt 0; do
- case $1 in
- --define)
- test $# -ge 3 || fatal_ "option \`$1': two arguments required"
- echo "define: $2='$3'" # For debugging.
- eval "$2=\$3"
- shift; shift;;
- --type)
- test $# -ge 2 || fatal_ "option \`$1': argument required"
- typ=$2
- shift;;
- --)
- shift; break;;
- *)
- break;;
- -*)
- fatal_ "invalid option: \`$1'";;
- esac
- shift
-done
-
-case $typ in
- "") fatal_ "suffix not specified";;
- *.*) fatal_ "invalid suffix \`$typ' (contains dot)";;
-esac
-
-case $# in
- 0) fatal_ "missing argument";;
- 1) ;;
- *) fatal_ "too many arguments";;
-esac
-
-# We must let the code in ./defs which kind of test script it is
-# dealing with -- TAP or "plain". It won't be able to guess
-# automatically, since it uses `$0' for such a guess, and with
-# the present usage `$0' is always `wrap-tests.sh'.
-case $1 in
- *-w.test_$typ) using_tap=no suf=test;;
- *-w.tap_$typ) using_tap=yes suf=tap;;
- *) fatal_ "invalid argument \`$1'";;
-esac
-
-test_name=`expr x/"$1" : ".*/\\\\(.*\\\\)-w\\\\.[^.][^.]*$"` \
- && test -n "$test_name" \
- || fatal_ "couldn't extract test name"
-shift
-
-# This is required to have the wrapped test use a proper temporary
-# directory to run into.
-me=${test_name}-w
-# In the spirit of VPATH, we prefer a test in the build tree
-# over one in the source tree.
-for dir in . "$testsrcdir"; do
- . "$dir/$test_name.$suf"
- exit $?
-done
-
-fatal_ "cannot find wrapped test \`$test_name'"
--
1.7.2.3