t0005: use SIGTERM for sigchain test
The signal tests consists of checking that each of our handlers is executed, and that the test program was killed by the final signal. We arbitrarily used SIGINT as the kill signal. However, some platforms (notably Solaris) will default SIGINT to SIG_IGN if there is no controlling terminal. In that case, we don't end up killing the program with the final signal and the test fails. This is a problem since the test script should not depend on outside factors; let's use SIGTERM instead, which should behave consistently. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a3da882120
commit
0ea8039644
@ -12,7 +12,7 @@ EOF
|
||||
test_expect_success 'sigchain works' '
|
||||
test-sigchain >actual
|
||||
case "$?" in
|
||||
130) true ;; # POSIX w/ SIGINT=2
|
||||
143) true ;; # POSIX w/ SIGTERM=15
|
||||
3) true ;; # Windows
|
||||
*) false ;;
|
||||
esac &&
|
||||
|
@ -14,9 +14,9 @@ X(three)
|
||||
#undef X
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
sigchain_push(SIGINT, one);
|
||||
sigchain_push(SIGINT, two);
|
||||
sigchain_push(SIGINT, three);
|
||||
raise(SIGINT);
|
||||
sigchain_push(SIGTERM, one);
|
||||
sigchain_push(SIGTERM, two);
|
||||
sigchain_push(SIGTERM, three);
|
||||
raise(SIGTERM);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user