Merge branch 'da/difftool'
[gitweb.git] / t / t0005-signals.sh
index 981437b3a88b86ee1ddd26f842a0048b8dc2b57f..aeea50c6339ebd4a0d33ce03b7fad5948e69a8a8 100755 (executable)
@@ -27,4 +27,26 @@ test_expect_success !MINGW 'signals are propagated using shell convention' '
        test_expect_code 143 git sigterm
 '
 
+large_git () {
+       for i in $(test_seq 1 100)
+       do
+               git diff --cached --binary || return
+       done
+}
+
+test_expect_success 'create blob' '
+       test-genrandom foo 16384 >file &&
+       git add file
+'
+
+test_expect_success !MINGW 'a constipated git dies with SIGPIPE' '
+       OUT=$( ((large_git; echo $? 1>&3) | :) 3>&1 )
+       test "$OUT" -eq 141
+'
+
+test_expect_success !MINGW 'a constipated git dies with SIGPIPE even if parent ignores it' '
+       OUT=$( ((trap "" PIPE; large_git; echo $? 1>&3) | :) 3>&1 )
+       test "$OUT" -eq 141
+'
+
 test_done