diff options
author | Dmitry Goncharov <dgoncharov@users.sf.net> | 2022-10-21 19:35:09 -0400 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2022-10-22 10:02:41 -0400 |
commit | 54214176b124487d32c3ee02104135b0329579a1 (patch) | |
tree | 7069d0778448b99a95926b875c053b784bdcec3d /tests | |
parent | c2f92c980fe1c3b0f9db4663a61727752ecc6757 (diff) | |
download | make-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-sync | 6 | ||||
-rw-r--r-- | tests/scripts/features/temp_stdin | 6 |
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); |