From: Dmitry Goncharov Date: Fri, 21 Oct 2022 23:35:09 +0000 (-0400) Subject: [SV 63243] tests: Avoid SIGTERM racing with make error messages X-Git-Tag: 4.3.92~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54214176b124487d32c3ee02104135b0329579a1;p=thirdparty%2Fmake.git [SV 63243] tests: Avoid SIGTERM racing with make error messages Original patch from Frank Heckenbach . * 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. --- 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);