Hash :
d19eb85c
Author :
Date :
2013-05-24T01:13:40
tests: use append mode to capture parallel make output
This will allow us to run the Automake testsuite forcing all the make
invocations in the test cases to run in parallel mode [1], but without
hitting the spurious failure reported in automake bug#11413.
See also:
<http://lists.gnu.org/archive/html/bug-make/2013-05/msg00135.html>
The make invocations in the test cases can be forced to run in parallel
mode by, e.g., invoking "make check" like this:
make check AM_TESTSUITE_MAKE="make -j16"
The possible spurious failures hinted above are due to the fact that
the redirected output of parallel make can racily lose lines. For
example, if GNU make (3.82) is run with -j10 on a Makefile like this:
all = 0 1 2 3 4 5 6 7 8 9
default: $(all)
$(all):
@sleep 0.$$(($RANDOM % 10)); echo $@
and has its standard output redirected in overwrite-mode to a regular
file, it looses a line of that output every 15 runs or so on a Fedora
17 system with 64 ppc64 cores. Redirection in append mode does not
suffer of this problem, as explained here:
<http://lists.gnu.org/archive/html/automake-patches/2009-03/msg00073.html>
See also previous commits v1.12-63-g45c1fcd of 2012-05-05 (tests: use
append mode to capture parallel make output) and Release-1-10-280-g6426999
of 2009-03-10 (Use append mode to capture parallel test output).
* t/ax/am-test-lib.sh (run_make): Adjust and enhance.
* t/lisp8.sh: Take advantage of the enhancement, nd stop doing output
redirection for $MAKE by hand.
* t/tap-more.sh: Likewise.
* t/parallel-tests-concurrency.sh: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
This is Automake, a Makefile generator. It aims to be portable and
to conform to the GNU Coding Standards for Makefile variables and
targets.
See the INSTALL file for detailed information about how to configure
and install Automake.
Automake is a Perl script. The input files are called Makefile.am.
The output files are called Makefile.in; they are intended for use
with Autoconf. Automake requires certain things to be done in your
configure.ac.
Automake comes with extensive documentation; please refer to it for
more details about its purpose, features, and usage patterns.
This package also includes the "aclocal" program, whose purpose is
to generate an 'aclocal.m4' based on the contents of 'configure.ac'.
It is useful as an extensible, maintainable mechanism for augmenting
autoconf. It is intended that other package authors will write m4
macros which can be automatically used by aclocal. The documentation
for aclocal is currently found in the Automake manual.
Automake has a test suite. Use "make check" to run it. For more
information, see the file t/README.
Automake has a page on the web. See:
http://www.gnu.org/software/automake/
Automake also has three mailing lists:
* automake@gnu.org
For general discussions of Automake and its interactions with other
configuration/portability tools like Autoconf or Libtool.
* bug-automake@gnu.org
Where to send bug reports and feature requests.
* automake-patches@gnu.org
Where to send patches, and discuss the automake development process
and the design of new features.
To obtain more information about these list, or to subscribe to them,
refer to <http://www.gnu.org/software/automake/#mailinglists>
New releases are announced to autotools-announce@gnu.org. If you want to
be informed, subscribe to that list by following the instructions at
<http://lists.gnu.org/mailman/listinfo/autotools-announce>.
For any copyright year range specified as YYYY-ZZZZ in this package,
that the range specifies every single year in that closed interval.
-----
Copyright (C) 1994-2012 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.