chiark / gitweb /
test suite: Do not tolerate any stderr output from git-fsck
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 5 Jan 2017 15:47:06 +0000 (15:47 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 5 Jan 2017 15:58:11 +0000 (15:58 +0000)
We must tolerate
  notice: HEAD points to an unborn branch (master)
  notice: No default references
which are generated by some of our existing test cases and are pretty
much harmless.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
tests/lib

index 569ca145c4b531fa795aa61749aaed896cc6bf82..52aca71b6e27cb5818bba3f040f1f5bef76aca19 100644 (file)
--- a/tests/lib
+++ b/tests/lib
@@ -350,11 +350,34 @@ t-git-dir-check () {
 }
 
 t-expect-fsck-fail () {
 }
 
 t-expect-fsck-fail () {
-       expect_fsck_fail+=" $1"
+       echo >>$tmp/fsck.expected-errors "$1"
 }
 
 t-git-fsck () {
 }
 
 t-git-fsck () {
-       git fsck --no-dangling --strict || ${expect_fsck_fail:+true} false
+       set +e
+       LC_MESSAGES=C git fsck --no-dangling --strict 2>&1 \
+               | tee dgit-test-fsck.errs
+       ps="${PIPESTATUS[*]}"
+       set -e
+
+       local pats
+       if [ -f $tmp/fsck.expected-errors ]; then
+               pats=(-w -f $tmp/fsck.expected-errors)
+       else
+               test "$ps" = "0 0"
+       fi
+       pats+=(-e 'notice: HEAD points to an unborn branch')
+       pats+=(-e 'notice: No default references')
+
+       set +e
+       grep -v "${pats[@]}" dgit-test-fsck.errs
+       rc=$?
+       set -e
+       case $rc in
+       1) ;; # no unexpected errors
+       0) fail "unexpected messages from git-fsck" ;;
+       *) fail "grep of git-fsck failed" ;;
+       esac
 }
 
 t-fscks () {
 }
 
 t-fscks () {