t3407-rebase-abort.sh: Enhance existing tests, and add test for rebase --merge
authorMike Hommey <mh@glandium.org>
Sat, 1 Mar 2008 11:12:13 +0000 (12:12 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 4 Mar 2008 06:13:57 +0000 (22:13 -0800)
Removing .dotest should actually not be needed, so just test the directory
don't exist after --abort, but exists after starting the rebase.

Also, execute the same tests with rebase --merge, which uses a different code
path.

Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3407-rebase-abort.sh
index 3417138a80989620519ac7c8bb48055fd0bdbf50..37944c39a3be5e8d2db59faa5609d857fe902199 100755 (executable)
@@ -23,37 +23,49 @@ test_expect_success setup '
        git branch pre-rebase
 '
 
-test_expect_success 'rebase --abort' '
-       test_must_fail git rebase master &&
-       git rebase --abort &&
-       test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase)
-'
+testrebase() {
+       type=$1
+       dotest=$2
 
-test_expect_success 'rebase --abort after --skip' '
-       # Clean up the state from the previous one
-       git reset --hard pre-rebase
-       rm -rf .dotest
+       test_expect_success "rebase$type --abort" '
+               # Clean up the state from the previous one
+               git reset --hard pre-rebase
+               test_must_fail git rebase'"$type"' master &&
+               test -d '$dotest' &&
+               git rebase --abort &&
+               test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
+               test ! -d '$dotest'
+       '
 
-       test_must_fail git rebase master &&
-       test_must_fail git rebase --skip &&
-       test $(git rev-parse HEAD) = $(git rev-parse master) &&
-       git rebase --abort &&
-       test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase)
-'
+       test_expect_success "rebase$type --abort after --skip" '
+               # Clean up the state from the previous one
+               git reset --hard pre-rebase
+               test_must_fail git rebase'"$type"' master &&
+               test -d '$dotest' &&
+               test_must_fail git rebase --skip &&
+               test $(git rev-parse HEAD) = $(git rev-parse master) &&
+               git-rebase --abort &&
+               test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
+               test ! -d '$dotest'
+       '
 
-test_expect_success 'rebase --abort after --continue' '
-       # Clean up the state from the previous one
-       git reset --hard pre-rebase
-       rm -rf .dotest
+       test_expect_success "rebase$type --abort after --continue" '
+               # Clean up the state from the previous one
+               git reset --hard pre-rebase
+               test_must_fail git rebase'"$type"' master &&
+               test -d '$dotest' &&
+               echo c > a &&
+               echo d >> a &&
+               git add a &&
+               test_must_fail git rebase --continue &&
+               test $(git rev-parse HEAD) != $(git rev-parse master) &&
+               git rebase --abort &&
+               test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase) &&
+               test ! -d '$dotest'
+       '
+}
 
-       test_must_fail git rebase master &&
-       echo c > a &&
-       echo d >> a &&
-       git add a &&
-       test_must_fail git rebase --continue &&
-       test $(git rev-parse HEAD) != $(git rev-parse master) &&
-       git rebase --abort &&
-       test $(git rev-parse to-rebase) = $(git rev-parse pre-rebase)
-'
+testrebase "" .dotest
+testrebase " --merge" .git/.dotest-merge
 
 test_done