diff options
Diffstat (limited to 'tests/scripts/options/dash-n')
-rw-r--r-- | tests/scripts/options/dash-n | 80 |
1 files changed, 55 insertions, 25 deletions
diff --git a/tests/scripts/options/dash-n b/tests/scripts/options/dash-n index de19f42..dfed419 100644 --- a/tests/scripts/options/dash-n +++ b/tests/scripts/options/dash-n @@ -3,37 +3,24 @@ $description = "Test the -n option.\n"; $details = "Try various uses of -n and ensure they all give the correct results.\n"; -open(MAKEFILE, "> $makefile"); - -# The Contents of the MAKEFILE ... - -print MAKEFILE <<'EOMAKE'; +touch('orig'); +run_make_test(q! final: intermediate ; echo >> $@ intermediate: orig ; echo >> $@ - -EOMAKE - -close(MAKEFILE); - -&touch('orig'); - -# TEST 0 - -&run_make_with_options($makefile, "", &get_logfile); -$answer = "echo >> intermediate\necho >> final\n"; -&compare_output($answer, &get_logfile(1)); +!, + '', "echo >> intermediate\necho >> final\n"); # TEST 1 -&run_make_with_options($makefile, "-Worig -n", &get_logfile); -$answer = "echo >> intermediate\necho >> final\n"; -&compare_output($answer, &get_logfile(1)); +run_make_test(undef, '-Worig -n', "echo >> intermediate\necho >> final\n"); -unlink('orig', 'intermediate', 'final'); +rmfiles(qw(orig intermediate final)); # We consider the actual updated timestamp of targets with all -# recursive commands, even with -n. +# recursive commands, even with -n. Switching this to the new model +# is non-trivial because we use a trick below to change the log content +# before we compare it ... $makefile2 = &get_tmpfile; @@ -56,15 +43,58 @@ close(MAKEFILE); # TEST 2 &run_make_with_options($makefile2, "", &get_logfile); -$answer = "$make_name: `a' is up to date.\n"; +$answer = "$make_name: 'a' is up to date.\n"; &compare_output($answer, &get_logfile(1)); # TEST 3 &run_make_with_options($makefile2, "-n", &get_logfile); -$answer = "$make_name: `a' is up to date.\n"; +$answer = "$make_name: 'a' is up to date.\n"; +&compare_output($answer, &get_logfile(1)); + +# TEST 4 + +unlink(qw(a b)); + +&run_make_with_options($makefile2, "-t -n", &get_logfile); + +open(DASH_N_LOG, ">>" . &get_logfile(1)); +print DASH_N_LOG "a exists but should not!\n" if -e 'a'; +print DASH_N_LOG "b exists but should not!\n" if -e 'b'; +close(DASH_N_LOG); + +&compare_output("touch b\ntouch a\n", &get_logfile(1)); + +# CLEANUP + +unlink(qw(a b c)); + +# Ensure -n continues to be included with recursive/re-execed make +# See Savannah bug #38051 + +$topmake = &get_tmpfile; +$submake = &get_tmpfile; + +open(MAKEFILE, "> $topmake"); +print MAKEFILE <<"EOF"; +foo: ; \@\$(MAKE) -f "$submake" bar +EOF +close(MAKEFILE); + + +# The bar target should print what would happen, but not actually run +open(MAKEFILE, "> $submake"); +print MAKEFILE <<'EOF'; +inc: ; touch $@ +-include inc +bar: ; @echo $(strip $(MAKEFLAGS)) +EOF +close(MAKEFILE); + +&run_make_with_options($topmake, '-n --no-print-directory', &get_logfile); +$answer = "$make_path -f \"$submake\" bar\ntouch inc\necho n --no-print-directory\n"; &compare_output($answer, &get_logfile(1)); -unlink('a', 'b', 'c'); +unlink('inc'); 1; |