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

[PATCH v2 2/3] t4151: add a few am --abort tests

From
Elijah Newren via GitGitGadget <gitgitgadget@gmail.com>
Date
Sep 10, 2021, 10:31 UTC
Message-ID
<38a7063b959f6a404b292586b52b9c3b4bbec308.1631269876.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.1087.v2.git.git.1631269876.gitgitgadget@gmail.com>
From: Elijah Newren <newren@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
---
 t/t4151-am-abort.sh | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
diff --git a/t/t4151-am-abort.sh b/t/t4151-am-abort.sh
index 9d8d3c72e7e..15f2f92cd76 100755
--- a/t/t4151-am-abort.sh
+++ b/t/t4151-am-abort.sh
@@ -23,7 +23,13 @@ test_expect_success setup '
 		test_tick &&
 		git commit -a -m $i || return 1
 	done &&
+	git branch changes &&
 	git format-patch --no-numbered initial &&
+	git checkout -b conflicting initial &&
+	echo different >>file-1 &&
+	echo whatever >new-file &&
+	git add file-1 new-file &&
+	git commit -m different &&
 	git checkout -b side initial &&
 	echo local change >file-2-expect
 '
@@ -191,4 +197,37 @@ test_expect_success 'am --abort leaves index stat info alone' '
 	git diff-files --exit-code --quiet
 '
 
+test_expect_failure 'git am --abort return failed exit status when it fails' '
+	test_when_finished "rm -rf file-2/ && git reset --hard && git am --abort" &&
+	git checkout changes &&
+	git format-patch -1 --stdout conflicting >changes.mbox &&
+	test_must_fail git am --3way changes.mbox &&
+
+	git rm file-2 &&
+	mkdir file-2 &&
+	echo precious >file-2/somefile &&
+	test_must_fail git am --abort &&
+	test_path_is_dir file-2/
+'
+
+test_expect_success 'git am --abort cleans relevant files' '
+	git checkout changes &&
+	git format-patch -1 --stdout conflicting >changes.mbox &&
+	test_must_fail git am --3way changes.mbox &&
+
+	test_path_is_file new-file &&
+	echo further changes >>file-1 &&
+	echo change other file >>file-2 &&
+
+	# Abort, and expect the files touched by am to be reverted
+	git am --abort &&
+
+	test_path_is_missing new-file &&
+
+	# Files not involved in am operation are left modified
+	git diff --name-only changes >actual &&
+	test_write_lines file-2 >expect &&
+	test_cmp expect actual
+'
+
 test_done
-- 
gitgitgadget
Previous: Elijah Newren via GitGitGadgetNext: Elijah Newren via GitGitGadget
Message 13 of 15 in “A pair of git am --abort issues”
  1. 0/2 A pair of git am --abort issuesElijah Newren via GitGitGadget, Sep 8, 2021
  2. 1/2 t4151: document a pair of am --abort bugsElijah Newren via GitGitGadget, Sep 8, 2021
  3. Bagas SanjayaSep 8, 2021
  4. Elijah NewrenSep 8, 2021
  5. Junio C HamanoSep 8, 2021
  6. Elijah NewrenSep 8, 2021
  7. Junio C HamanoSep 8, 2021
  8. 2/2 am: fix incorrect exit status on am fail to abortElijah Newren via GitGitGadget, Sep 8, 2021
  9. Junio C HamanoSep 8, 2021
  10. Johannes SchindelinSep 8, 2021
  11. 0/3 A pair of git am --abort issuesElijah Newren via GitGitGadget, Sep 10, 2021
  12. 1/3 git-am.txt: clarify --abort behaviorElijah Newren via GitGitGadget, Sep 10, 2021
  13. 2/3 t4151: add a few am --abort testsElijah Newren via GitGitGadget, Sep 10, 2021
  14. 3/3 am: fix incorrect exit status on am fail to abortElijah Newren via GitGitGadget, Sep 10, 2021
  15. Johannes SchindelinSep 13, 2021

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.