summaryrefslogtreecommitdiff
path: root/tests/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/scripts')
-rw-r--r--tests/scripts/features/implicit_prereq_eval64
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/scripts/features/implicit_prereq_eval b/tests/scripts/features/implicit_prereq_eval
new file mode 100644
index 0000000..f549a79
--- /dev/null
+++ b/tests/scripts/features/implicit_prereq_eval
@@ -0,0 +1,64 @@
+$description = "Test implicit rule prerequisite evaluation code.";
+
+$details = "The makefile created by this test has a set of implicit rule
+ pairs with the first rule usually not applying because its prerequisites
+ cannot be made and the second rule which should succeed.";
+
+open(MAKEFILE,"> $makefile");
+
+# The contents of the Makefile ...
+
+print MAKEFILE <<EOF;
+
+.PHONY: all
+
+all: case.1 case.2 case.3
+
+a: void
+
+# 1 - existing file
+#
+%.1: void
+ \@false
+
+%.1: $makefile
+ \@true
+
+
+# 2 - phony
+#
+%.2: void
+ \@false
+
+%.2: 2.phony
+ \@true
+
+.PHONY: 2.phony
+
+
+# 3 - implicit-phony
+#
+%.3: void
+ \@false
+
+%.3: 3.implicit-phony
+ \@true
+
+3.implicit-phony:
+
+EOF
+
+close(MAKEFILE);
+
+&run_make_with_options($makefile,
+ "",
+ &get_logfile,
+ 0);
+
+
+# This makefile doesn't produce anything except exit code.
+#
+&compare_output("",&get_logfile(1));
+
+# This tells the test driver that the perl test script executed properly.
+1;