summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDmitry Goncharov <dgoncharov@users.sf.net>2022-10-21 19:35:09 -0400
committerPaul Smith <psmith@gnu.org>2022-10-22 10:02:41 -0400
commit54214176b124487d32c3ee02104135b0329579a1 (patch)
tree7069d0778448b99a95926b875c053b784bdcec3d /tests
parentc2f92c980fe1c3b0f9db4663a61727752ecc6757 (diff)
downloadmake-git-54214176b124487d32c3ee02104135b0329579a1.tar.gz
[SV 63243] tests: Avoid SIGTERM racing with make error messages
Original patch from Frank Heckenbach <f.heckenbach@fh-soft.de>. * tests/scripts/features/output-sync: Introduce a sleep to let make write its error message. Some systems use different names for SIGTERM so match with a regex. * tests/scripts/features/temp_stdin: Ditto.
Diffstat (limited to 'tests')
-rw-r--r--tests/scripts/features/output-sync6
-rw-r--r--tests/scripts/features/temp_stdin6
2 files changed, 8 insertions, 4 deletions
diff --git a/tests/scripts/features/output-sync b/tests/scripts/features/output-sync
index 292ef8ff..b175b820 100644
--- a/tests/scripts/features/output-sync
+++ b/tests/scripts/features/output-sync
@@ -352,10 +352,12 @@ use POSIX ();
# Test that make removes temporary files, even when a signal is received.
# The general test_driver postprocessing will ensure the temporary file used
# to synchronize output and the jobserver fifo are both removed.
+# sleep is needed to let make write its "... Terminated" message to the log
+# file.
run_make_test(q!
pid:=$(shell echo $$PPID)
-all:; @kill -TERM $(pid)
-!, '-O -j2', "", POSIX::SIGTERM);
+all:; @kill -TERM $(pid) && sleep 16
+!, '-O -j2', '/#MAKE#: \*\*\* \[#MAKEFILE#:3: all] Terminated/', POSIX::SIGTERM);
}
unlink($fout);
diff --git a/tests/scripts/features/temp_stdin b/tests/scripts/features/temp_stdin
index 32a68731..b4aa60a8 100644
--- a/tests/scripts/features/temp_stdin
+++ b/tests/scripts/features/temp_stdin
@@ -62,6 +62,8 @@ use POSIX ();
# include bye.mk and bye.mk: rule is needed to cause make to keep the temporary
# file for re-exec. Without re-exec make will remove the file before the signal
# arrives.
+# sleep is needed to let make write its "... Terminated" message to the log
+# file.
&utouch(-600, 'bye.mk');
close(STDIN);
open(STDIN, "<", 'input.mk') || die "$0: cannot open input.mk for reading: $!";
@@ -69,9 +71,9 @@ run_make_test(q!
include bye.mk
pid:=$(shell echo $$PPID)
all:;
-bye.mk: force; @kill -TERM $(pid)
+bye.mk: force; @kill -TERM $(pid) && sleep 16
force:
-!, '-f-', "", POSIX::SIGTERM);
+!, '-f-', '/#MAKE#: \*\*\* \[#MAKEFILE#:5: bye.mk] Terminated/', POSIX::SIGTERM);
}
unlink($fout);