Merge branch 'maint'
[gitweb.git] / t / t6030-bisect-porcelain.sh
index 32d6118183c20e90aca115f8feda9e3c72f94eaf..933f5679831b1df3baac8164094b204a09fd7f16 100755 (executable)
@@ -71,8 +71,12 @@ test_expect_success 'bisect start with one bad and good' '
        git bisect next
 '
 
-test_expect_success 'bisect good and bad fails if not given only revs' '
+test_expect_success 'bisect fails if given any junk instead of revs' '
        git bisect reset &&
+       test_must_fail git bisect start foo $HASH1 -- &&
+       test_must_fail git bisect start $HASH4 $HASH1 bar -- &&
+       test -z "$(git for-each-ref "refs/bisect/*")" &&
+       test_must_fail ls .git/BISECT_* &&
        git bisect start &&
        test_must_fail git bisect good foo $HASH1 &&
        test_must_fail git bisect good $HASH1 bar &&
@@ -80,6 +84,7 @@ test_expect_success 'bisect good and bad fails if not given only revs' '
        test_must_fail git bisect bad $HASH3 $HASH4 &&
        test_must_fail git bisect skip bar $HASH3 &&
        test_must_fail git bisect skip $HASH1 foo &&
+       test -z "$(git for-each-ref "refs/bisect/*")" &&
        git bisect good $HASH1 &&
        git bisect bad $HASH4
 '
@@ -279,6 +284,31 @@ test_expect_success 'bisect starting with a detached HEAD' '
 
 '
 
+test_expect_success 'bisect refuses to start if branch bisect exists' '
+       git bisect reset &&
+       git branch bisect &&
+       test_must_fail git bisect start &&
+       git branch -d bisect &&
+       git checkout -b bisect &&
+       test_must_fail git bisect start &&
+       git checkout master &&
+       git branch -d bisect
+'
+
+test_expect_success 'bisect refuses to start if branch new-bisect exists' '
+       git bisect reset &&
+       git branch new-bisect &&
+       test_must_fail git bisect start &&
+       git branch -d new-bisect
+'
+
+test_expect_success 'bisect errors out if bad and good are mistaken' '
+       git bisect reset &&
+       test_must_fail git bisect start $HASH2 $HASH4 2> rev_list_error &&
+       grep "mistake good and bad" rev_list_error &&
+       git bisect reset
+'
+
 #
 #
 test_done