From 1dd9ed1c0537cb2583e1de8367994560ad1470aa Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Sat, 25 Jun 2005 20:00:24 +0000 Subject: Fix -W foo yielding infinite recursion in some cases of re-exec. Added a -W test suite. --- tests/scripts/options/dash-W | 57 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/scripts/options/dash-W (limited to 'tests/scripts/options/dash-W') diff --git a/tests/scripts/options/dash-W b/tests/scripts/options/dash-W new file mode 100644 index 0000000..9a12d9a --- /dev/null +++ b/tests/scripts/options/dash-W @@ -0,0 +1,57 @@ +# -*-perl-*- + +$description = "Test make -W (what if) option.\n"; + +# Basic build + +run_make_test(' +a.x: b.x +a.x b.x: ; touch $@ +', + '', "touch b.x\ntouch a.x"); + +# Run it again: nothing should happen + +run_make_test(undef, '', "#MAKE#: `a.x' is up to date."); + +# Now run it with -W b.x: should rebuild a.x + +run_make_test(undef, '-W b.x', 'touch a.x'); + +# Put the timestamp for a.x into the future; it should still be remade. + +utouch(1000, 'a.x'); +run_make_test(undef, '', "#MAKE#: `a.x' is up to date."); +run_make_test(undef, '-W b.x', 'touch a.x'); + +# Clean up + +rmfiles('a.x', 'b.x'); + +# Test -W with the re-exec feature: we don't want to re-exec forever +# Savannah bug # 7566 + +# First set it up with a normal build + +run_make_test(' +all: baz.x ; @: +include foo.x +foo.x: bar.x + @echo "\$$(info restarts=\$$(MAKE_RESTARTS))" > $@ + @echo "touch $@" +bar.x: ; touch $@ +baz.x: bar.x ; @echo "touch $@" +', + '', '#MAKEFILE#:3: foo.x: No such file or directory +touch bar.x +touch foo.x +restarts=1 +touch baz.x'); + +# Now run with -W bar.x + +run_make_test(undef, '-W bar.x', "restarts=\ntouch foo.x\nrestarts=1\ntouch baz.x"); + +rmfiles('foo.x', 'bar.x'); + +1; -- cgit v1.2.3