chiark / gitweb /
Test suite: Move most of mustfail into t-expect-fail
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 10 Jun 2015 17:25:12 +0000 (18:25 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 10 Jun 2015 17:25:12 +0000 (18:25 +0100)
tests/lib
tests/tests/drs-push-rejects

index 332bef2..c91020b 100644 (file)
--- a/tests/lib
+++ b/tests/lib
@@ -59,10 +59,17 @@ t-expect-fail () {
 
        set +o pipefail
        LC_MESSAGES=C "$@" 2>&1 | tee $tmp/t.output
-       local gotstatus=${PIPESTATUS[0]}
+       local ps="${PIPESTATUS[*]}"
        set -o pipefail
-       test $gotstatus != 0
-       $grepper -e "$mpat" $tmp/t.output ||false
+
+       case $ps in
+       "0 0")  fail "command unexpectedly succeeded (instead of: $mpat)" ;;
+       *" 0")  ;;
+       *)      fail "tee failed"  ;;
+       esac
+
+       $grepper -e "$mpat" $tmp/t.output ||
+               fail "error message not found"
 }
 
 t-reporefs () {
index 640aeae..13567c3 100755 (executable)
@@ -11,20 +11,12 @@ t-worktree drs
 cd $p
 
 mustfail () {
-       local wantmsg="$1"; shift
+       local mpat="$1"; shift
        t-reporefs pre-push
-       set +o pipefail
+
+       t-expect-fail "$mpat" \
        git push origin "$@" 2>&1 |tee $tmp/mustfail.txt
-       ps="${PIPESTATUS[*]}"
-       set -o pipefail
-       case $ps in
-       "0 0")  fail "push unexpectedly succeeded (instead of: $wantmsg)" ;;
-       *" 0")  ;;
-       *)      fail "tee failed"  ;;
-       esac
-       if ! fgrep "$wantmsg" $tmp/mustfail.txt >/dev/null; then
-               fail "error message not found"
-       fi
+
        t-reporefs post-push
        diff $tmp/show-refs.{pre,post}-push
 }