diff mbox series

[6/8] t9164: don't use `test_must_fail test_cmp`

Message ID dfccb04e2d03656e18286bcca2c558e19d748ffd.1587372771.git.liu.denton@gmail.com (mailing list archive)
State New, archived
Headers show
Series t: replace incorrect test_must_fail usage (part 4) | expand

Commit Message

Denton Liu April 20, 2020, 8:54 a.m. UTC
The test_must_fail function should only be used for git commands since
we assume that external commands work sanely. Since test_cmp() just
wraps an external command, replace `test_must_fail test_cmp` with
`! test_cmp`.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
---
 t/t9164-git-svn-dcommit-concurrent.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Eric Sunshine April 20, 2020, 4:21 p.m. UTC | #1
On Mon, Apr 20, 2020 at 4:55 AM Denton Liu <liu.denton@gmail.com> wrote:
> The test_must_fail function should only be used for git commands since
> we assume that external commands work sanely. Since test_cmp() just
> wraps an external command, replace `test_must_fail test_cmp` with
> `! test_cmp`.
>
> Signed-off-by: Denton Liu <liu.denton@gmail.com>
> ---
> diff --git a/t/t9164-git-svn-dcommit-concurrent.sh b/t/t9164-git-svn-dcommit-concurrent.sh
> @@ -103,7 +103,7 @@ test_expect_success 'check if pre-commit hook fails' '
> -               test_must_fail svn_cmd commit -m "this commit should fail" &&
> +               ! svn_cmd commit -m "this commit should fail" &&

Hmm, this doesn't look like 'test_cmp' mentioned in the commit message.
Junio C Hamano April 20, 2020, 8:09 p.m. UTC | #2
Eric Sunshine <sunshine@sunshineco.com> writes:

> On Mon, Apr 20, 2020 at 4:55 AM Denton Liu <liu.denton@gmail.com> wrote:
>> The test_must_fail function should only be used for git commands since
>> we assume that external commands work sanely. Since test_cmp() just
>> wraps an external command, replace `test_must_fail test_cmp` with
>> `! test_cmp`.
>>
>> Signed-off-by: Denton Liu <liu.denton@gmail.com>
>> ---
>> diff --git a/t/t9164-git-svn-dcommit-concurrent.sh b/t/t9164-git-svn-dcommit-concurrent.sh
>> @@ -103,7 +103,7 @@ test_expect_success 'check if pre-commit hook fails' '
>> -               test_must_fail svn_cmd commit -m "this commit should fail" &&
>> +               ! svn_cmd commit -m "this commit should fail" &&
>
> Hmm, this doesn't look like 'test_cmp' mentioned in the commit message.

Yeah, the other hunk is about test_cmp and this hunk is about
svn_cmd.  The stated rationale applies to both wrappers, I think.

    Subject: [PATCH 6/8] t9164: use test_must_fail only on git

    The `test_must_fail` function should only be used for git commands;
    we are not in the business of catching segmentation fault by external
    commands.  Shell helper functions test_cmp and svn_cmd used in this
    script are wrappers around external commands, so just use `! cmd`
    instead of `test_must_fail cmd`

perhaps, without any change to the code?
Eric Sunshine April 20, 2020, 8:13 p.m. UTC | #3
On Mon, Apr 20, 2020 at 4:09 PM Junio C Hamano <gitster@pobox.com> wrote:
> Eric Sunshine <sunshine@sunshineco.com> writes:
> > Hmm, this doesn't look like 'test_cmp' mentioned in the commit message.
>
> Yeah, the other hunk is about test_cmp and this hunk is about
> svn_cmd.  The stated rationale applies to both wrappers, I think.
>
>     Subject: [PATCH 6/8] t9164: use test_must_fail only on git
>
>     The `test_must_fail` function should only be used for git commands;
>     we are not in the business of catching segmentation fault by external
>     commands.  Shell helper functions test_cmp and svn_cmd used in this
>     script are wrappers around external commands, so just use `! cmd`
>     instead of `test_must_fail cmd`
>
> perhaps, without any change to the code?

