diff options
author | Paul Smith <psmith@gnu.org> | 2005-06-25 18:57:28 +0000 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2005-06-25 18:57:28 +0000 |
commit | 978819e1d6e9354b5b20d15c875bef98579873ae (patch) | |
tree | e601b286b4cd0ceb5cace61bea3d1bc6074480b3 /tests | |
parent | 467115baae38eba41b3800b4e0e84afb7f3ec99b (diff) | |
download | gunmake-978819e1d6e9354b5b20d15c875bef98579873ae.tar.gz |
Add a new variable: MAKE_RESTARTS, to count how many times make has re-exec'd.
When rebuilding makefiles, unset -B if MAKE_RESTARTS is >0.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ChangeLog | 7 | ||||
-rw-r--r-- | tests/scripts/options/dash-B | 36 | ||||
-rw-r--r-- | tests/scripts/variables/MAKE_RESTARTS | 62 |
3 files changed, 104 insertions, 1 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog index 2e22195..90fbf7d 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,10 @@ +2005-06-25 Paul D. Smith <psmith@gnu.org> + + * scripts/variables/MAKE_RESTARTS: New file: test the + MAKE_RESTARTS variable. + * scripts/options/dash-B: Test re-exec doesn't loop infinitely. + Tests fix for Savannah bug #7566. + 2005-06-12 Paul D. Smith <psmith@gnu.org> * scripts/misc/close_stdout: Add a test for Savannah bug #1328. diff --git a/tests/scripts/options/dash-B b/tests/scripts/options/dash-B index 4ac377f..864a01f 100644 --- a/tests/scripts/options/dash-B +++ b/tests/scripts/options/dash-B @@ -31,9 +31,43 @@ utouch(1000, 'foo'); run_make_test(undef, '', "#MAKE#: Nothing to be done for `all'."); run_make_test(undef, '-B', 'cp bar.x foo'); - # Clean up rmfiles('bar.x', 'foo'); +# Test -B with the re-exec feature: we don't want to re-exec forever +# Savannah bug # 7566 + +run_make_test(' +all: ; @: +$(info MAKE_RESTARTS=$(MAKE_RESTARTS)) +include foo.x +foo.x: ; @touch $@ +', + '-B', 'MAKE_RESTARTS= +#MAKEFILE#:4: foo.x: No such file or directory +MAKE_RESTARTS=1'); + +rmfiles('foo.x'); + +# Test -B with the re-exec feature: we DO want -B in the "normal" part of the +# makefile. + +&touch('blah.x'); + +run_make_test(' +all: blah.x ; @echo $@ +$(info MAKE_RESTARTS=$(MAKE_RESTARTS)) +include foo.x +foo.x: ; @touch $@ +blah.x: ; @echo $@ +', + '-B', 'MAKE_RESTARTS= +#MAKEFILE#:4: foo.x: No such file or directory +MAKE_RESTARTS=1 +blah.x +all'); + +rmfiles('foo.x', 'blah.x'); + 1; diff --git a/tests/scripts/variables/MAKE_RESTARTS b/tests/scripts/variables/MAKE_RESTARTS new file mode 100644 index 0000000..53ab738 --- /dev/null +++ b/tests/scripts/variables/MAKE_RESTARTS @@ -0,0 +1,62 @@ +# -*-perl-*- + +$description = "Test the MAKE_RESTARTS variable."; + +# Test basic capability + +run_make_test(' +all: ; @: +$(info MAKE_RESTARTS=$(MAKE_RESTARTS)) +include foo.x +foo.x: ; @touch $@ +', + '', 'MAKE_RESTARTS= +#MAKEFILE#:4: foo.x: No such file or directory +MAKE_RESTARTS=1'); + +rmfiles('foo.x'); + +# Test multiple restarts + +run_make_test(' +all: ; @: +$(info MAKE_RESTARTS=$(MAKE_RESTARTS)) +include foo.x +foo.x: ; @echo "include bar.x" > $@ +bar.x: ; @touch $@ +', + '', 'MAKE_RESTARTS= +#MAKEFILE#:4: foo.x: No such file or directory +MAKE_RESTARTS=1 +foo.x:1: bar.x: No such file or directory +MAKE_RESTARTS=2'); + +rmfiles('foo.x', 'bar.x'); + +# Test multiple restarts and make sure the variable is cleaned up + +run_make_test(' +recurse: + @echo recurse MAKE_RESTARTS=$$MAKE_RESTARTS + @$(MAKE) -f #MAKEFILE# all +all: + @echo all MAKE_RESTARTS=$$MAKE_RESTARTS +$(info MAKE_RESTARTS=$(MAKE_RESTARTS)) +include foo.x +foo.x: ; @echo "include bar.x" > $@ +bar.x: ; @touch $@ +', + '', "MAKE_RESTARTS= +#MAKEFILE#:8: foo.x: No such file or directory +MAKE_RESTARTS=1 +foo.x:1: bar.x: No such file or directory +MAKE_RESTARTS=2 +recurse MAKE_RESTARTS= +MAKE_RESTARTS= +#MAKE#[1]: Entering directory `#PWD#' +all MAKE_RESTARTS= +#MAKE#[1]: Leaving directory `#PWD#'"); + +rmfiles('foo.x', 'bar.x'); + +1; |