From: Junio C Hamano Date: Tue, 19 Jul 2016 20:22:20 +0000 (-0700) Subject: Merge branch 'jk/test-match-signal' X-Git-Tag: v2.10.0-rc0~106 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=39cadeec0db35a79a2713eceaf998f2745236f0c;p=thirdparty%2Fgit.git 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 --- 39cadeec0db35a79a2713eceaf998f2745236f0c diff --cc t/test-lib-functions.sh index 90856d67e5,ca40a1289f..4f7eadb596 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@@ -962,16 -962,17 +962,31 @@@ 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 ' + my $len = $ARGV[1]; + while ($len > 0) { + my $s; + my $nread = sysread(STDIN, $s, $len); + die "cannot read: $!" unless defined($nread); + print $s; + $len -= $nread; + } + ' - "$1" +}