summaryrefslogtreecommitdiffstats
path: root/src/kmk/tests/scripts/features/echoing
diff options
context:
space:
mode:
Diffstat (limited to 'src/kmk/tests/scripts/features/echoing')
-rw-r--r--src/kmk/tests/scripts/features/echoing64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/kmk/tests/scripts/features/echoing b/src/kmk/tests/scripts/features/echoing
new file mode 100644
index 0000000..40debf5
--- /dev/null
+++ b/src/kmk/tests/scripts/features/echoing
@@ -0,0 +1,64 @@
+# -*-perl-*-
+$description = "The following test creates a makefile to test command
+echoing. It tests that when a command line starts with
+a '\@', the echoing of that line is suppressed. It also
+tests the -n option which tells make to ONLY echo the
+commands and no execution happens. In this case, even
+the commands with '\@' are printed. Lastly, it tests the
+-s flag which tells make to prevent all echoing, as if
+all commands started with a '\@'.";
+
+$details = "This test is similar to the 'clean' test except that a '\@' has
+been placed in front of the delete command line. Four tests
+are run here. First, make is run normally and the first echo
+command should be executed. In this case there is no '\@' so
+we should expect make to display the command AND display the
+echoed message. Secondly, make is run with the clean target,
+but since there is a '\@' at the beginning of the command, we
+expect no output; just the deletion of a file which we check
+for. Third, we give the clean target again except this time
+we give make the -n option. We now expect the command to be
+displayed but not to be executed. In this case we need only
+to check the output since an error message would be displayed
+if it actually tried to run the delete command again and the
+file didn't exist. Lastly, we run the first test again with
+the -s option and check that make did not echo the echo
+command before printing the message.\n";
+
+$example = "EXAMPLE_FILE";
+
+touch($example);
+
+# TEST #1
+# -------
+
+run_make_test("
+all:
+\techo This makefile did not clean the dir... good
+clean:
+\t\@$delete_command $example\n",
+ '', 'echo This makefile did not clean the dir... good
+This makefile did not clean the dir... good');
+
+# TEST #2
+# -------
+
+run_make_test(undef, 'clean', '');
+if (-f $example) {
+ $test_passed = 0;
+ unlink($example);
+}
+
+# TEST #3
+# -------
+
+run_make_test(undef, '-n clean', "$delete_command $example\n");
+
+
+# TEST #4
+# -------
+
+run_make_test(undef, '-s', "This makefile did not clean the dir... good\n");
+
+
+1;