[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-commit] [SCM] GNU Automake branch, testsuite-work, updated. v1
From: |
Stefano Lattarini |
Subject: |
[Automake-commit] [SCM] GNU Automake branch, testsuite-work, updated. v1.11-1309-g03f4a09 |
Date: |
Thu, 08 Sep 2011 15:09:23 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".
http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=03f4a090c023339ed268e5c13c3fab00c37fdb36
The branch, testsuite-work has been updated
via 03f4a090c023339ed268e5c13c3fab00c37fdb36 (commit)
via 375f23dfb51caeddc5f0e95d9cf7e2daf8884334 (commit)
via e4777b8dc1a2c22247c6fc251bca06ee1d5acefe (commit)
from 87fdf3a085980e3e7768909301ca2b711d33e429 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 03f4a090c023339ed268e5c13c3fab00c37fdb36
Author: Stefano Lattarini <address@hidden>
Date: Thu Sep 8 16:06:40 2011 +0200
cosmetic: rename gen-tests-deps -> gen-testsuite-part
* tests/gen-tests-deps: Renamed ...
* tests/gen-testsuite-part: ... to this.
* bootstrap: Update.
* tests/Makefile.am ($(srcdir)/tests-deps.am): Don't generate
nor include this ...
($(srcdir)/testsuite-part.am): ... do with this instead.
* tests/.gitignore (tests-deps.am): Don't ignore this ...
(testsuite-part.am): ... ignore this instead.
commit 375f23dfb51caeddc5f0e95d9cf7e2daf8884334
Author: Stefano Lattarini <address@hidden>
Date: Thu Sep 8 11:02:05 2011 +0200
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.
commit e4777b8dc1a2c22247c6fc251bca06ee1d5acefe
Author: Stefano Lattarini <address@hidden>
Date: Thu Sep 8 10:41:24 2011 +0200
testsuite: automatize generation of dependencies for tests
* tests/gen-test-deps: New script, automatically generates
dependencies for the tests.
* tests/Makefile.am (EXTRA_DIST): Distribute it.
($(srcdir)/tests-deps.am): New rule.
(include $(srcdir)/tests-deps.am): New inclusion.
Remove hand-written dependencies for tests. Other related
updates.
* tests/list-of-tests (tap_with_common_setup_TESTS,
tap_other_TESTS): Delete, their content merged back into ...
(handwritten_TESTS): ... this.
* tests/.gitignore (tests-deps.am): New ignored file.
* bootstrap: Generate `tests/tests-deps.am'.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 65 ++++
bootstrap | 8 +-
tests/.gitignore | 4 +-
tests/Makefile.am | 66 ++---
tests/Makefile.in | 806 ++++++++++++++++++++++++----------------------
tests/README | 12 +-
tests/gen-testsuite-part | 315 ++++++++++++++++++
tests/gen-wrap-tests | 185 -----------
tests/list-of-tests.mk | 174 +++++------
tests/wrap-tests.sh | 89 -----
10 files changed, 914 insertions(+), 810 deletions(-)
create mode 100755 tests/gen-testsuite-part
delete mode 100755 tests/gen-wrap-tests
delete mode 100755 tests/wrap-tests.sh
diff --git a/ChangeLog b/ChangeLog
index dfbb90a..9ed2a3c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,68 @@
+2011-09-08 Stefano Lattarini <address@hidden>
+
+ cosmetic: rename gen-tests-deps -> gen-testsuite-part
+ * tests/gen-tests-deps: Renamed ...
+ * tests/gen-testsuite-part: ... to this.
+ * bootstrap: Update.
+ * tests/Makefile.am ($(srcdir)/tests-deps.am): Don't generate
+ nor include this ...
+ ($(srcdir)/testsuite-part.am): ... do with this instead.
+ * tests/.gitignore (tests-deps.am): Don't ignore this ...
+ (testsuite-part.am): ... ignore this instead.
+
+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.
+ * tests/Makefile.am (EXTRA_DIST): Distribute it.
+ ($(srcdir)/tests-deps.am): New rule.
+ (include $(srcdir)/tests-deps.am): New inclusion.
+ Remove hand-written dependencies for tests. Other related
+ updates.
+ * tests/list-of-tests (tap_with_common_setup_TESTS,
+ tap_other_TESTS): Delete, their content merged back into ...
+ (handwritten_TESTS): ... this.
+ * tests/.gitignore (tests-deps.am): New ignored file.
+ * bootstrap: Generate `tests/tests-deps.am'.
+
2011-09-07 Stefano Lattarini <address@hidden>
tests: avoid spurious failure due to bug in older TAP::Parser
diff --git a/bootstrap b/bootstrap
index 9fab5f8..4c8fcd2 100755
--- a/bootstrap
+++ b/bootstrap
@@ -103,11 +103,11 @@ dosubst m4/amversion.in m4/amversion.m4
# Create temporary replacement for automake.
dosubst automake.in automake.tmp
-# Create required makefile snippet.
+# 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-testsuite-part > testsuite-part.tmp
+chmod a-w testsuite-part.tmp
+mv -f testsuite-part.tmp testsuite-part.am
cd ..
# Run the autotools.
diff --git a/tests/.gitignore b/tests/.gitignore
index 528a0f5..7b04f17 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -1,7 +1,9 @@
/aclocal-*
/automake-*
/defs-static
-/wrap-tests.am
+/testsuite-part.am
+/*-w.tap
+/*-w.test
/*.dir
/*.log
/*.trs
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4ca74d1..fe6ad55 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,46 +77,32 @@ 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)/testsuite-part.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)/testsuite-part.am:
+ $(AM_V_at)rm -f testsuite-part.tmp $@
+ $(AM_V_GEN)$(PERL) $(srcdir)/gen-testsuite-part \
+ --srcdir $(srcdir) > testsuite-part.tmp
+ $(AM_V_at)chmod a-w testsuite-part.tmp
+ $(AM_V_at)mv -f testsuite-part.tmp $@
+EXTRA_DIST += gen-testsuite-part
-# 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
+$(generated_TESTS) $(srcdir)/testsuite-part.am: \
+ gen-testsuite-part list-of-tests.mk Makefile.am $(handwritten_TESTS)
-# Extra dependencies for hand-written tests.
-
-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
-EXTRA_DIST += trivial-test-driver
-
-testsuite-summary-color.log testsuite-summary-count.log: \
- testsuite-summary-checks.sh extract-testsuite-summary
-EXTRA_DIST += testsuite-summary-checks.sh
-EXTRA_DIST += extract-testsuite-summary
-
-testsuite-summary-count-many.log: trivial-test-driver
-testsuite-summary-count-many.log: extract-testsuite-summary
-
-$(tap_with_common_setup_TESTS:.test=.log): tap-common-setup.log tap-setup.sh
-EXTRA_DIST += tap-setup.sh
+# 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
-tap-summary.log tap-summary-color.log: tap-summary-aux.sh
-EXTRA_DIST += tap-summary-aux.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
@@ -139,15 +124,6 @@ checked_test_extensions = .test .tap
expected_list_of_tests = $(handwritten_TESTS)
include $(top_srcdir)/CheckListOfTests.am
-# 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
-
-## Files containing auxiliary functions used by our test cases.
-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 fd93782..91ace71 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -52,7 +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)/wrap-tests.am $(top_srcdir)/CheckListOfTests.am
+ $(srcdir)/testsuite-part.am $(top_srcdir)/CheckListOfTests.am
subdir = tests
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/amversion.m4 \
@@ -181,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@
@@ -298,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 trivial-test-driver testsuite-summary-checks.sh \
- extract-testsuite-summary tap-setup.sh tap-summary-aux.sh \
- 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-testsuite-part 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 \
@@ -1244,8 +1234,88 @@ suffix-chain.tap \
symlink.test \
symlink2.test \
syntax.test \
-$(tap_with_common_setup_TESTS) \
-$(tap_other_TESTS) \
+tap-ambiguous-directive.test \
+tap-autonumber.test \
+tap-bailout.test \
+tap-bailout-and-logging.test \
+tap-bailout-suppress-badexit.test \
+tap-bailout-suppress-later-diagnostic.test \
+tap-bailout-suppress-later-errors.test \
+tap-color.test \
+tap-deps.test \
+tap-diagnostic.test \
+tap-empty-diagnostic.test \
+tap-empty.test \
+tap-escape-directive.test \
+tap-escape-directive-2.test \
+tap-exit.test \
+tap-signal.tap \
+tap-fancy.test \
+tap-fancy2.test \
+tap-global-log.test \
+tap-global-result.test \
+tap-html.test \
+tap-log.test \
+tap-msg0-result.test \
+tap-msg0-directive.test \
+tap-msg0-planskip.test \
+tap-msg0-bailout.test \
+tap-msg0-misc.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-numbers.test \
+tap-no-spurious.test \
+tap-not-ok-skip.test \
+tap-number-wordboundary.test \
+tap-numeric-description.test \
+tap-negative-numbers.test \
+tap-numbers-leading-zero.test \
+tap-out-of-order.test \
+tap-passthrough.test \
+tap-passthrough-exit.test \
+tap-plan.test \
+tap-plan-corner.test \
+tap-plan-errors.test \
+tap-plan-middle.test \
+tap-plan-whitespace.test \
+tap-plan-leading-zero.test \
+tap-plan-malformed.test \
+tap-missing-plan-and-bad-exit.test \
+tap-planskip.test \
+tap-planskip-late.test \
+tap-planskip-and-logging.test \
+tap-planskip-unplanned.test \
+tap-planskip-unplanned-corner.test \
+tap-planskip-case-insensitive.test \
+tap-planskip-whitespace.test \
+tap-planskip-badexit.test \
+tap-planskip-bailout.test \
+tap-planskip-later-errors.test \
+tap-realtime.test \
+tap-test-number-0.test \
+tap-recheck-logs.test \
+tap-result-comment.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 \
+tap-common-setup.test \
+tap-bad-prog.tap \
+tap-basic.test \
+tap-diagnostic-custom.test \
+tap-driver-stderr.test \
+tap-doc.test \
+tap-doc2.test \
+tap-more.test \
+tap-more2.test \
+tap-recheck.test \
+tap-summary.test \
+tap-summary-color.test \
tags.test \
tags2.test \
tagsub.test \
@@ -1357,262 +1427,61 @@ yflags-force-override.test \
yflags-force-conditional.test \
yflags-var-expand.test
-
-# List of tests on TAP support that use the files pre-computed by
-# `tap-common-setup.test', and source the `tap-setup.sh' helper
-# script.
-tap_with_common_setup_TESTS = \
-tap-ambiguous-directive.test \
-tap-autonumber.test \
-tap-bailout.test \
-tap-bailout-and-logging.test \
-tap-bailout-suppress-badexit.test \
-tap-bailout-suppress-later-diagnostic.test \
-tap-bailout-suppress-later-errors.test \
-tap-color.test \
-tap-deps.test \
-tap-diagnostic.test \
-tap-empty-diagnostic.test \
-tap-empty.test \
-tap-escape-directive.test \
-tap-escape-directive-2.test \
-tap-exit.test \
-tap-signal.tap \
-tap-fancy.test \
-tap-fancy2.test \
-tap-global-log.test \
-tap-global-result.test \
-tap-html.test \
-tap-log.test \
-tap-msg0-result.test \
-tap-msg0-directive.test \
-tap-msg0-planskip.test \
-tap-msg0-bailout.test \
-tap-msg0-misc.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-numbers.test \
-tap-no-spurious.test \
-tap-not-ok-skip.test \
-tap-number-wordboundary.test \
-tap-numeric-description.test \
-tap-negative-numbers.test \
-tap-numbers-leading-zero.test \
-tap-out-of-order.test \
-tap-passthrough.test \
-tap-passthrough-exit.test \
-tap-plan.test \
-tap-plan-corner.test \
-tap-plan-errors.test \
-tap-plan-middle.test \
-tap-plan-whitespace.test \
-tap-plan-leading-zero.test \
-tap-plan-malformed.test \
-tap-missing-plan-and-bad-exit.test \
-tap-planskip.test \
-tap-planskip-late.test \
-tap-planskip-and-logging.test \
-tap-planskip-unplanned.test \
-tap-planskip-unplanned-corner.test \
-tap-planskip-case-insensitive.test \
-tap-planskip-whitespace.test \
-tap-planskip-badexit.test \
-tap-planskip-bailout.test \
-tap-planskip-later-errors.test \
-tap-realtime.test \
-tap-test-number-0.test \
-tap-recheck-logs.test \
-tap-result-comment.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
-
-
-# Other tests on TAP support.
-tap_other_TESTS = \
-tap-common-setup.test \
-tap-bad-prog.tap \
-tap-basic.test \
-tap-diagnostic-custom.test \
-tap-driver-stderr.test \
-tap-doc.test \
-tap-doc2.test \
-tap-more.test \
-tap-more2.test \
-tap-recheck.test \
-tap-summary.test \
-tap-summary-color.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
@@ -1621,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 $(am__configure_deps)
+.SUFFIXES: .html .log .tap .test .trs
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/list-of-tests.mk
$(srcdir)/testsuite-part.am $(top_srcdir)/CheckListOfTests.am
$(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
@@ -1857,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'`; \
@@ -2032,153 +1881,340 @@ 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 $@
-
-# 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 dependencies for hand-written tests.
-
-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
-
-testsuite-summary-color.log testsuite-summary-count.log: \
- testsuite-summary-checks.sh extract-testsuite-summary
-
-testsuite-summary-count-many.log: trivial-test-driver
-testsuite-summary-count-many.log: extract-testsuite-summary
+$(srcdir)/testsuite-part.am:
+ $(AM_V_at)rm -f testsuite-part.tmp $@
+ $(AM_V_GEN)$(PERL) $(srcdir)/gen-testsuite-part \
+ --srcdir $(srcdir) > testsuite-part.tmp
+ $(AM_V_at)chmod a-w testsuite-part.tmp
+ $(AM_V_at)mv -f testsuite-part.tmp $@
-$(tap_with_common_setup_TESTS:.test=.log): tap-common-setup.log tap-setup.sh
+$(generated_TESTS) $(srcdir)/testsuite-part.am: \
+ gen-testsuite-part list-of-tests.mk Makefile.am $(handwritten_TESTS)
-tap-summary.log tap-summary-color.log: tap-summary-aux.sh
+# 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
@@ -2238,12 +2274,6 @@ clean-local: clean-maintcheck-testslist-tmp
clean-maintcheck-testslist-tmp:
rm -f $(am__tmk) $(am__tfs) $(am__tdf)
-# 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-testsuite-part b/tests/gen-testsuite-part
new file mode 100755
index 0000000..56e9227
--- /dev/null
+++ b/tests/gen-testsuite-part
@@ -0,0 +1,315 @@
+#! /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.
+
+# 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/>.
+
+#--------------------------------------------------------------------------
+
+use warnings FATAL => "all";
+use strict;
+use File::Basename ();
+
+my $me = File::Basename::basename $0;
+
+# For use in VPATH builds.
+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;
+ while (defined (my $line = <FH>))
+ {
+ if ($line =~ $re)
+ {
+ $ret = 1;
+ last;
+ }
+ }
+ close FH or die "$me: cannot close file `$file': $!\n";
+ 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";
+ # Unset MAKEFLAGS, for when we are called from make itself.
+ my $cmd = "MAKEFLAGS= && unset MAKEFLAGS && cd '$srcdir' && "
+ . "$make -s -f list-of-tests.mk print-list-of-tests";
+ my @tests_list = split /\s+/, `$cmd`;
+ die "$me: cannot get list of tests\n" unless $? == 0 && @tests_list;
+ 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;
+ }
+ die "$me: some test scripts not found\n" if !$ok;
+ return @tests_list;
+}
+
+sub parse_options (@)
+{
+ use Getopt::Long qw/GetOptions/;
+ local @ARGV = @_;
+ GetOptions ('srcdir=s' => \$srcdir) or die "$me: usage error\n";
+ die "$me: too many arguments\n" if @ARGV > 0;
+ die "$me: srcdir `$srcdir': not a directory\n" unless -d $srcdir;
+}
+
+#--------------------------------------------------------------------------
+
+my %deps_extractor =
+ (
+ use_trivial_test_driver =>
+ {
+ line_matcher => qr/\btrivial-test-driver\b/,
+ dist_prereqs => "trivial-test-driver",
+ },
+ check_testsuite_summary =>
+ {
+ line_matcher => qr/\btestsuite-summary-checks\.sh\b/,
+ dist_prereqs => "testsuite-summary-checks.sh",
+ },
+ extract_testsuite_summary =>
+ {
+ line_matcher => qr/\bextract-testsuite-summary\b/,
+ dist_prereqs => "extract-testsuite-summary",
+ },
+ check_tap_testsuite_summary =>
+ {
+ line_matcher => qr/\btap-summary-aux\.sh\b/,
+ dist_prereqs => "tap-summary-aux.sh",
+ },
+ is_test_on_tap_with_common_setup =>
+ {
+ line_matcher => qr/\btap-setup\.sh\b/,
+ dist_prereqs => "tap-setup.sh",
+ nodist_prereqs => "tap-common-setup.log",
+ },
+ );
+
+#--------------------------------------------------------------------------
+
+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 "## -*- 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)
+ {
+ my $dist_prereqs = $x->{dist_prereqs} || "";
+ my $nodist_prereqs = $x->{nodist_prereqs} || "";
+ my @logs = grep { line_match $x->{line_matcher}, $_ } @tests;
+ map { s/\.[^.]*$//; s/$/\.log/; } @logs;
+ 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/list-of-tests.mk b/tests/list-of-tests.mk
index 5e3fae0..6a04261 100644
--- a/tests/list-of-tests.mk
+++ b/tests/list-of-tests.mk
@@ -919,8 +919,88 @@ suffix-chain.tap \
symlink.test \
symlink2.test \
syntax.test \
-$(tap_with_common_setup_TESTS) \
-$(tap_other_TESTS) \
+tap-ambiguous-directive.test \
+tap-autonumber.test \
+tap-bailout.test \
+tap-bailout-and-logging.test \
+tap-bailout-suppress-badexit.test \
+tap-bailout-suppress-later-diagnostic.test \
+tap-bailout-suppress-later-errors.test \
+tap-color.test \
+tap-deps.test \
+tap-diagnostic.test \
+tap-empty-diagnostic.test \
+tap-empty.test \
+tap-escape-directive.test \
+tap-escape-directive-2.test \
+tap-exit.test \
+tap-signal.tap \
+tap-fancy.test \
+tap-fancy2.test \
+tap-global-log.test \
+tap-global-result.test \
+tap-html.test \
+tap-log.test \
+tap-msg0-result.test \
+tap-msg0-directive.test \
+tap-msg0-planskip.test \
+tap-msg0-bailout.test \
+tap-msg0-misc.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-numbers.test \
+tap-no-spurious.test \
+tap-not-ok-skip.test \
+tap-number-wordboundary.test \
+tap-numeric-description.test \
+tap-negative-numbers.test \
+tap-numbers-leading-zero.test \
+tap-out-of-order.test \
+tap-passthrough.test \
+tap-passthrough-exit.test \
+tap-plan.test \
+tap-plan-corner.test \
+tap-plan-errors.test \
+tap-plan-middle.test \
+tap-plan-whitespace.test \
+tap-plan-leading-zero.test \
+tap-plan-malformed.test \
+tap-missing-plan-and-bad-exit.test \
+tap-planskip.test \
+tap-planskip-late.test \
+tap-planskip-and-logging.test \
+tap-planskip-unplanned.test \
+tap-planskip-unplanned-corner.test \
+tap-planskip-case-insensitive.test \
+tap-planskip-whitespace.test \
+tap-planskip-badexit.test \
+tap-planskip-bailout.test \
+tap-planskip-later-errors.test \
+tap-realtime.test \
+tap-test-number-0.test \
+tap-recheck-logs.test \
+tap-result-comment.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 \
+tap-common-setup.test \
+tap-bad-prog.tap \
+tap-basic.test \
+tap-diagnostic-custom.test \
+tap-driver-stderr.test \
+tap-doc.test \
+tap-doc2.test \
+tap-more.test \
+tap-more2.test \
+tap-recheck.test \
+tap-summary.test \
+tap-summary-color.test \
tags.test \
tags2.test \
tagsub.test \
@@ -1032,96 +1112,6 @@ yflags-force-override.test \
yflags-force-conditional.test \
yflags-var-expand.test
-# List of tests on TAP support that use the files pre-computed by
-# `tap-common-setup.test', and source the `tap-setup.sh' helper
-# script.
-tap_with_common_setup_TESTS = \
-tap-ambiguous-directive.test \
-tap-autonumber.test \
-tap-bailout.test \
-tap-bailout-and-logging.test \
-tap-bailout-suppress-badexit.test \
-tap-bailout-suppress-later-diagnostic.test \
-tap-bailout-suppress-later-errors.test \
-tap-color.test \
-tap-deps.test \
-tap-diagnostic.test \
-tap-empty-diagnostic.test \
-tap-empty.test \
-tap-escape-directive.test \
-tap-escape-directive-2.test \
-tap-exit.test \
-tap-signal.tap \
-tap-fancy.test \
-tap-fancy2.test \
-tap-global-log.test \
-tap-global-result.test \
-tap-html.test \
-tap-log.test \
-tap-msg0-result.test \
-tap-msg0-directive.test \
-tap-msg0-planskip.test \
-tap-msg0-bailout.test \
-tap-msg0-misc.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-numbers.test \
-tap-no-spurious.test \
-tap-not-ok-skip.test \
-tap-number-wordboundary.test \
-tap-numeric-description.test \
-tap-negative-numbers.test \
-tap-numbers-leading-zero.test \
-tap-out-of-order.test \
-tap-passthrough.test \
-tap-passthrough-exit.test \
-tap-plan.test \
-tap-plan-corner.test \
-tap-plan-errors.test \
-tap-plan-middle.test \
-tap-plan-whitespace.test \
-tap-plan-leading-zero.test \
-tap-plan-malformed.test \
-tap-missing-plan-and-bad-exit.test \
-tap-planskip.test \
-tap-planskip-late.test \
-tap-planskip-and-logging.test \
-tap-planskip-unplanned.test \
-tap-planskip-unplanned-corner.test \
-tap-planskip-case-insensitive.test \
-tap-planskip-whitespace.test \
-tap-planskip-badexit.test \
-tap-planskip-bailout.test \
-tap-planskip-later-errors.test \
-tap-realtime.test \
-tap-test-number-0.test \
-tap-recheck-logs.test \
-tap-result-comment.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
-
-# Other tests on TAP support.
-tap_other_TESTS = \
-tap-common-setup.test \
-tap-bad-prog.tap \
-tap-basic.test \
-tap-diagnostic-custom.test \
-tap-driver-stderr.test \
-tap-doc.test \
-tap-doc2.test \
-tap-more.test \
-tap-more2.test \
-tap-recheck.test \
-tap-summary.test \
-tap-summary-color.test
-
print-list-of-tests:
@echo $(handwritten_TESTS)
.PHONY: print-list-of-tests
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'"
hooks/post-receive
--
GNU Automake
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, testsuite-work, updated. v1.11-1309-g03f4a09,
Stefano Lattarini <=