From: Ralf Wildenhues Date: Tue, 28 Oct 2008 21:04:36 +0000 (+0100) Subject: Fix parallel test execution output lossage. X-Git-Tag: v2.63b~175 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b83aa7ee0d5fcaaeb3e617eb87c97ab2ba182224;p=thirdparty%2Fautoconf.git Fix parallel test execution output lossage. * lib/autotest/general.m4 (_AT_CHECK): Truncate files to hold standard output and standard error before the test, use append mode for writing. * THANKS: Update. Caught by Bob Proulx' build daemons, analysis and suggested fix by Stéphane Chazelas. Signed-off-by: Ralf Wildenhues --- diff --git a/ChangeLog b/ChangeLog index 0451fa9fe..b5d860f82 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2008-10-28 Ralf Wildenhues + + Fix parallel test execution output lossage. + * lib/autotest/general.m4 (_AT_CHECK): Truncate files to hold + standard output and standard error before the test, use append + mode for writing. + * THANKS: Update. + Caught by Bob Proulx' build daemons, analysis and suggested fix + by Stéphane Chazelas. + 2008-10-28 Eric Blake Use m4_map_args in more places. @@ -1277,7 +1287,7 @@ * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Flatten whitespace in $ac_config_files and $ac_config_headers. * tests/torture.at (Parameterized AC_CONFIG_FILES): New test. - Report by Andreas Schwab and Per Øyvind Karlsen. + Report by Andreas Schwab and Per Øyvind Karlsen. * THANKS: Update. 2008-07-30 Eric Blake @@ -1949,7 +1959,7 @@ verbose compiler output, skip lines that set variables; gfortran 4.3 sets LIBRARY_PATH, COMPILER_PATH, COLLECT_GCC_OPTIONS. * THANKS: Update. - Report by Vincent Lefèvre. + Report by Vincent Lefèvre. 2008-03-21 Eric Blake @@ -3547,7 +3557,7 @@ the change. * NEWS: Likewise. * THANKS: Update. - Reported by Björn Lindqvist. + Reported by Björn Lindqvist. Provide better short-circuiting operation. * lib/m4sugar/m4sugar.m4 (m4_cond, m4_newline): New macros. diff --git a/THANKS b/THANKS index f566006c4..a9b65ce1a 100644 --- a/THANKS +++ b/THANKS @@ -319,6 +319,7 @@ Slava Sysoltsev Viatcheslav.Sysoltsev@h-d-gmbh.de Stefan Seefeld stefan@codesourcery.com Stefan `Sec' Zehl ? Stepan Kasal kasal@ucw.cz +Stéphane Chazelas Stephane_Chazelas@yahoo.fr Stephen Gildea filtered@against.spam Stephen Rasku srasku@mail.tantalus-systems.com Steve Chamberlain sac@cygnus.com diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4 index 4d7c0f5aa..03d39024e 100644 --- a/lib/autotest/general.m4 +++ b/lib/autotest/general.m4 @@ -1893,16 +1893,22 @@ m4_define([AT_DIFF_STDOUT()], # # ( $at_traceon; $1 ) >at-stdout 2>at-stder1 # +# Note that we truncate and append to the output files, to avoid losing +# output from multiple concurrent processes, e.g., an inner testsuite +# with parallel jobs. m4_define([_AT_CHECK], [{ $at_traceoff AS_ECHO(["$at_srcdir/AT_LINE: AS_ESCAPE([$1])"]) echo AT_LINE >"$at_check_line_file" +: >"$at_stdout" if _AT_DECIDE_TRACEABLE([$1]); then - ( $at_traceon; $1 ) >"$at_stdout" 2>"$at_stder1" + : >"$at_stder1" + ( $at_traceon; $1 ) >>"$at_stdout" 2>>"$at_stder1" at_func_filter_trace $? else - ( :; $1 ) >"$at_stdout" 2>"$at_stderr" + : >"$at_stderr" + ( :; $1 ) >>"$at_stdout" 2>>"$at_stderr" fi at_status=$? at_failed=false