diff --git a/tests/scripts/functions/shell b/tests/scripts/functions/shell index 3ffa1d8d..54514e83 100644 --- a/tests/scripts/functions/shell +++ b/tests/scripts/functions/shell @@ -61,11 +61,21 @@ all: ; @echo $(.SHELLSTATUS) # Test SHELLSTATUS for kill. # This test could be ported to Windows, using taskkill ... ? + + # Figure out the exit code for SIGINT + my $pid = fork(); + if (! $pid) { + exec('kill -2 $$') or die "exec: Cannot execute sleep\n"; + } + waitpid($pid, 0); + # .SHELLSTATUS for a signal gives 128 + the signal number + my $ret = $? + 128; + run_make_test('.PHONY: all $(shell kill -2 $$$$) -SIG := $(.SHELLSTATUS) -all: ; @echo SIG=$(SIG) - ','','SIG=130'); +STAT := $(.SHELLSTATUS) +all: ; @echo STAT=$(STAT) + ','',"STAT=$ret\n"); } 1;