diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-04-15 14:00:52 +0200 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-05-16 10:04:57 +0200 |
commit | 12711fcc0f3dc914b7e63345a25a186b8d4e401f (patch) | |
tree | ceea61d77f41389b173c18e16d74d245c1b6d6d4 /NG-NEWS | |
parent | e77e1977451fff101bb91b71ff363b94b813fb64 (diff) | |
download | automake-12711fcc0f3dc914b7e63345a25a186b8d4e401f.tar.gz |
[ng] check: big refactoring with semantic changes in parallel-tests support
In this change, we move some further processing related to the parallel
testsuite harness support from Automake runtime to make runtime.
A welcome collateral effect of this is that we are now able to cope
with test scripts whose name ends with several concatenated suffixes.
Another (less welcome) collateral effect of the present change is that
the user now cannot override TEST_LOGS at make runtime anymore:
# This won't work anymore!
make check TESTS_LOGS="foo.log bar.log baz.log"
This admittedly is a small(ish) regression. But it's not a real problem,
since we now explicitly allow *and document* that TESTS can be overridden
at runtime without bothering to add the test suffixes to its entries:
# This will work even if complete names of the tests are (say)
# "foo.test", "bar.test$(EXEEXT)" and "baz$(EXEEXT)".
make check TESTS="foo bar baz"
With such usage, the user don't have to bother knowing which the exact
extensions of each tests are -- which was precisely the only advantage
of overriding TEST_LOGS instead of TESTS.
* NG-NEWS: Update.
* doc/automake.texi: Likewise.
* lib/am/header-vars.am (am__strip_suffixes_0, am__strip_suffixes): New
internal macros ...
* t/internals.tap: ... covered by new checks in this test, and used ...
* lib/am/check.am (am__xfail_test_bases): ... to define this new internal
variable in term of $(am__cooked_xfail_tests) (and thus eventually of
$(XFAIL_TESTS)), and to ...
(am__TEST_BASES): ... (re)define this pre-existing internal variable in
terms of $(am__cooked_tests) (and thus eventually of $(TESTS)), rather
than in terms of $(TEST_LOGS) as was done before.
(am__TEST_RESULTS, am__TEST_LOGS): Define in terms of $(am__TEST_BASES).
(TEST_LOGS): Define to $(am__TEST_LOGS), for backward-compatibility.
($(TEST_SUITE_LOG)): Depend on $(am__TEST_RESULTS) rather than on
$(TEST_LOGS).
(am__check_pre): Use $(am__xfail_test_bases) and new temporary shell
variable $f2, instead of $(am__cooked_xfail_tests) and $f, to decide
whether a test is expected to fail or not.
Fix some imprecise or botched comments since we are at it.
(check-TESTS, recheck): When re-invoking make recursively, override
am__TEST_BASES rather than TEST_LOGS. Relate tweaks.
* automke.in (handle_tests): Pass new transform %HANDLE-EXEEXT% when
including check.am (used for the definitions of am__xfail_test_bases
and am__TEST_BASES). Don't define the TEST_LOGS make variable, nor the
auxiliary make variables am__test_logs1, am__test_logs2, etc. Put
$(am__TEST_LOGS) and $(am__TEST_RESULTS) among the "mostlyclean" files
(rather than "$(TEST_LOGS)" and "$(TEST_LOGS:.log=.trs)" as before).
* t/parallel-tests-concatenated-suffix.sh: New test.
* t/nodeps.sh: Delete, it was causing too much spurious failures.
* t/color2.sh: Avoid a spurious failure by not calling make with
the '-e' flag.
* t/parallel-tests-exeext.sh: Extended to check the user is not
forced to specify the test suffixes nor the $(EXEEXT) suffix
when overriding TESTS on the command line.
* t/check-concurrency-bug9245.sh: Adjust to the new semantics of "no
TEST_LOGS overriding from the command line".
* t/parallel-tests-cmdline-override.sh: Likewise.
* t/parallel-tests-dynamic.sh: Likewise.
* t/parallel-tests-fork-bomb.sh: Likewise.
* t/parallel-tests-log-override-2.sh: Likewise.
* t/tap-basic.sh: Likewise.
* t/test-driver-custom-multitest-recheck2.sh: Likewise.
* t/test-missing.sh: Likewise.
* t/test-trs-basic.sh: Likewise.
* t/test-trs-recover.sh: Likewise.
* t/parallel-tests-empty-tests.sh: Likewise, and extended to check
that an empty TESTS produces am__cooked_tests, am__TEST_RESULTS,
am__TEST_BASES and am__TEST_LOGS that are empty as well.
* t/parallel-tests.sh: Adjust to the new semantics of "no TEST_LOGS
overriding from the command line". Remove a workaround required only
by HP-UX make. Make some "FIXME"-style comments stick out.
* t/serial-tests.sh: Adjust some checks that grep the Automake
generated Makefile.in.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 'NG-NEWS')
-rw-r--r-- | NG-NEWS | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -99,6 +99,20 @@ Parallel testsuite harness work as expected: TESTS = $(wildcard $(srcdir)/t[0-9][0-9]*.sh) +* It is not anymore possible to override TEST_LOGS at make runtime as a + mean to redefine the list of tests to be run. + + # This won't work anymore! + make check TESTS_LOGS="foo.log bar.log baz.log" + + But it's still possible do so overriding TESTS at make runtime; and + in this case (as was the case for TEST_LOGS overriding), it is not + necessary to specify the extensions of the tests to be run: + + # This will work even if complete names of the tests are (say) + # "foo.test", "bar.test$(EXEEXT)" and "baz$(EXEEXT)". + make check TESTS="foo bar baz" + Pattern rules and suffix rules ============================== |