t4018: an infrastructure to test hunk headers
[gitweb.git] / t / t3400-rebase.sh
index 45a55e98038e074b2f2056973bf3414983805f8e..6d94b1fcd94e9f724c93a389c50066c92c46e1b9 100755 (executable)
@@ -59,6 +59,17 @@ test_expect_success 'rebase against master' '
        git rebase master
 '
 
+test_expect_success 'rebase, with <onto> and <upstream> specified as :/quuxery' '
+       test_when_finished "git branch -D torebase" &&
+       git checkout -b torebase my-topic-branch^ &&
+       upstream=$(git rev-parse ":/Add B") &&
+       onto=$(git rev-parse ":/Add A") &&
+       git rebase --onto $onto $upstream &&
+       git reset --hard my-topic-branch^ &&
+       git rebase --onto ":/Add A" ":/Add B" &&
+       git checkout my-topic-branch
+'
+
 test_expect_success 'the rebase operation should not have destroyed author information' '
        ! (git log | grep "Author:" | grep "<>")
 '
@@ -123,18 +134,28 @@ test_expect_success 'fail when upstream arg is missing and not configured' '
        test_must_fail git rebase
 '
 
-test_expect_success 'default to @{upstream} when upstream arg is missing' '
+test_expect_success 'default to common base in @{upstream}s reflog if no upstream arg' '
+       git checkout -b default-base master &&
        git checkout -b default topic &&
        git config branch.default.remote . &&
-       git config branch.default.merge refs/heads/master &&
+       git config branch.default.merge refs/heads/default-base &&
+       git rebase &&
+       git rev-parse --verify default-base >expect &&
+       git rev-parse default~1 >actual &&
+       test_cmp expect actual &&
+       git checkout default-base &&
+       git reset --hard HEAD^ &&
+       git checkout default &&
        git rebase &&
-       test "$(git rev-parse default~1)" = "$(git rev-parse master)"
+       git rev-parse --verify default-base >expect &&
+       git rev-parse default~1 >actual &&
+       test_cmp expect actual
 '
 
 test_expect_success 'rebase -q is quiet' '
        git checkout -b quiet topic &&
        git rebase -q master >output.out 2>&1 &&
-       test ! -s output.out
+       test_must_be_empty output.out
 '
 
 test_expect_success 'Rebase a commit that sprinkles CRs in' '