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

[PATCH 4/6] t7502: drop confusing test_might_fail call

From
Jeff King <peff@peff.net>
Date
Jul 26, 2012, 20:31 UTC
Message-ID
<20120726203115.GD16048@sigill.intra.peff.net>
In-Reply-To
<20120726202644.GA15043@sigill.intra.peff.net>

In t7502.20, we run "git commit" and check that it warns us that the author and committer identity are not the same (this is always the case in the test environment, since we set up the idents differently).

Instead of actually making a commit, we have a clean index, so the "git commit" we run will fail. This is marked as might_fail, which is not really correct; it will always fail since there is nothing to commit.

However, the only reason not to do a complete commit would be to see the intermediate state of the COMMIT_EDITMSG file when the commit is not completed. We don't need to care about this, though; even a complete commit will leave COMMIT_EDITMSG for us to view. By doing a real commit and dropping the might_fail, we are more robust against other unforeseen failures of "git commit" that might influence our test result.

It might seem less robust to depend on the fact that "git commit" leaves COMMIT_EDITMSG in place after a successful commit. However, that brings this test in line with others parts of the script, which make the same assumption. Furthermore, if that ever does change, the right solution is not to prevent commit from completing, but to set EDITOR to a script that will record the contents we see. After all, the point of these tests is to check what the user sees in their EDITOR, so that would be the most direct test. For now, though, we can continue to use the "shortcut" that COMMIT_EDITMSG is left intact.

Signed-off-by: Jeff King <peff@peff.net>
---
Sorry for the long explanation. It took me a long time to figure out why
this test_might_fail is there at all, so I wanted to present my full
analysis as to why it's OK to remove.
 t/t7502-commit.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh
index efecb06..d261b82 100755
--- a/t/t7502-commit.sh
+++ b/t/t7502-commit.sh
@@ -237,7 +237,7 @@ test_expect_success 'cleanup commit messages (strip,-F,-e): output' '
 
 test_expect_success 'message shows author when it is not equal to committer' '
 	echo >>negative &&
-	test_might_fail git commit -e -m "sample" &&
+	git commit -e -m "sample" -a &&
 	test_i18ngrep \
 	  "^# Author: *A U Thor <author@example.com>\$" \
 	  .git/COMMIT_EDITMSG
-- 
1.7.11.3.8.ge78f547
Previous: Jeff KingNext: Jeff King
Message 12 of 15 in “Test "t/t7502-commit.sh" failed”
  1. Jiang XinJul 26, 2012
  2. Jeff KingJul 26, 2012
  3. Junio C HamanoJul 26, 2012
  4. Jeff KingJul 26, 2012
  5. Junio C HamanoJul 26, 2012
  6. Jeff KingJul 26, 2012
  7. Junio C HamanoJul 26, 2012
  8. 0/6 t7502 fixesJeff King, Jul 26, 2012
  9. 1/6 t7502: clean up fake_editor testsJeff King, Jul 26, 2012
  10. 2/6 t7502: properly quote GIT_EDITORJeff King, Jul 26, 2012
  11. 3/6 t7502: narrow checks for author/committer name in templateJeff King, Jul 26, 2012
  12. 4/6 t7502: drop confusing test_might_fail callJeff King, Jul 26, 2012
  13. 5/6 t7502: handle systems where auto-identity is brokenJeff King, Jul 26, 2012
  14. 6/6 t7502: test early quit from commit with bad identJeff King, Jul 26, 2012
  15. Junio C HamanoJul 26, 2012

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.