summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2023-02-26 12:43:27 -0500
committerPaul Smith <psmith@gnu.org>2023-02-26 13:46:02 -0500
commit8093e2eee3390e6b250c3ae5bfeb5b4a4196d2e2 (patch)
tree4220955507b466a5f24c103c14a45080385cf8c8
parent74dab224b33b5fe8a96ff3b6baaea4e7dbf8f753 (diff)
downloadmake-git-8093e2eee3390e6b250c3ae5bfeb5b4a4196d2e2.tar.gz
* tests/scripts/options/dash-l: Simplify the test via the helper
* tests/thelp.pl: Add "exist" and "noexist" operators.
-rw-r--r--tests/scripts/options/dash-l17
-rwxr-xr-xtests/thelp.pl36
2 files changed, 31 insertions, 22 deletions
diff --git a/tests/scripts/options/dash-l b/tests/scripts/options/dash-l
index d1e60494..a89da78c 100644
--- a/tests/scripts/options/dash-l
+++ b/tests/scripts/options/dash-l
@@ -20,32 +20,27 @@ also specified on the command line.";
$port_type eq 'W32' and return -1;
open(MAKEFILE,"> $makefile");
-printf MAKEFILE q,
-define test
-if [ ! -f test-file ]; then \
- echo >> test-file; sleep 2; %s test-file; \
-else \
- echo $@ FAILED; \
-fi
-endef
+printf MAKEFILE subst_make_string(q!
+test = #HELPER# noexist test-file file test-file sleep 2 rm test-file
all : ONE TWO THREE
ONE : ; @$(test)
TWO : ; @$(test)
THREE : ; @$(test)
-,, $CMD_rmfile;
+!);
close(MAKEFILE);
+my $ans = "noexist test-file\nfile test-file\nsleep 2\nrm test-file\n";
$mkoptions = "-l 0.0001";
$mkoptions .= " -j 4" if ($parallel_jobs);
# We have to wait longer than the default (5s).
-&run_make_with_options($makefile, $mkoptions, &get_logfile, 0, 8);
+&run_make_with_options($makefile, $mkoptions, &get_logfile, 0, 10);
$slurp = &read_file_into_string(&get_logfile(1));
if ($slurp =~ /cannot enforce load limit/) {
return -1;
}
-&compare_output("", &get_logfile(1));
+&compare_output("$ans$ans$ans", &get_logfile(1));
1;
diff --git a/tests/thelp.pl b/tests/thelp.pl
index 55650521..da042aa4 100755
--- a/tests/thelp.pl
+++ b/tests/thelp.pl
@@ -8,17 +8,19 @@
# Each step consists of an operator and argument.
#
# It supports the following operators:
-# out <word> : echo <word> to stdout with a newline
-# raw <word> : echo <word> to stdout without adding anything
-# env <word> : echo the value of the env.var. <word>, or "<unset>"
-# file <word> : echo <word> to stdout AND create the file <word>
-# dir <word> : echo <word> to stdout AND create the directory <word>
-# rm <word> : echo <word> to stdout AND delete the file/directory <word>
-# wait <word> : wait for a file named <word> to exist
-# tmout <secs> : Change the timeout for waiting. Default is 4 seconds.
-# sleep <secs> : Sleep for <secs> seconds then echo <secs>
-# term <pid> : send SIGTERM to PID <pid>
-# fail <err> : echo <err> to stdout then exit with error code err
+# out <word> : echo <word> to stdout with a newline
+# raw <word> : echo <word> to stdout without adding anything
+# env <word> : echo the value of the env.var. <word>, or "<unset>"
+# file <word> : echo <word> to stdout AND create the file <word>
+# dir <word> : echo <word> to stdout AND create the directory <word>
+# rm <word> : echo <word> to stdout AND delete the file/directory <word>
+# wait <word> : wait for a file named <word> to exist
+# exist <word> : echo <word> AND fail if a file named <word> doesn't exist
+# noexist <word> : echo <word> AND fail if a file named <word> exists
+# tmout <secs> : Change the timeout for waiting. Default is 4 seconds.
+# sleep <secs> : Sleep for <secs> seconds then echo <secs>
+# term <pid> : send SIGTERM to PID <pid>
+# fail <err> : echo <err> to stdout then exit with error code err
#
# If given -q only the "out", "raw", and "env" commands generate output.
@@ -60,6 +62,18 @@ sub op {
return 1;
}
+ if ($op eq 'exist') {
+ -f "$nm" || die "$nm: file should exist: $!\n";
+ print "exist $nm\n" unless $quiet;
+ return 1
+ }
+
+ if ($op eq 'noexist') {
+ -f "$nm" && die "$nm: file exists\n";
+ print "noexist $nm\n" unless $quiet;
+ return 1
+ }
+
# Show the output before creating the directory
if ($op eq 'dir') {
print "dir $nm\n" unless $quiet;