summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/lib27
1 files changed, 25 insertions, 2 deletions
diff --git a/tests/lib b/tests/lib
index 569ca14..52aca71 100644
--- a/tests/lib
+++ b/tests/lib
@@ -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 () {