aboutsummaryrefslogtreecommitdiff
path: root/t/test-lib-functions.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-07-19 13:22:20 -0700
committerJunio C Hamano <gitster@pobox.com>2016-07-19 13:22:20 -0700
commit39cadeec0db35a79a2713eceaf998f2745236f0c (patch)
tree312bde8b243be7d36b46ce8f3f686ecb1793781d /t/test-lib-functions.sh
parentd4c6375fd8996d7d809fb34b9743339d7192c58b (diff)
parent03c39b34589897824385c884cd9c5707ba93a238 (diff)
downloadgit-39cadeec0db35a79a2713eceaf998f2745236f0c.tar.gz
git-39cadeec0db35a79a2713eceaf998f2745236f0c.tar.xz
Merge branch 'jk/test-match-signal'
The test framework learned a new helper test_match_signal to check an exit code from getting killed by an expected signal. * jk/test-match-signal: t/lib-git-daemon: use test_match_signal test_must_fail: use test_match_signal t0005: use test_match_signal as appropriate tests: factor portable signal check out of t0005
Diffstat (limited to 't/test-lib-functions.sh')
-rw-r--r--t/test-lib-functions.sh17
1 files changed, 16 insertions, 1 deletions
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index 90856d67e..4f7eadb59 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -612,7 +612,7 @@ test_must_fail () {
then
echo >&2 "test_must_fail: command succeeded: $*"
return 1
- elif test $exit_code -eq 141 && list_contains "$_test_ok" sigpipe
+ elif test_match_signal 13 $exit_code && list_contains "$_test_ok" sigpipe
then
return 0
elif test $exit_code -gt 129 && test $exit_code -le 192
@@ -962,6 +962,21 @@ test_env () {
)
}
+# Returns true if the numeric exit code in "$2" represents the expected signal
+# in "$1". Signals should be given numerically.
+test_match_signal () {
+ if test "$2" = "$((128 + $1))"
+ then
+ # POSIX
+ return 0
+ elif test "$2" = "$((256 + $1))"
+ then
+ # ksh
+ return 0
+ fi
+ return 1
+}
+
# Read up to "$1" bytes (or to EOF) from stdin and write them to stdout.
test_copy_bytes () {
perl -e '