t7610-mergetool: use test_cmp instead of test $(cat file) = $txt
[gitweb.git] / t / t6030-bisect-porcelain.sh
index 8c2c6eaef83fe90d1faa088fe65ee4a851b1e471..49a394bd75dde817700850187966c3d31ae03f17 100755 (executable)
@@ -681,7 +681,7 @@ test_expect_success 'bisect: --no-checkout - target in breakage' '
        check_same BROKEN_HASH6 BISECT_HEAD &&
        git bisect bad BISECT_HEAD &&
        check_same BROKEN_HASH5 BISECT_HEAD &&
-       git bisect good BISECT_HEAD &&
+       test_must_fail git bisect good BISECT_HEAD &&
        check_same BROKEN_HASH6 bisect/bad &&
        git bisect reset
 '
@@ -692,7 +692,7 @@ test_expect_success 'bisect: --no-checkout - target after breakage' '
        check_same BROKEN_HASH6 BISECT_HEAD &&
        git bisect good BISECT_HEAD &&
        check_same BROKEN_HASH8 BISECT_HEAD &&
-       git bisect good BISECT_HEAD &&
+       test_must_fail git bisect good BISECT_HEAD &&
        check_same BROKEN_HASH9 bisect/bad &&
        git bisect reset
 '
@@ -701,7 +701,7 @@ test_expect_success 'bisect: demonstrate identification of damage boundary' "
        git bisect reset &&
        git checkout broken &&
        git bisect start broken master --no-checkout &&
-       git bisect run \"\$SHELL_PATH\" -c '
+       test_must_fail git bisect run \"\$SHELL_PATH\" -c '
                GOOD=\$(git for-each-ref \"--format=%(objectname)\" refs/bisect/good-*) &&
                git rev-list --objects BISECT_HEAD --not \$GOOD >tmp.\$\$ &&
                git pack-objects --stdout >/dev/null < tmp.\$\$
@@ -802,7 +802,7 @@ test_expect_success 'bisect terms needs 0 or 1 argument' '
        test_must_fail git bisect terms only-one &&
        test_must_fail git bisect terms 1 2 &&
        test_must_fail git bisect terms 2>actual &&
-       echo "no terms defined" >expected &&
+       echo "error: no terms defined" >expected &&
        test_i18ncmp expected actual
 '
 
@@ -894,4 +894,21 @@ test_expect_success 'bisect start takes options and revs in any order' '
        test_cmp expected actual
 '
 
+test_expect_success 'git bisect reset cleans bisection state properly' '
+       git bisect reset &&
+       git bisect start &&
+       git bisect good $HASH1 &&
+       git bisect bad $HASH4 &&
+       git bisect reset &&
+       test -z "$(git for-each-ref "refs/bisect/*")" &&
+       test_path_is_missing "$GIT_DIR/BISECT_EXPECTED_REV" &&
+       test_path_is_missing "$GIT_DIR/BISECT_ANCESTORS_OK" &&
+       test_path_is_missing "$GIT_DIR/BISECT_LOG" &&
+       test_path_is_missing "$GIT_DIR/BISECT_RUN" &&
+       test_path_is_missing "$GIT_DIR/BISECT_TERMS" &&
+       test_path_is_missing "$GIT_DIR/head-name" &&
+       test_path_is_missing "$GIT_DIR/BISECT_HEAD" &&
+       test_path_is_missing "$GIT_DIR/BISECT_START"
+'
+
 test_done