From: Ralf Wildenhues Date: Tue, 14 Apr 2009 21:09:15 +0000 (+0200) Subject: testsuite: parallel make fixes. X-Git-Tag: v1.11~32^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1cf482840169260b5480ec91e5d9461127e6bbb2;p=thirdparty%2Fautomake.git testsuite: parallel make fixes. This patch fixes a couple of testsuite bugs exposed with `MAKE=make\ -jN make check'. * tests/libtoo10.test: Do not run `clean' in same $MAKE invocation as `all check'. Fixes test failure with parallel NetBSD `make -jN'. * tests/nobase.test: Be sure to create a directory before creating files in it. Fixes test failure with MAKE=`make -jN' for NetBSD make. This issue is hidden with parallel GNU make due to its parallel breadth first update order. * tests/parallel-tests3.test: Skip if $MAKE contains `-j', GNU make will use the environment variable $MAKE for recursion and thus run in parallel even if `$MAKE -j1' was used on the command line in the test. Also, after running the test proper, wait long enough so that background jobs have finished and there are no open files left when the cleanup code runs. Signed-off-by: Ralf Wildenhues --- diff --git a/ChangeLog b/ChangeLog index 5d872eea6..047a03276 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +2009-04-14 Ralf Wildenhues + + testsuite: parallel make fixes. + This patch fixes a couple of testsuite bugs exposed with + `MAKE=make\ -jN make check'. + * tests/libtoo10.test: Do not run `clean' in same $MAKE + invocation as `all check'. Fixes test failure with parallel + NetBSD `make -jN'. + * tests/nobase.test: Be sure to create a directory before + creating files in it. Fixes test failure with MAKE=`make -jN' + for NetBSD make. This issue is hidden with parallel GNU make + due to its parallel breadth first update order. + * tests/parallel-tests3.test: Skip if $MAKE contains `-j', + GNU make will use the environment variable $MAKE for recursion + and thus run in parallel even if `$MAKE -j1' was used on the + command line in the test. Also, after running the test proper, + wait long enough so that background jobs have finished and there + are no open files left when the cleanup code runs. + 2009-04-13 Ralf Wildenhues silent-rules reorganization, --enable-silent-rules switch. diff --git a/tests/libtoo10.test b/tests/libtoo10.test index ad245b00b..78a4628f3 100755 --- a/tests/libtoo10.test +++ b/tests/libtoo10.test @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2007 Free Software Foundation, Inc. +# Copyright (C) 2007, 2009 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 @@ -51,7 +51,8 @@ $ACLOCAL $AUTOMAKE --add-missing $AUTOCONF ./configure -$MAKE all check clean +$MAKE all check +$MAKE clean test ! -d src/.libs test ! -d src/_libs test ! -d check/.libs diff --git a/tests/nobase.test b/tests/nobase.test index 7ffc4894d..3dbc2b12c 100755 --- a/tests/nobase.test +++ b/tests/nobase.test @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2008 Free Software -# Foundation, Inc. +# Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009 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 @@ -55,6 +55,7 @@ generated_files = sub/base-gen.h sub/nobase-gen.h sub/base-gen.dat \ sub/nobase-gen.dat sub/base-gen.sh sub/nobase-gen.sh $(generated_files): + $(MKDIR_P) sub echo "generated file $@" > $@ CLEANFILES = $(generated_files) diff --git a/tests/parallel-tests3.test b/tests/parallel-tests3.test index 362f369c1..776000e93 100755 --- a/tests/parallel-tests3.test +++ b/tests/parallel-tests3.test @@ -20,6 +20,11 @@ required=GNUmake . ./defs-p || Exit 1 +# This test does not work well if $MAKE contains -j. +case $MAKE in +*\ -j*) Exit 77 ;; +esac + set -e cat >> configure.in << 'END' @@ -69,4 +74,11 @@ cd .. kill $! cat parallel/stdout test `grep -c PASS parallel/stdout` -eq 8 + +# Wait long enough so that there are no open files any more +# when the post-test cleanup runs. +$sleep +$sleep +$sleep +$sleep :