From b83aa7ee0d5fcaaeb3e617eb87c97ab2ba182224 Mon Sep 17 00:00:00 2001 From: Ralf Wildenhues Date: Tue, 28 Oct 2008 22:04:36 +0100 Subject: [PATCH] Fix parallel test execution output lossage. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 --- ChangeLog | 16 +++++++++++++--- THANKS | 1 + lib/autotest/general.m4 | 10 ++++++++-- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0451fa9f..b5d860f8 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 f566006c..a9b65ce1 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 4d7c0f5a..03d39024 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