summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-07-21 10:13:58 +0200
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-07-22 13:21:46 +0200
commit72ac29f10130ef8f450f8fcb71762d56ada18d4e (patch)
tree0426087319f9c539f825d1751e5e523986af2be8
parent9761847dd0a49a14a46fa2ac09b7224e8e818147 (diff)
downloadautomake-72ac29f10130ef8f450f8fcb71762d56ada18d4e.tar.gz
[ng] recheck: don't exceed command line limits, even with many failed tests
Related to automake bug#7868. * lib/am/parallel-tests.sh (recheck): Arrange recursive make invocation to pass the list of tests to be rechecked in the make standard input rather than on the make command line. (am__test_bases): Only define if not already set, to make the new idiom referenced above work as expected. * Makefile.am (XFAIL_TESTS): Remove 't/parallel-tests-many.sh' once again. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
-rw-r--r--Makefile.am1
-rw-r--r--lib/am/parallel-tests.am13
2 files changed, 6 insertions, 8 deletions
diff --git a/Makefile.am b/Makefile.am
index 290d5f423..54de62fb9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -350,7 +350,6 @@ XFAIL_TESTS = \
t/interp3.sh \
t/java-nobase.sh \
t/objext-pr10128.sh \
- t/parallel-tests-many.sh \
t/pr8365-remake-timing.sh \
t/remake-am-pr10111.sh \
t/remake-m4-pr10111.sh \
diff --git a/lib/am/parallel-tests.am b/lib/am/parallel-tests.am
index 08012fce4..048cdfada 100644
--- a/lib/am/parallel-tests.am
+++ b/lib/am/parallel-tests.am
@@ -302,8 +302,8 @@ END { \
am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
# This supports runtime overriding of $(TESTS) and $(XFAIL_TESTS).
-am__test_bases = \
- $(call am__memoize,am__test_bases,$(call am__get_test_bases,$(TESTS)))
+!am__test_bases ?= \
+! $(call am__memoize,am__test_bases,$(call am__get_test_bases,$(TESTS)))
am__xfail_test_bases = \
$(call am__memoize,am__xfail_test_bases,$(call am__get_test_bases,$(XFAIL_TESTS)))
@@ -476,11 +476,10 @@ recheck: all %CHECK_DEPS%
| $(am__list_recheck_tests)` || exit 1; \
## Remove newlines and normalize whitespace.
bases=`echo $$bases`; \
-## FIXME: This could still cause command line length limits to be exceeded.
-## But that could happen only if a huge number of tests had failed in the
-## previous run, in which case we could expect the user to run "make check"
-## for safeness. So, is this limitation worth lifting or not?
- $(MAKE) $(TEST_SUITE_LOG) .am/doing-recheck=yes am__test_bases="$$bases"
+## Re-run the relevant tests, without hitting command-line length limits.
+ echo am__test_bases="$$bases" | \
+ $(MAKE) -f- -f$(firstword $(MAKEFILE_LIST)) \
+ $(TEST_SUITE_LOG) .am/doing-recheck=yes
.PHONY: recheck
## One tricky requirement of the "recheck" target is that, in case (say)