3 $description = "Test the behaviour of the .NOTINTERMEDIATE target.";
6 Test the behavior of the .NOTINTERMEDIATE special target.\n";
12 # Test 1. A file which matches a .NOTINTERMEDIATE pattern is not intermediate.
17 .NOTINTERMEDIATE: %.q %.x
18 !, '', "touch hello.z\n");
20 # Test 2. .NOTINTERMEDIATE: %.q pattern has no effect on hello.x.
27 !, '', "#MAKE#: 'hello.z' is up to date.\n");
29 # Test 3. A file which is a prereq of .NOTINTERMEDIATE is not intermediate.
34 .NOTINTERMEDIATE: %.q hello.x
35 !, '', "touch hello.z\n");
37 # Test 4. .NOTINTERMEDIATE without prerequisites makes everything
45 !, '', "touch hello.z\n");
47 # Test 5. Same file cannot be intermediate and notintermediate.
49 .INTERMEDIATE: hello.x
50 .NOTINTERMEDIATE: hello.x
51 !, '', "#MAKE#: *** hello.x cannot be both .NOTINTERMEDIATE and .INTERMEDIATE. Stop.\n", 512);
53 # Test 6. Same file cannot be secondary and notintermediate.
56 .NOTINTERMEDIATE: hello.x
57 !, '', "#MAKE#: *** hello.x cannot be both .NOTINTERMEDIATE and .SECONDARY. Stop.\n", 512);
59 # Test 7. All .SECONDARY and all .NOTINTERMEDIATE are mutually exclusive.
63 !, '', "#MAKE#: *** .NOTINTERMEDIATE and .SECONDARY are mutually exclusive. Stop.\n", 512);
65 # Test 8. .INTERMEDIATE file takes priority over a .NOTINTERMEDIATE pattern.
71 .INTERMEDIATE: hello.x
72 .NOTINTERMEDIATE: %.q %.x
73 !, '', "#MAKE#: 'hello.z' is up to date.\n");
75 # Test 9. Everything is notintermediate, except hello.x.
81 .INTERMEDIATE: hello.x
83 !, '', "#MAKE#: 'hello.z' is up to date.\n");
85 # Test 10. Everything is notintermediate, except hello.x.
93 !, '', "#MAKE#: 'hello.z' is up to date.\n");
95 # Test 11. Everything is secondary, except %.q, hello.x.
101 .NOTINTERMEDIATE: %.q hello.x
103 !, '', "touch hello.z\n");
105 # Test 12. Everything is secondary, except %.q %.x.
111 .NOTINTERMEDIATE: %.q %.x
113 !, '', "touch hello.z\n");
118 # This tells the test driver that the perl test script executed properly.