Merge branch 'jk/test-match-signal'
authorJunio C Hamano <gitster@pobox.com>
Tue, 19 Jul 2016 20:22:20 +0000 (13:22 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 19 Jul 2016 20:22:20 +0000 (13:22 -0700)
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

1  2 
t/test-lib-functions.sh
diff --combined t/test-lib-functions.sh
index 90856d67e52dcdaabd13e78abd29c7c3d3949643,ca40a1289f269830e30136459a09fc2526957895..4f7eadb5963e7d698f9ee6e265b1657e543cdb44
@@@ -612,7 -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,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"
 +}