[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-NG] [PATCH 6/6] [ng] recheck: don't exceed command line limits
From: |
Stefano Lattarini |
Subject: |
[Automake-NG] [PATCH 6/6] [ng] recheck: don't exceed command line limits, even with many failed tests |
Date: |
Sat, 21 Jul 2012 10:50:45 +0200 |
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 <address@hidden>
---
Makefile.am | 1 -
lib/am/parallel-tests.am | 13 ++++++-------
2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 290d5f4..54de62f 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 08012fc..048cdfa 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)
--
1.7.10.4
- Re: [Automake-NG] [PATCH 2/6] [ng] parallel-tests: do not exceed command line length limits, (continued)
[Automake-NG] [PATCH 3/6] [ng] check: use awk rather than grep+xargs to count test results, Stefano Lattarini, 2012/07/21
[Automake-NG] [PATCH 4/6] [ng] check: refactor for less duplication and better performances, Stefano Lattarini, 2012/07/21
[Automake-NG] [PATCH 5/6] [ng] coverage: recheck with many failed tests, Stefano Lattarini, 2012/07/21
[Automake-NG] [PATCH 6/6] [ng] recheck: don't exceed command line limits, even with many failed tests,
Stefano Lattarini <=
[Automake-NG] [PATCH 7/6] [ng] check: in recipes, don't use pipe when redirection suffices, Stefano Lattarini, 2012/07/22
Re: [Automake-NG] [PATCH 0/6] Run many tests without hitting command line length limits, Stefano Lattarini, 2012/07/23