diff options
author | Jeff King <peff@peff.net> | 2009-01-30 11:21:01 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-01-30 12:14:26 +0300 |
commit | 0ea8039644968e53d79a8dfbf739c87af4261d46 (patch) | |
tree | f69cf13d5e270fc96f73ca98c35a7e559ed990c0 | |
parent | a3da8821208d6243dc5530d668f7c8f089814899 (diff) |
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>
-rwxr-xr-x | t/t0005-signals.sh | 2 | ||||
-rw-r--r-- | test-sigchain.c | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/t/t0005-signals.sh b/t/t0005-signals.sh index 9707af7d03..09f855af3e 100755 --- a/t/t0005-signals.sh +++ b/t/t0005-signals.sh @@ -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 && diff --git a/test-sigchain.c b/test-sigchain.c index 8747deac62..42db234e87 100644 --- a/test-sigchain.c +++ b/test-sigchain.c @@ -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; } |