]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
testsuite: parallel make fixes.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Tue, 14 Apr 2009 21:09:15 +0000 (23:09 +0200)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Tue, 14 Apr 2009 21:39:43 +0000 (23:39 +0200)
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 <Ralf.Wildenhues@gmx.de>
ChangeLog
tests/libtoo10.test
tests/nobase.test
tests/parallel-tests3.test

index 5d872eea687681051fc615102b9403f7ba2d374b..047a03276b5d3e7ed2c32a82f3796920f8a0ebab 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2009-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       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  <Ralf.Wildenhues@gmx.de>
 
        silent-rules reorganization, --enable-silent-rules switch.
index ad245b00bebb82d1719926323dc610d2603bf6d5..78a4628f317106e94feb185d9fea7a9663fb5c02 100755 (executable)
@@ -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
index 7ffc4894d18fed4738961d05a4ebfa22432bc912..3dbc2b12cbae64e9588827911539325d0d4bfebe 100755 (executable)
@@ -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)
index 362f369c10ff2f80f26da267df6512388e882a80..776000e93e1e1489deacd2a1ab1b00a693f47478 100755 (executable)
 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
 :