Imported Upstream version 3.82
[platform/upstream/make.git] / tests / scripts / options / dash-n
1 #                                                                    -*-perl-*-
2 $description = "Test the -n option.\n";
3
4 $details = "Try various uses of -n and ensure they all give the correct results.\n";
5
6 open(MAKEFILE, "> $makefile");
7
8 # The Contents of the MAKEFILE ...
9
10 print MAKEFILE <<'EOMAKE';
11
12 final: intermediate ; echo >> $@
13 intermediate: orig ; echo >> $@
14
15 EOMAKE
16
17 close(MAKEFILE);
18
19 &touch('orig');
20
21 # TEST 0
22
23 &run_make_with_options($makefile, "", &get_logfile);
24 $answer = "echo >> intermediate\necho >> final\n";
25 &compare_output($answer, &get_logfile(1));
26
27 # TEST 1
28
29 &run_make_with_options($makefile, "-Worig -n", &get_logfile);
30 $answer = "echo >> intermediate\necho >> final\n";
31 &compare_output($answer, &get_logfile(1));
32
33 unlink('orig', 'intermediate', 'final');
34
35 # We consider the actual updated timestamp of targets with all
36 # recursive commands, even with -n.
37
38 $makefile2 = &get_tmpfile;
39
40 open(MAKEFILE, "> $makefile2");
41
42 print MAKEFILE <<'EOF';
43 .SUFFIXES:
44 BAR =     # nothing
45 FOO = +$(BAR)
46 a: b; echo > $@
47 b: c; $(FOO)
48 EOF
49
50 close(MAKEFILE);
51
52 &utouch(-20, 'b');
53 &utouch(-10, 'a');
54 &touch('c');
55
56 # TEST 2
57
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));
61
62 # TEST 3
63
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));
67
68 unlink('a', 'b', 'c');
69
70 1;