git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/3] t3404: slight improvements

From
Stephan Beyer <s-beyer@gmx.net>
Date
Jun 20, 2008, 02:45 UTC
Message-ID
<1213929935-15093-2-git-send-email-s-beyer@gmx.net>
In-Reply-To
<1213929935-15093-1-git-send-email-s-beyer@gmx.net>

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@gmx.net>
---
 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
Previous: Stephan BeyerNext: Stephan Beyer
Message 2 of 21 in “some small changes for rebase-i”
  1. Stephan BeyerJun 20, 2008
  2. 1/3 t3404: slight improvementsStephan Beyer, Jun 20, 2008
  3. 2/3 rebase-i: slight internal improvementsStephan Beyer, Jun 20, 2008
  4. 3/3 Make rebase--interactive use OPTIONS_SPECStephan Beyer, Jun 20, 2008
  5. Stephan BeyerJun 20, 2008
  6. Johannes SchindelinJun 20, 2008
  7. 1/2 t3404: extra checks and s/! git/test_must_fail git/Stephan Beyer, Jun 20, 2008
  8. 2/2 Make rebase--interactive use OPTIONS_SPECStephan Beyer, Jun 20, 2008
  9. Brandon CaseyJun 20, 2008
  10. Stephan BeyerJun 20, 2008
  11. しらいしななこJun 20, 2008
  12. Stephan BeyerJun 21, 2008
  13. Junio C HamanoJun 21, 2008
  14. 1/2 t3404: stricter tests for git-rebase--interactiveStephan Beyer, Jun 21, 2008
  15. 2/2 Make rebase--interactive use OPTIONS_SPECStephan Beyer, Jun 21, 2008
  16. Johannes SixtJun 20, 2008
  17. Stephan BeyerJun 20, 2008
  18. Johannes SixtJun 20, 2008
  19. Johannes SchindelinJun 20, 2008
  20. Stephan BeyerJun 20, 2008
  21. Johannes SchindelinJun 20, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.