That sounds fine.
Denton Liu April 21, 2020, 8:16 p.m. UTC | #4
On Mon, Apr 20, 2020 at 01:09:49PM -0700, Junio C Hamano wrote:
> Eric Sunshine <sunshine@sunshineco.com> writes:
> 
> > On Mon, Apr 20, 2020 at 4:55 AM Denton Liu <liu.denton@gmail.com> wrote:
> >> The test_must_fail function should only be used for git commands since
> >> we assume that external commands work sanely. Since test_cmp() just
> >> wraps an external command, replace `test_must_fail test_cmp` with
> >> `! test_cmp`.
> >>
> >> Signed-off-by: Denton Liu <liu.denton@gmail.com>
> >> ---
> >> diff --git a/t/t9164-git-svn-dcommit-concurrent.sh b/t/t9164-git-svn-dcommit-concurrent.sh
> >> @@ -103,7 +103,7 @@ test_expect_success 'check if pre-commit hook fails' '
> >> -               test_must_fail svn_cmd commit -m "this commit should fail" &&
> >> +               ! svn_cmd commit -m "this commit should fail" &&
> >
> > Hmm, this doesn't look like 'test_cmp' mentioned in the commit message.
> 
> Yeah, the other hunk is about test_cmp and this hunk is about
> svn_cmd.  The stated rationale applies to both wrappers, I think.
> 
>     Subject: [PATCH 6/8] t9164: use test_must_fail only on git
> 
>     The `test_must_fail` function should only be used for git commands;
>     we are not in the business of catching segmentation fault by external
>     commands.  Shell helper functions test_cmp and svn_cmd used in this
>     script are wrappers around external commands, so just use `! cmd`
>     instead of `test_must_fail cmd`
> 
> perhaps, without any change to the code?

Thanks, this looks good to me too.
Junio C Hamano April 21, 2020, 8:44 p.m. UTC | #5
Denton Liu <liu.denton@gmail.com> writes:

> On Mon, Apr 20, 2020 at 01:09:49PM -0700, Junio C Hamano wrote:
>> Eric Sunshine <sunshine@sunshineco.com> writes:
>> 
>> > On Mon, Apr 20, 2020 at 4:55 AM Denton Liu <liu.denton@gmail.com> wrote:
>> >> The test_must_fail function should only be used for git commands since
>> >> we assume that external commands work sanely. Since test_cmp() just
>> >> wraps an external command, replace `test_must_fail test_cmp` with
>> >> `! test_cmp`.
>> >>
>> >> Signed-off-by: Denton Liu <liu.denton@gmail.com>
>> >> ---
>> >> diff --git a/t/t9164-git-svn-dcommit-concurrent.sh b/t/t9164-git-svn-dcommit-concurrent.sh
>> >> @@ -103,7 +103,7 @@ test_expect_success 'check if pre-commit hook fails' '
>> >> -               test_must_fail svn_cmd commit -m "this commit should fail" &&
>> >> +               ! svn_cmd commit -m "this commit should fail" &&
>> >
>> > Hmm, this doesn't look like 'test_cmp' mentioned in the commit message.
>> 
>> Yeah, the other hunk is about test_cmp and this hunk is about
>> svn_cmd.  The stated rationale applies to both wrappers, I think.
>> 
>>     Subject: [PATCH 6/8] t9164: use test_must_fail only on git
>> 
>>     The `test_must_fail` function should only be used for git commands;
>>     we are not in the business of catching segmentation fault by external
>>     commands.  Shell helper functions test_cmp and svn_cmd used in this
>>     script are wrappers around external commands, so just use `! cmd`
>>     instead of `test_must_fail cmd`
>> 
>> perhaps, without any change to the code?
>
> Thanks, this looks good to me too.

Thanks.  

So the 4-patch test-must-fail-fix series is now complete?  Whee.
Denton Liu April 22, 2020, 8:54 a.m. UTC | #6
Hi Junio,

