This patch adds some extra checks into some test cases and changes "! git ..." into "test_must_fail git". Signed-off-by: Stephan Beyer <s-beyer@xxxxxxx> --- t/t3404-rebase-interactive.sh | 29 +++++++++++++++++++---------- 1 files changed, 19 insertions(+), 10 deletions(-) diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index e6f3fad..daba5fd 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -107,7 +107,8 @@ chmod a+x fake-editor.sh test_expect_success 'no changes are a nop' ' git rebase -i F && - test $(git rev-parse I) = $(git rev-parse HEAD) + test $(git rev-parse I) = $(git rev-parse HEAD) && + test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch2" ' test_expect_success 'test the [branch] option' ' @@ -115,7 +116,9 @@ test_expect_success 'test the [branch] option' ' git rm file6 && git commit -m "stop here" && git rebase -i F branch2 && - test $(git rev-parse I) = $(git rev-parse HEAD) + test $(git rev-parse I) = $(git rev-parse branch2) && + test $(git rev-parse I) = $(git rev-parse HEAD) && + test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch2" ' test_expect_success 'rebase on top of a non-conflicting commit' ' @@ -123,7 +126,9 @@ test_expect_success 'rebase on top of a non-conflicting commit' ' git tag original-branch1 && git rebase -i branch2 && test file6 = $(git diff --name-only original-branch1) && - test $(git rev-parse I) = $(git rev-parse HEAD~2) + test $(git rev-parse I) = $(git rev-parse branch2) && + test $(git rev-parse I) = $(git rev-parse HEAD~2) && + test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" ' test_expect_success 'reflog for the branch shows state before rebase' ' @@ -155,9 +160,12 @@ EOF test_expect_success 'stop on conflicting pick' ' git tag new-branch1 && - ! git rebase -i master && + test_must_fail git rebase -i master && + test "$(git rev-parse HEAD~3)" = "$(git rev-parse master)" && test_cmp expect .git/.dotest-merge/patch && test_cmp expect2 file1 && + test "$(git-diff --name-status | + sed -n -e "/^U/s/^U[^a-z]*//p")" = file1 && test 4 = $(grep -v "^#" < .git/.dotest-merge/done | wc -l) && test 0 = $(grep -c "^[^#]" < .git/.dotest-merge/git-rebase-todo) ' @@ -165,6 +173,7 @@ test_expect_success 'stop on conflicting pick' ' test_expect_success 'abort' ' git rebase --abort && test $(git rev-parse new-branch1) = $(git rev-parse HEAD) && + test "$(git symbolic-ref -q HEAD)" = "refs/heads/branch1" && ! test -d .git/.dotest-merge ' @@ -331,7 +340,7 @@ test_expect_success 'interactive -t preserves tags' ' test_expect_success '--continue tries to commit' ' git checkout to-be-rebased && test_tick && - ! git rebase -i --onto new-branch1 HEAD^ && + test_must_fail git rebase -i --onto new-branch1 HEAD^ && echo resolved > file1 && git add file1 && FAKE_COMMIT_MESSAGE="chouette!" git rebase --continue && @@ -342,7 +351,7 @@ test_expect_success '--continue tries to commit' ' test_expect_success 'verbose flag is heeded, even after --continue' ' git reset --hard HEAD@{1} && test_tick && - ! git rebase -v -i --onto new-branch1 HEAD^ && + test_must_fail git rebase -v -i --onto new-branch1 HEAD^ && echo resolved > file1 && git add file1 && git rebase --continue > output && @@ -380,7 +389,7 @@ test_expect_success 'interrupted squash works as expected' ' ! FAKE_LINES="1 squash 3 2" git rebase -i HEAD~3 && (echo one; echo two; echo four) > conflict && git add conflict && - ! git rebase --continue && + test_must_fail git rebase --continue && echo resolved > conflict && git add conflict && git rebase --continue && @@ -398,10 +407,10 @@ test_expect_success 'interrupted squash works as expected (case 2)' ' ! FAKE_LINES="3 squash 1 2" git rebase -i HEAD~3 && (echo one; echo four) > conflict && git add conflict && - ! git rebase --continue && + test_must_fail git rebase --continue && (echo one; echo two; echo four) > conflict && git add conflict && - ! git rebase --continue && + test_must_fail git rebase --continue && echo resolved > conflict && git add conflict && git rebase --continue && @@ -449,7 +458,7 @@ test_expect_success 'rebase a commit violating pre-commit' ' chmod a+x $PRE_COMMIT && echo "monde! " >> file1 && test_tick && - ! git commit -m doesnt-verify file1 && + test_must_fail git commit -m doesnt-verify file1 && git commit -m doesnt-verify --no-verify file1 && test_tick && FAKE_LINES=2 git rebase -i HEAD~2 -- 1.5.5.1.561.gd8556 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html