Merge branch 'jn/gitweb-return-or-exit-cleanup'
[gitweb.git] / t / t3407-rebase-abort.sh
index 3417138a80989620519ac7c8bb48055fd0bdbf50..2999e78937f31a45e9e2ea925f69ac00f157503f 100755 (executable)
@@ -4,7 +4,13 @@ test_description='git rebase --abort tests'
 
 . ./test-lib.sh
 
+### Test that we handle space characters properly
+work_dir="$(pwd)/test dir"
+
 test_expect_success setup '
+       mkdir -p "$work_dir" &&
+       cd "$work_dir" &&
+       git init &&
        echo a > a &&
        git add a &&
        git commit -m a &&
@@ -23,37 +29,52 @@ 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" '
+               cd "$work_dir" &&
+               # 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" '
+               cd "$work_dir" &&
+               # 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" '
+               cd "$work_dir" &&
+               # 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 "" .git/rebase-apply
+testrebase " --merge" .git/rebase-merge
 
 test_done