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

[PATCH v6 3/4] commit test: test_set_editor in each test

From
Caleb Thompson <caleb@calebthompson.io>
Date
Jun 17, 2014, 19:38 UTC
Message-ID
<41484002d48514cc6eefc1bebbf6fea8d0f93a40.1403033723.git.caleb@calebthompson.io>
In-Reply-To
<cover.1403033723.git.caleb@calebthompson.io>

t/t7507-commit-verbose.sh was using a global test_set_editor call to build its environment. The $EDITOR being used was not necessary for all tests, and was in fact circumvented using subshells in some cases.

To improve robustness against global state changes and avoid the use of subshells to temporarily switch the editor as some were with GIT_EDITOR=cat, set the editor explicitly wherever it will be important.

Specifically, in tests that need to check for the presence of a diff in the editor, make calls to set_test_editor to set $EDITOR to check-for-diff rather than relying on that editor being configured globally. This also helps readers grok the tests as the setup is closer to the verification.

Signed-off-by: Caleb Thompson <caleb@calebthompson.io>
Reviewed-by: Jeremiah Mahler <jmmahler@gmail.com>
---
 t/t7507-commit-verbose.sh | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/t/t7507-commit-verbose.sh b/t/t7507-commit-verbose.sh
index db09107..35a4d06 100755
--- a/t/t7507-commit-verbose.sh
+++ b/t/t7507-commit-verbose.sh
@@ -6,7 +6,6 @@ test_description='verbose commit template'
 write_script check-for-diff <<-'EOF'
 	exec grep '^diff --git' "$1"
 EOF
-test_set_editor "$PWD/check-for-diff"
 
 cat >message <<'EOF'
 subject
@@ -21,6 +20,7 @@ test_expect_success 'setup' '
 '
 
 test_expect_success 'initial commit shows verbose diff' '
+	test_set_editor "$PWD/check-for-diff" &&
 	git commit --amend -v
 '
 
@@ -36,11 +36,13 @@ check_message() {
 }
 
 test_expect_success 'verbose diff is stripped out' '
+	test_set_editor "$PWD/check-for-diff" &&
 	git commit --amend -v &&
 	check_message message
 '
 
 test_expect_success 'verbose diff is stripped out (mnemonicprefix)' '
+	test_set_editor "$PWD/check-for-diff" &&
 	test_config diff.mnemonicprefix true &&
 	git commit --amend -v &&
 	check_message message
@@ -77,20 +79,14 @@ test_expect_success 'submodule log is stripped out too with -v' '
 		echo "more" >>file &&
 		git commit -a -m "submodule commit"
 	) &&
-	(
-		GIT_EDITOR=cat &&
-		export GIT_EDITOR &&
-		test_must_fail git commit -a -v 2>err
-	) &&
+	test_set_editor cat &&
+	test_must_fail git commit -a -v 2>err &&
 	test_i18ngrep "Aborting commit due to empty commit message." err
 '
 
 test_expect_success 'verbose diff is stripped out with set core.commentChar' '
-	(
-		GIT_EDITOR=cat &&
-		export GIT_EDITOR &&
-		test_must_fail git -c core.commentchar=";" commit -a -v 2>err
-	) &&
+	test_set_editor cat &&
+	test_must_fail git -c core.commentchar=";" commit -a -v 2>err &&
 	test_i18ngrep "Aborting commit due to empty commit message." err
 '
 
-- 
2.0.0
Previous: Caleb ThompsonNext: Caleb Thompson
Message 6 of 12 in “commit: Add commit.verbose configuration”
  1. 0/4 commit: Add commit.verbose configurationCaleb Thompson, Jun 17, 2014
  2. 1/4 commit test: Use test_config instead of git-configCaleb Thompson, Jun 17, 2014
  3. Junio C HamanoJun 17, 2014
  4. Junio C HamanoJun 17, 2014
  5. 2/4 commit test: Use write_scriptCaleb Thompson, Jun 17, 2014
  6. 3/4 commit test: test_set_editor in each testCaleb Thompson, Jun 17, 2014
  7. 4/4 commit: Add commit.verbose configurationCaleb Thompson, Jun 17, 2014
  8. Jeff KingJun 17, 2014
  9. Junio C HamanoJun 17, 2014
  10. Jeff KingJun 17, 2014
  11. Torstein HeggeFeb 27, 2015
  12. Caleb ThompsonMar 2, 2015

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.