Hash :
deb77738
Author :
Date :
2012-02-20T18:33:50
automake: new option 'serial-tests' Currently, automake offers a 'parallel-tests' option to enable the use of the parallel testsuite harness in the generated Makefiles, but no option to explicitly state the intention of using the older serial testsuite driver (which is currently the default). This makes the parallel test harness seems like a second-class citizen (while actually it should be the other way around); more importantly, it will prevent us from making the parallel harness be the default one in future automake versions, since the users of the serial harness would then have no way to instruct automake to continue using it. We solve all of this by introducing a new 'serial-tests' option. * lib/Automake/Options.pm (_process_option_list): Recognize the new option, and related minor refactoring. * tests/serial-tests.test: New test. * tests/list-of-tests.mk: Add it. * doc/automake.texi: Update. * NEWS: Likewise.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
#! /bin/sh
# Copyright (C) 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/>.
# Option 'serial-tests'.
# To avoid useless generation of a sibling test.
am_parallel_tests=yes
am_create_testdir=empty
. ./defs || Exit 1
hasnt_parallel_tests ()
{
$EGREP 'TEST_SUITE_LOG|TEST_LOGS|\.log.*:' $1 && Exit 1
grep 'recheck.*:' $1 && Exit 1
grep '^check-TESTS: \$(TESTS)$' $1
}
has_parallel_tests ()
{
$EGREP '(^| )check-TESTS.*:' $1
$EGREP '(^| )recheck.*:' $1
grep '^\$(TEST_SUITE_LOG): \$(TEST_LOGS)$' $1
grep '^\.test\.log:$' $1
}
mkdir one two
cat >> one/configure.ac <<END
AC_INIT([$me], [1.0])
AM_INIT_AUTOMAKE([serial-tests])
AC_CONFIG_FILES([Makefile])
END
echo 'TESTS = foo.test bar.test' > one/Makefile.am
cat >> two/configure.ac <<END
AC_INIT([$me], [2.0])
AC_CONFIG_AUX_DIR([config])
AM_INIT_AUTOMAKE([parallel-tests])
AC_CONFIG_FILES([aMakefile bMakefile])
END
cp one/Makefile.am two/aMakefile.am
cat - one/Makefile.am > two/bMakefile.am <<END
AUTOMAKE_OPTIONS = serial-tests
END
cd one
touch missing install-sh
$ACLOCAL
$AUTOMAKE
grep TEST Makefile.in # For debugging.
hasnt_parallel_tests Makefile.in
test ! -r test-driver
cd ..
cd two
mkdir config
$ACLOCAL
$AUTOMAKE --add-missing
grep TEST [ab]Makefile.in # For debugging.
has_parallel_tests aMakefile.in
hasnt_parallel_tests bMakefile.in
mv aMakefile.in aMakefile.sav
mv bMakefile.in bMakefile.sav
test ! -r test-driver
test -f config/test-driver
$AUTOMAKE
diff aMakefile.sav aMakefile.in
diff bMakefile.sav bMakefile.in
cd ..
: