Dmitry Goncharov wrote: > On Wed, Oct 19, 2022 at 2:33 AM Frank Heckenbach > <f.heckenb...@fh-soft.de> wrote: > > features/temp_stdin ..................................... FAILED (6/7 > > passed) > > [...] > > % cat tests/work/features/temp_stdin.diff.5 > > *** work/features/temp_stdin.base.5 Wed Oct 19 06:05:22 2022 > > --- work/features/temp_stdin.log.5 Wed Oct 19 06:05:22 2022 > > *************** > > *** 0 **** > > --- 1 ---- > > + make: *** [work/features/temp_stdin.mk.5:5: bye.mk] Terminated > > > > The test failure doesn't occur every time, only about 1 in 6 times. > > > This test has a recipe to send sigterm to make. So, in your testing, > occasionally this output > "make: *** [work/features/temp_stdin.mk.5:5: bye.mk] Terminated" ends > up in the log file, but > most of the time it does not. Looks like there is a race here between > sigterm and make writing to the log file.
Indeed, adding a sleep after kill seems to ensure the message is always written to the log file. I put a very long sleep here; it doesn't really matter since it's killed together with make, but there may be a more elegant way. --- make-4.3.91/tests/scripts/features/temp_stdin +++ make-4.3.91/tests/scripts/features/temp_stdin @@ -69,9 +69,9 @@ include bye.mk pid:=$(shell echo $$PPID) all:; -bye.mk: force; @kill -TERM $(pid) +bye.mk: force; @kill -TERM $(pid); sleep 1000 force: -!, '-f-', "", POSIX::SIGTERM); +!, '-f-', "make: \*\*\* \[work/features/temp_stdin.mk.5:5: bye.mk\] Terminated", POSIX::SIGTERM); } unlink($fout);