Ensure that -n takes precedence over -t.
[make.git] / tests / scripts / options / dash-n
blob248e0c87465cb86bf9365e91367f66e5d31d2d51
1 #                                                                    -*-perl-*-
2 $description = "Test the -n option.\n";
4 $details = "Try various uses of -n and ensure they all give the correct results.\n";
6 open(MAKEFILE, "> $makefile");
8 # The Contents of the MAKEFILE ...
10 print MAKEFILE <<'EOMAKE';
12 final: intermediate ; echo >> $@
13 intermediate: orig ; echo >> $@
15 EOMAKE
17 close(MAKEFILE);
19 &touch('orig');
21 # TEST 0
23 &run_make_with_options($makefile, "", &get_logfile);
24 $answer = "echo >> intermediate\necho >> final\n";
25 &compare_output($answer, &get_logfile(1));
27 # TEST 1
29 &run_make_with_options($makefile, "-Worig -n", &get_logfile);
30 $answer = "echo >> intermediate\necho >> final\n";
31 &compare_output($answer, &get_logfile(1));
33 unlink('orig', 'intermediate', 'final');
35 # We consider the actual updated timestamp of targets with all
36 # recursive commands, even with -n.
38 $makefile2 = &get_tmpfile;
40 open(MAKEFILE, "> $makefile2");
42 print MAKEFILE <<'EOF';
43 .SUFFIXES:
44 BAR =     # nothing
45 FOO = +$(BAR)
46 a: b; echo > $@
47 b: c; $(FOO)
48 EOF
50 close(MAKEFILE);
52 &utouch(-20, 'b');
53 &utouch(-10, 'a');
54 &touch('c');
56 # TEST 2
58 &run_make_with_options($makefile2, "", &get_logfile);
59 $answer = "$make_name: `a' is up to date.\n";
60 &compare_output($answer, &get_logfile(1));
62 # TEST 3
64 &run_make_with_options($makefile2, "-n", &get_logfile);
65 $answer = "$make_name: `a' is up to date.\n";
66 &compare_output($answer, &get_logfile(1));
68 # TEST 4
70 unlink(qw(a b));
72 &run_make_with_options($makefile2, "-t -n", &get_logfile);
74 open(DASH_N_LOG, ">>" . &get_logfile(1));
75 print DASH_N_LOG "a exists but should not!\n" if -e 'a';
76 print DASH_N_LOG "b exists but should not!\n" if -e 'b';
77 close(DASH_N_LOG);
79 &compare_output("touch b\ntouch a\n", &get_logfile(1));
81 # CLEANUP
83 unlink(qw(a b c));