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

Re: difftool--helper: exit when reading a prompt answer fails

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Oct 27, 2014, 12:54 UTC
Message-ID
<544E4077.8070208@drmicha.warpmail.net>
In-Reply-To
<20141027011051.GA87518@gmail.com>
David Aguilar schrieb am 27.10.2014 um 02:10:
Show 42 quoted lines
> On Sun, Oct 26, 2014 at 05:41:49PM -0700, David Aguilar wrote:
>> On Sun, Oct 26, 2014 at 09:09:20AM +0100, Johannes Sixt wrote:
>>> An attempt to quit difftool by hitting Ctrl-D (EOF) at its prompt does
>>> not quit it, but is treated as if 'yes' was answered to the prompt and
>>> all following prompts, which is contrary to the user's intent. Fix the
>>> error check.
>>>
>>> Signed-off-by: Johannes Sixt <j6t@kdbg.org>
>>> ---
>>>  Found while reviewing your latest patch.
>>
>>
>> Thanks for the careful review.
>> I have one small question about the test below.
> 
> [snip]
> 
>>> diff --git a/t/t7800-difftool.sh b/t/t7800-difftool.sh
>>> index dc30a51..9cf5dc9 100755
>>> --- a/t/t7800-difftool.sh
>>> +++ b/t/t7800-difftool.sh
>>> @@ -301,6 +301,14 @@ test_expect_success PERL 'say no to the second file' '
>>>  	! grep br2 output
>>>  '
>>>  
>>> +test_expect_success PERL 'ending prompt input with EOF' '
>>> +	git difftool -x cat branch </dev/null >output &&
>>> +	! grep master output &&
>>> +	! grep branch output &&
>>> +	! grep m2 output &&
>>> +	! grep br2 output
>>> +'
>>
>> Should we use "test_must_fail grep ..." instead of "! grep ..." here?
> 
> 
> Nevermind, this is good as-is.
> Using "! grep" is consistent with the rest of the tests in t7800.
> 
> What I'll do is add a follow-up patch in my upcoming reroll
> that swaps all the "! grep" lines to "test_must_fail grep"
> in one step.
Don't do that ;)

test_must_fail is meant for testing (git) commands such that a "failure return code" is marked as "success", whereas a failure to run the command is still capturd and marked as a failed test.

For non-git commands like grep sed etc. which we do not perform tests *on* (but only *with*), the simple negator "!" is fine and preferable.

Michael who has sinned in the past, but repented
Previous: David AguilarNext: Junio C Hamano
Message 4 of 9 in “difftool--helper: exit when reading a prompt answer fails”
  1. Johannes SixtOct 26, 2014
  2. David AguilarOct 27, 2014
  3. David AguilarOct 27, 2014
  4. Michael J GruberOct 27, 2014
  5. Junio C HamanoOct 27, 2014
  6. 1/2 t7800-difftool: use "test_must_fail grep" instead of "! grep"David Aguilar, Oct 27, 2014
  7. 2/2 difftool: add support for --trust-exit-codeDavid Aguilar, Oct 27, 2014
  8. Junio C HamanoOct 27, 2014
  9. David AguilarOct 28, 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.