[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
parallel-tests: avoid command-line length limit issue. (was: Automake 1.
From: |
Ralf Wildenhues |
Subject: |
parallel-tests: avoid command-line length limit issue. (was: Automake 1.11.1 glitch?) |
Date: |
Tue, 7 Sep 2010 05:10:38 +0200 |
User-agent: |
Mutt/1.5.20 (2010-04-22) |
* Stefano Lattarini wrote on Tue, Sep 07, 2010 at 03:15:54AM CEST:
> > --- a/lib/am/check.am
> > +++ b/lib/am/check.am
> > + { echo "TEST_LOGS = "; \
> > + for f in $$list; do \
> > + test .log = $$f || echo $$f; \
> > + done; \
> > + } | { tr '\012\015' ' '; echo; } \
> > + | $(MAKE) -f Makefile -f - $(AM_MAKEFLAGS) $(TEST_SUITE_LOG)
> Does this works even if the developer is using, say, GNUmakefile.am instead
> of Makefile.am?
No; thanks for the reminder. It also doesn't work with vendor makes
that have text file line length limitations.
I'm applying the following patch to maint to avoid the issue.
Unfortunately, the same technique will not work for recheck and
recheck-html. So no rechecking unless the number of failures is
lower than the command-line length limit allows.
Thanks,
Ralf
parallel-tests: avoid command-line length limit issue.
* automake.in (handle_tests): New argument $makefile, new
substitution %MAKEFILE%.
(generate_makefile): Adjust.
* lib/am/check.am [%?PARALLEL_TESTS%] (check-TESTS): Pass
sanitized TEST_LOGS value as makefile snippet on standard
input to $(MAKE), to avoid exceeding the command line limit on
w32 (MSYS).
* NEWS: Update.
Report by Bob Friesenhahn.
diff --git a/NEWS b/NEWS
index b3d4131..3a0ca06 100644
--- a/NEWS
+++ b/NEWS
@@ -22,6 +22,9 @@ Bugs fixed in 1.11.0a:
- The AM_COND_IF macro also works if the shell expression for the conditional
is no longer valid for the condition.
+ - The `parallel-tests' driver works around a problem with command-line
+ length limits with `make check' on w32 (MSYS).
+
* Long standing bugs:
- On Darwin 9, `pythondir' and `pyexecdir' pointed below `/Library/Python'
diff --git a/automake.in b/automake.in
index 381202b..fa098bb 100755
--- a/automake.in
+++ b/automake.in
@@ -4908,9 +4908,13 @@ sub handle_tests_dejagnu
}
+# handle_tests ($MAKEFILE)
+# ------------------------
# Handle TESTS variable and other checks.
-sub handle_tests
+sub handle_tests ($)
{
+ my ($makefile) = @_;
+
if (option 'dejagnu')
{
&handle_tests_dejagnu;
@@ -4929,7 +4933,8 @@ sub handle_tests
push (@check_tests, 'check-TESTS');
$output_rules .= &file_contents ('check', new Automake::Location,
COLOR => !! option 'color-tests',
- PARALLEL_TESTS => !! option
'parallel-tests');
+ PARALLEL_TESTS => !! option
'parallel-tests',
+ MAKEFILE => basename $makefile);
# Tests that are known programs should have $(EXEEXT) appended.
# For matching purposes, we need to adjust XFAIL_TESTS as well.
@@ -8211,7 +8216,7 @@ sub generate_makefile ($$)
handle_tags;
handle_minor_options;
# Must come after handle_programs so that %known_programs is up-to-date.
- handle_tests;
+ handle_tests ($makefile);
# This must come after most other rules.
handle_dist;
diff --git a/lib/am/check.am b/lib/am/check.am
index c612b22..b79201f 100644
--- a/lib/am/check.am
+++ b/lib/am/check.am
@@ -236,10 +236,10 @@ check-TESTS:
## we rely on .PHONY to work portably.
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@list='$(TEST_LOGS)'; \
- list=`for f in $$list; do \
- test .log = $$f || echo $$f; \
- done | tr '\012\015' ' '`; \
- $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$list"
+ { echo "TEST_LOGS = \\"; \
+ for f in $$list; do test .log = $$f || echo "$$f \\"; done; \
+ } | sed '$$s/\\$$//' \
+ | $(MAKE) -f %MAKEFILE% -f - $(AM_MAKEFLAGS) $(TEST_SUITE_LOG)
AM_RECURSIVE_TARGETS += check
- Re: Automake 1.11.1 glitch?, (continued)
- verbosity of test failure feedback (was: Automake 1.11.1 glitch?), Ralf Wildenhues, 2010/09/07
- Re: verbosity of test failure feedback (was: Automake 1.11.1 glitch?), Bob Friesenhahn, 2010/09/07
- Re: verbosity of test failure feedback (was: Automake 1.11.1 glitch?), Stefano Lattarini, 2010/09/07
- Re: verbosity of test failure feedback, Ralf Wildenhues, 2010/09/08
- Re: verbosity of test failure feedback, Stefano Lattarini, 2010/09/08
- Re: verbosity of test failure feedback (was: Automake 1.11.1 glitch?), Stefano Lattarini, 2010/09/07
Re: Automake 1.11.1 glitch?, Stefano Lattarini, 2010/09/06
- parallel-tests: avoid command-line length limit issue. (was: Automake 1.11.1 glitch?),
Ralf Wildenhues <=
Re: Automake 1.11.1 glitch?, Bob Friesenhahn, 2010/09/06