summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2009-01-30 03:21:01 -0500
committerJunio C Hamano <gitster@pobox.com>2009-01-30 01:14:26 -0800
commit0ea8039644968e53d79a8dfbf739c87af4261d46 (patch)
treef69cf13d5e270fc96f73ca98c35a7e559ed990c0
parenta3da8821208d6243dc5530d668f7c8f089814899 (diff)
downloadgit-0ea8039644968e53d79a8dfbf739c87af4261d46.tar.gz
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-xt/t0005-signals.sh2
-rw-r--r--test-sigchain.c8
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;
}