diff options
author | Paul Smith <psmith@gnu.org> | 2007-08-15 13:53:53 +0000 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2007-08-15 13:53:53 +0000 |
commit | 19b6504f8a92ec9db6330976dba85804e9c18d6e (patch) | |
tree | 77e2083b69f3e020f68260352c51f5f41832d10d /tests | |
parent | bb4d040fadcb76a8828eaf24b4f0557ec11f44fb (diff) | |
download | gunmake-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')
-rw-r--r-- | tests/ChangeLog | 13 | ||||
-rw-r--r-- | tests/scripts/features/parallelism | 14 | ||||
-rw-r--r-- | tests/scripts/targets/SECONDARY | 64 |
3 files changed, 91 insertions, 0 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog index 6e53dc7..9a515a3 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,16 @@ +2007-08-15 Paul Smith <psmith@gnu.org> + + These test cases were contributed by + Icarus Sparry <savannah@icarus.freeuk.com> and J. David Bryan for + Savannah bugs #3330 and #15919. + + * scripts/targets/SECONDARY: Add tests for Savannah bugs 3330 and + 15919. + + * scripts/features/parallelism: Add tests for wrong answer/hang + combining INTERMEDIATE, order-only prereqs, and parallelism. + See Savannah bugs 3330 and 15919. + 2007-07-13 Paul Smith <psmith@gnu.org> Install a timeout so tests can never loop infinitely. 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; |