mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-11-24 20:20:35 +00:00
[SV 63315] tests: Simplify TERM signaling
Tests that try to kill the make process were not behaving as expected on OpenBSD: the signal was sent from make to its children but the sleep didn't die. Something odd about the way the shell treats TERM. To reduce platform dependencies add "term" to the helper tool and run that instead of kill / sleep. * tests/thelp.pl: Add a new operation "term" that takes a PID. * tests/scripts/features/output-sync: Use it. * tests/scripts/features/temp_stdin: Ditto.
This commit is contained in:
parent
e80ce6fc90
commit
deb4ff272a
3 changed files with 9 additions and 2 deletions
|
@ -360,7 +360,7 @@ use POSIX ();
|
|||
# file.
|
||||
run_make_test(q!
|
||||
pid:=$(shell echo $$PPID)
|
||||
all:; @kill -TERM $(pid) && sleep 16
|
||||
all:; @#HELPER# term $(pid) sleep 10
|
||||
!, '-O -j2', '/#MAKE#: \*\*\* \[#MAKEFILE#:3: all] Terminated/', POSIX::SIGTERM);
|
||||
}
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ run_make_test(q!
|
|||
include bye.mk
|
||||
pid:=$(shell echo $$PPID)
|
||||
all:;
|
||||
bye.mk: force; @kill -TERM $(pid) && sleep 16
|
||||
bye.mk: force; @#HELPER# term $(pid) sleep 10
|
||||
force:
|
||||
!, '-f-', '/#MAKE#: \*\*\* \[#MAKEFILE#:5: bye.mk] Terminated/', POSIX::SIGTERM);
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
# 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
|
||||
#
|
||||
# If given -q only the "out" command generates output.
|
||||
|
@ -95,6 +96,12 @@ sub op {
|
|||
return 1;
|
||||
}
|
||||
|
||||
if ($op eq 'term') {
|
||||
print "term $nm\n";
|
||||
kill('TERM', $nm);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ($op eq 'fail') {
|
||||
print "fail $nm\n";
|
||||
exit($nm);
|
||||
|
|
Loading…
Reference in a new issue