summaryrefslogtreecommitdiff
path: root/tests/scripts/features/jobserver
diff options
context:
space:
mode:
Diffstat (limited to 'tests/scripts/features/jobserver')
-rw-r--r--tests/scripts/features/jobserver36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/scripts/features/jobserver b/tests/scripts/features/jobserver
index e12facf0..a2f06ee8 100644
--- a/tests/scripts/features/jobserver
+++ b/tests/scripts/features/jobserver
@@ -132,6 +132,42 @@ all a: ; @echo $@
'--jobserver-style=foo -j8',
"#MAKE#: *** unknown jobserver auth style 'foo'. Stop.", 512);
+# Ensure the jobserver is not disabled even if only later commands are recursive
+
+run_make_test(q!
+.RECIPEPREFIX := >
+all:
+> @echo $@ 1
+> @echo $@ 2
+> @$(MAKE) -f #MAKEFILE# recurse
+
+recurse: ; @echo $@
+!,
+ "$np -j8", "all 1\nall 2\nrecurse");
+
+if ($port_type ne 'W32') {
+ run_make_test(undef, "$np --jobserver-style=pipe -j8",
+ "all 1\nall 2\nrecurse");
+}
+
+# And with + instead of $(MAKE)
+
+run_make_test(q!
+.RECIPEPREFIX := >
+all:
+> @echo $@ 1
+> @echo $@ 2
+> @+#MAKEPATH# -f #MAKEFILE# recurse
+
+recurse: ; @echo $@
+!,
+ "$np -j8", "all 1\nall 2\nrecurse");
+
+if ($port_type ne 'W32') {
+ run_make_test(undef, "$np --jobserver-style=pipe -j8",
+ "all 1\nall 2\nrecurse");
+}
+
if (exists $FEATURES{'jobserver-fifo'}) {
# sv 62908.
# Test that when mkfifo fails, make switches to pipe and succeeds.