I'm pushing this patch to next to fix some genuine bugs in the testsuite. Cheers, Ralf
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. diff --git a/tests/libtoo10.test b/tests/libtoo10.test index ad245b0..78a4628 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 7ffc489..3dbc2b1 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 362f369..776000e 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 :