From 1cf482840169260b5480ec91e5d9461127e6bbb2 Mon Sep 17 00:00:00 2001 From: Ralf Wildenhues Date: Tue, 14 Apr 2009 23:09:15 +0200 Subject: [PATCH] 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 --- ChangeLog | 19 +++++++++++++++++++ tests/libtoo10.test | 5 +++-- tests/nobase.test | 5 +++-- tests/parallel-tests3.test | 12 ++++++++++++ 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5d872ee..047a032 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 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 : -- 2.7.4