On Tue, Apr 21, 2020 at 01:44:08PM -0700, Junio C Hamano wrote:
> Denton Liu <liu.denton@gmail.com> writes:
> 
> > On Mon, Apr 20, 2020 at 01:09:49PM -0700, Junio C Hamano wrote:
> >> Eric Sunshine <sunshine@sunshineco.com> writes:
> >> 
> >> > On Mon, Apr 20, 2020 at 4:55 AM Denton Liu <liu.denton@gmail.com> wrote:
> >> >> The test_must_fail function should only be used for git commands since
> >> >> we assume that external commands work sanely. Since test_cmp() just
> >> >> wraps an external command, replace `test_must_fail test_cmp` with
> >> >> `! test_cmp`.
> >> >>
> >> >> Signed-off-by: Denton Liu <liu.denton@gmail.com>
> >> >> ---
> >> >> diff --git a/t/t9164-git-svn-dcommit-concurrent.sh b/t/t9164-git-svn-dcommit-concurrent.sh
> >> >> @@ -103,7 +103,7 @@ test_expect_success 'check if pre-commit hook fails' '
> >> >> -               test_must_fail svn_cmd commit -m "this commit should fail" &&
> >> >> +               ! svn_cmd commit -m "this commit should fail" &&
> >> >
> >> > Hmm, this doesn't look like 'test_cmp' mentioned in the commit message.
> >> 
> >> Yeah, the other hunk is about test_cmp and this hunk is about
> >> svn_cmd.  The stated rationale applies to both wrappers, I think.
> >> 
> >>     Subject: [PATCH 6/8] t9164: use test_must_fail only on git
> >> 
> >>     The `test_must_fail` function should only be used for git commands;
> >>     we are not in the business of catching segmentation fault by external
> >>     commands.  Shell helper functions test_cmp and svn_cmd used in this
> >>     script are wrappers around external commands, so just use `! cmd`
> >>     instead of `test_must_fail cmd`
> >> 
> >> perhaps, without any change to the code?
> >
> > Thanks, this looks good to me too.
> 
> Thanks.  
> 
> So the 4-patch test-must-fail-fix series is now complete?  Whee.

Hannes suggested that we should drop the tip commit of this series[1]
and I tend to agree with him. Aside from that, though, the series is
ready to go.

(I could improve 3/8 as suggested here[2] but I'll throw it in the next
series instead since I'm trying to get into the habit of not adding in
unrelated patches.)

[1]: https://lore.kernel.org/git/6cfa2c447e1196d6c4325aff9fac52434d10fda8.1587372771.git.liu.denton@gmail.com/
[2]: https://lore.kernel.org/git/90faeb7a-1c6a-3fc6-6410-5e264c9340e8@kdbg.org/
Junio C Hamano April 22, 2020, 3:50 p.m. UTC | #7
Denton Liu <liu.denton@gmail.com> writes:

> Hannes suggested that we should drop the tip commit of this series[1]
> and I tend to agree with him. Aside from that, though, the series is
> ready to go.
>
> (I could improve 3/8 as suggested here[2] but I'll throw it in the next
> series instead since I'm trying to get into the habit of not adding in
> unrelated patches.)
>
> [1]: https://lore.kernel.org/git/6cfa2c447e1196d6c4325aff9fac52434d10fda8.1587372771.git.liu.denton@gmail.com/
> [2]: https://lore.kernel.org/git/90faeb7a-1c6a-3fc6-6410-5e264c9340e8@kdbg.org/

I agree with you two that test_must_fail may make sense with these
__git_foo helpers used in the completion.  It is a bit of shame that
there is no opportunity to leave the reasoning behind the decision
for later developers, other than in the discussion thread.

I agree that 3/8 is good as-is in this series.

Thanks.
diff mbox series

Patch

diff --git a/t/t9164-git-svn-dcommit-concurrent.sh b/t/t9164-git-svn-dcommit-concurrent.sh
index 90346ff4e9..8466269bf5 100755
--- a/t/t9164-git-svn-dcommit-concurrent.sh
+++ b/t/t9164-git-svn-dcommit-concurrent.sh
@@ -92,7 +92,7 @@  test_expect_success 'check if post-commit hook creates a concurrent commit' '
 		echo 1 >> file &&
 		svn_cmd commit -m "changing file" &&
 		svn_cmd up &&
-		test_must_fail test_cmp auto_updated_file au_file_saved
+		! test_cmp auto_updated_file au_file_saved
 	)
 '
 
@@ -103,7 +103,7 @@  test_expect_success 'check if pre-commit hook fails' '
 		echo 2 >> file &&
 		svn_cmd commit -m "changing file once again" &&
 		echo 3 >> file &&
-		test_must_fail svn_cmd commit -m "this commit should fail" &&
+		! svn_cmd commit -m "this commit should fail" &&
 		svn_cmd revert file
 	)
 '