diff options
Diffstat (limited to 'tests/lib')
-rw-r--r-- | tests/lib | 27 |
1 files changed, 25 insertions, 2 deletions
@@ -350,11 +350,34 @@ t-git-dir-check () { } t-expect-fsck-fail () { - expect_fsck_fail+=" $1" + echo >>$tmp/fsck.expected-errors "$1" } 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 () { |