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

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

From
caleb@calebthompson.io <caleb@calebthompson.io>
Date
Jun 11, 2014, 18:24 UTC
Message-ID
<1402511079-17735-4-git-send-email-caleb@calebthompson.io>
In-Reply-To
<1402511079-17735-1-git-send-email-caleb@calebthompson.io>

t/t7507-commit-verbose.sh was using a global test_set_editor call to build its environment.

Improve robustness against global state changes by having only tests which intend to use the $EDITOR to check for presence of a diff in the editor set up the test-editor to use check-for-diff rather than relying upon the editor set once at script start.

Besides being in line with current practices, it also allows the tests which set GIT_EDITOR=cat manually to avoid using a subshell and simplify their logic.

Signed-off-by: Caleb Thompson <caleb@calebthompson.io>
---
 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@calebthompson.ioNext: caleb@calebthompson.io
Message 11 of 15 in “commit: support commit.verbose and --no-verbose”
  1. 0/4 commit: support commit.verbose and --no-verbosecaleb@calebthompson.io, Jun 11, 2014
  2. 1/4 commit test: Use test_config instead of git-configcaleb@calebthompson.io, Jun 11, 2014
  3. Jeremiah MahlerJun 12, 2014
  4. Caleb ThompsonJun 12, 2014
  5. Jeremiah MahlerJun 12, 2014
  6. Jeremiah MahlerJun 12, 2014
  7. Caleb ThompsonJun 12, 2014
  8. Jeremiah MahlerJun 12, 2014
  9. Caleb ThompsonJun 12, 2014
  10. 2/4 commit test: Use write_scriptcaleb@calebthompson.io, Jun 11, 2014
  11. 3/4 commit test: test_set_editor in each testcaleb@calebthompson.io, Jun 11, 2014
  12. 4/4 commit: support commit.verbose and --no-verbosecaleb@calebthompson.io, Jun 11, 2014
  13. René ScharfeJun 11, 2014
  14. Caleb ThompsonJun 11, 2014
  15. Caleb ThompsonJun 12, 2014

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.