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

Re: [PATCH] t3404: fix use of "VAR=VAL cmd" with a shell function

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 12, 2018, 20:31 UTC
Message-ID
<xmqqzhywurey.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<xmqq4lh4w6e8.fsf@gitster-ct.c.googlers.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 19 quoted lines
>>> diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
>>> index 7e9f375a24..fd43443ff5 100755
>>> --- a/t/t3404-rebase-interactive.sh
>>> +++ b/t/t3404-rebase-interactive.sh
>>> @@ -280,8 +280,11 @@ test_expect_success 'retain authorship w/ conflicts' '
>>>  	git reset --hard twerp &&
>>>  	test_commit a conflict a conflict-a &&
>>>  	git reset --hard twerp &&
>>> -	GIT_AUTHOR_NAME=AttributeMe \
>>> +	oGIT_AUTHOR_NAME=$GIT_AUTHOR_NAME &&
>>> +	GIT_AUTHOR_NAME=AttributeMe &&
>>> +	export GIT_AUTHOR_NAME &&
>>>  	test_commit b conflict b conflict-b &&
>>> +	GIT_AUTHOR_NAME=$oGIT_AUTHOR_NAME &&
>>
>> ...would you want to use test_when_finished here (both for robustness,
>> but also to make it more clear to a reader what's going on)?
>
> Perhaps.
Yes, but this one ends up to be overly ugly.

The restoreing of the AUTHOR_NAME must be done not just before this test_expect_success finishes and control goes on to the next test, but also before "git rebase -i" in the middle of this test that is expected to fail with conflict, as we want it to see the original author name (not the modified AttributeMe name).

 t/t3404-rebase-interactive.sh | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index 481a350090..489b6196e0 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -256,11 +256,18 @@ test_expect_success 'retain authorship' '
 '
 
 test_expect_success 'retain authorship w/ conflicts' '
+	oGIT_AUTHOR_NAME=$GIT_AUTHOR_NAME &&
+	test_when_finished "GIT_AUTHOR_NAME=\$oGIT_AUTHOR_NAME" &&
+
 	git reset --hard twerp &&
 	test_commit a conflict a conflict-a &&
 	git reset --hard twerp &&
-	GIT_AUTHOR_NAME=AttributeMe \
+
+	GIT_AUTHOR_NAME=AttributeMe &&
+	export GIT_AUTHOR_NAME &&
 	test_commit b conflict b conflict-b &&
+	GIT_AUTHOR_NAME=$oGIT_AUTHOR_NAME &&
+
 	set_fake_editor &&
 	test_must_fail git rebase -i conflict-a &&
 	echo resolved >conflict &&
Previous: Junio C HamanoNext: Jeff King
Message 4 of 6 in “t3404: fix use of "VAR=VAL cmd" with a shell function”
  1. t3404: fix use of "VAR=VAL cmd" with a shell functionJunio C Hamano, Jul 12, 2018
  2. Jeff KingJul 12, 2018
  3. Junio C HamanoJul 12, 2018
  4. Junio C HamanoJul 12, 2018
  5. Jeff KingJul 12, 2018
  6. Eric SunshineJul 13, 2018

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.