summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/ChangeLog6
-rw-r--r--tests/scripts/features/parallelism29
2 files changed, 35 insertions, 0 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 67cf900..e1241cf 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,9 @@
+2006-03-19 Paul D. Smith <psmith@gnu.org>
+
+ * scripts/features/parallelism: Test that the jobserver is
+ properly managed when we have to re-exec the master instance of
+ make.
+
2006-03-17 Boris Kolpackov <boris@kolpackov.net>
* scripts/features/statipattrules: Add tests for bug #16053.
diff --git a/tests/scripts/features/parallelism b/tests/scripts/features/parallelism
index 60ae55b..528c653 100644
--- a/tests/scripts/features/parallelism
+++ b/tests/scripts/features/parallelism
@@ -126,4 +126,33 @@ mod_a.o mod_b.o:
', '-j2', '');
+# Make sure that all jobserver FDs are closed if we need to re-exec the
+# master copy.
+
+run_make_test('
+submake: ; @$(MAKE) --no-print-directory -f #MAKEFILE# fdprint 5>output
+
+dependfile: ; @echo FOO=bar > $@
+
+INCL := true
+
+FOO=foo
+ifeq ($(INCL),true)
+-include dependfile
+endif
+
+fdprint: ; @echo hi >&5 && echo "$(FOO)"
+
+recurse: ; @$(MAKE) --no-print-directory -f #MAKEFILE# submake INCL=true',
+ '-j2',
+ 'bar');
+
+unlink('dependfile');
+
+
+# Do it again, this time where the include is done by the non-master make.
+run_make_test(undef, '-j2 recurse INCL=false', 'bar');
+
+unlink('dependfile');
+
1;