summaryrefslogtreecommitdiff
path: root/tests/scripts
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2007-08-15 13:53:53 +0000
committerPaul Smith <psmith@gnu.org>2007-08-15 13:53:53 +0000
commit19b6504f8a92ec9db6330976dba85804e9c18d6e (patch)
tree77e2083b69f3e020f68260352c51f5f41832d10d /tests/scripts
parentbb4d040fadcb76a8828eaf24b4f0557ec11f44fb (diff)
downloadgunmake-19b6504f8a92ec9db6330976dba85804e9c18d6e.tar.gz
Incorporate Icarus Sparry's fix for 3330 and 15919, and test cases.
One of our translations disappeared from the translations site so remove it. The fdl.texi file was changed to not contain any @node entries, so add some around it in make.texi.
Diffstat (limited to 'tests/scripts')
-rw-r--r--tests/scripts/features/parallelism14
-rw-r--r--tests/scripts/targets/SECONDARY64
2 files changed, 78 insertions, 0 deletions
diff --git a/tests/scripts/features/parallelism b/tests/scripts/features/parallelism
index 432c088..11102f2 100644
--- a/tests/scripts/features/parallelism
+++ b/tests/scripts/features/parallelism
@@ -127,6 +127,20 @@ mod_a.o mod_b.o:
', '-j2', '');
+# TEST #9 -- Savannah bugs 3330 and 15919
+# In earlier versions of make this will either give the wrong answer, or hang.
+
+utouch(-10, 'target');
+run_make_test('target: intermed ; touch $@
+
+.INTERMEDIATE: intermed
+intermed: | phony ; touch $@
+
+.PHONY: phony
+phony: ; : phony', '-rR -j', ': phony');
+unlink('target');
+
+
# Make sure that all jobserver FDs are closed if we need to re-exec the
# master copy.
#
diff --git a/tests/scripts/targets/SECONDARY b/tests/scripts/targets/SECONDARY
index cf580b5..c954ee9 100644
--- a/tests/scripts/targets/SECONDARY
+++ b/tests/scripts/targets/SECONDARY
@@ -121,5 +121,69 @@ all: version2',
unlink('version2');
+# TEST #9 -- Savannah bug #15919
+# The original fix for this bug caused a new bug, shown here.
+
+touch(qw(1.a 2.a));
+
+run_make_test('
+%.c : %.b ; cp $< $@
+%.b : %.a ; cp $< $@
+all : 1.c 2.c', '-rR -j',
+'cp 1.a 1.b
+cp 2.a 2.b
+cp 1.b 1.c
+cp 2.b 2.c
+rm 1.b 2.b');
+
+unlink(qw(1.a 2.a 1.c 2.c));
+
+# TEST #10 -- Savannah bug #15919
+touch('test.0');
+run_make_test('
+.SECONDARY : test.1 test.2 test.3
+
+test : test.4
+
+%.4 : %.int %.3 ; touch $@
+
+%.int : %.3 %.2 ; touch $@
+
+%.3 : | %.2 ; touch $@
+
+%.2 : %.1 ; touch $@
+
+%.1 : %.0 ; touch $@', '-rR -j 2',
+'touch test.1
+touch test.2
+touch test.3
+touch test.int
+touch test.4
+rm test.int');
+
+# After a touch of test.0 it should give the same output, except we don't need
+# to rebuild test.3 (order-only)
+sleep(1);
+touch('test.0');
+run_make_test(undef, '-rR -j 2',
+'touch test.1
+touch test.2
+touch test.int
+touch test.4
+rm test.int');
+
+# With both test.0 and test.3 updated it should still build everything except
+# test.3
+sleep(1);
+touch('test.0', 'test.3');
+run_make_test(undef, '-rR -j 2',
+'touch test.1
+touch test.2
+touch test.int
+touch test.4
+rm test.int');
+
+unlink(qw(test.0 test.1 test.2 test.3 test.4));
+
# This tells the test driver that the perl test script executed properly.
1;