# [PATCH] t4002: fix "diff can read from stdin" syntax

5 messages from 2023-07-14 to 2023-07-14. Participants: D. Ben Knoble via GitGitGadget, René Scharfe, D. Ben Knoble, Junio C Hamano, John Cai.
Thread: https://gitlist.dev/t/59986

## D. Ben Knoble via GitGitGadget, 2023-07-14 13:30

Subject: [PATCH] t4002: fix "diff can read from stdin" syntax
Message-ID: <pull.1545.git.git.1689341410476.gitgitgadget@gmail.com>
URL: https://gitlist.dev/e/pull.1545.git.git.1689341410476.gitgitgadget%40gmail.com

```
From: "D. Ben Knoble" <ben.knoble+github@gmail.com>

I noticed this test was producing output like

ˋˋˋ
t4002-diff-basic.sh: test_expect_successdiff can read from stdin: not found
ˋˋˋ

which is rather odd. Investigation shows an error of shell syntax:
foo'abc' is the same as fooabc to the shell. Perhaps obviously, this is
not a valid command for the test.

I am surprised this doesn't count as an error in the test, but that
accounts for it going unnoticed.

Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
---
    t4002: fix "diff can read from stdin" syntax
    
    I noticed this test was producing output like
    
    t4002-diff-basic.sh: test_expect_successdiff can read from stdin: not found
    
    
    which is rather odd. Investigation shows an error of shell syntax:
    foo'abc' is the same as fooabc to the shell. Perhaps obviously, this is
    not a valid command for the test.
    
    I am surprised this doesn't count as an error in the test, but that
    accounts for it going unnoticed.
    
    ------------------------------------------------------------------------
    
    I would be interested in knowing how to "unsilence" failures like this
    so they do not go unnoticed in the future.

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1545%2Fbenknoble%2Ft4002-diff-stdin-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1545/benknoble/t4002-diff-stdin-v1
Pull-Request: https://github.com/git/git/pull/1545

 t/t4002-diff-basic.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/t/t4002-diff-basic.sh b/t/t4002-diff-basic.sh
index d524d4057dc..7afc883ec37 100755
--- a/t/t4002-diff-basic.sh
+++ b/t/t4002-diff-basic.sh
@@ -403,7 +403,7 @@ test_expect_success 'diff-tree -r B A == diff-tree -r -R A B' '
 	git diff-tree -r -R $tree_A $tree_B >.test-b &&
 	cmp -s .test-a .test-b'
 
-test_expect_success'diff can read from stdin' '
+test_expect_success 'diff can read from stdin' '
 	test_must_fail git diff --no-index -- MN - < NN |
 		grep -v "^index" | sed "s#/-#/NN#" >.test-a &&
 	test_must_fail git diff --no-index -- MN NN |

base-commit: aa9166bcc0ba654fc21f198a30647ec087f733ed
-- 
gitgitgadget

```

## René Scharfe, 2023-07-14 14:44

Subject: Re: [PATCH] t4002: fix "diff can read from stdin" syntax
Message-ID: <279beaea-d332-0d88-3cd0-b935ef6bc5eb@web.de>
URL: https://gitlist.dev/e/279beaea-d332-0d88-3cd0-b935ef6bc5eb%40web.de
In-Reply-To: <pull.1545.git.git.1689341410476.gitgitgadget@gmail.com>

```
Am 14.07.23 um 15:30 schrieb D. Ben Knoble via GitGitGadget:
> diff --git a/t/t4002-diff-basic.sh b/t/t4002-diff-basic.sh
> index d524d4057dc..7afc883ec37 100755
> --- a/t/t4002-diff-basic.sh
> +++ b/t/t4002-diff-basic.sh
> @@ -403,7 +403,7 @@ test_expect_success 'diff-tree -r B A == diff-tree -r -R A B' '
>  	git diff-tree -r -R $tree_A $tree_B >.test-b &&
>  	cmp -s .test-a .test-b'
>
> -test_expect_success'diff can read from stdin' '
> +test_expect_success 'diff can read from stdin' '
>  	test_must_fail git diff --no-index -- MN - < NN |
>  		grep -v "^index" | sed "s#/-#/NN#" >.test-a &&
>  	test_must_fail git diff --no-index -- MN NN |
>

Good find!  Introduced by 9cfcbcc095 (t4002-diff-basic: modernize test
format, 2023-05-18).  Perhaps an automatic formatter would have avoided
it?  E.g. some sed(1) scripting, or shfmt (https://github.com/mvdan/sh)?
(Just discovered shfmt, never used it.)

René

```

## D. Ben Knoble, 2023-07-14 14:53

Subject: Re: [PATCH] t4002: fix "diff can read from stdin" syntax
Message-ID: <CALnO6CCOWvYLkGRJOSV5saK3g3s0+RD-aEopF6gcX3qfmU5=UQ@mail.gmail.com>
URL: https://gitlist.dev/e/CALnO6CCOWvYLkGRJOSV5saK3g3s0%2BRD-aEopF6gcX3qfmU5%3DUQ%40mail.gmail.com
In-Reply-To: <279beaea-d332-0d88-3cd0-b935ef6bc5eb@web.de>

```
On Fri, Jul 14, 2023 at 10:44 AM René Scharfe <l.s.r@web.de> wrote:
>
> Good find!  Introduced by 9cfcbcc095 (t4002-diff-basic: modernize test
> format, 2023-05-18).  Perhaps an automatic formatter would have avoided
> it?  E.g. some sed(1) scripting, or shfmt (https://github.com/mvdan/sh)?
> (Just discovered shfmt, never used it.)

I'm doubtful: it would have to know things about the test_* commands.
(I would expect context-blind formatters to leave it alone, as it is a
perfectly correct way to spell a command with spaces in the name,
though who would do such a thing, I don't know.)

```

## Junio C Hamano, 2023-07-14 16:52

Subject: Re: [PATCH] t4002: fix "diff can read from stdin" syntax
Message-ID: <xmqqzg3yph9r.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqzg3yph9r.fsf%40gitster.g
In-Reply-To: <pull.1545.git.git.1689341410476.gitgitgadget@gmail.com>

```
"D. Ben Knoble via GitGitGadget" <gitgitgadget@gmail.com> writes:

> From: "D. Ben Knoble" <ben.knoble+github@gmail.com>
>
> I noticed this test was producing output like
>
> ˋˋˋ
> t4002-diff-basic.sh: test_expect_successdiff can read from stdin: not found
> ˋˋˋ
>
> which is rather odd. Investigation shows an error of shell syntax:
> foo'abc' is the same as fooabc to the shell. Perhaps obviously, this is
> not a valid command for the test.
>
> I am surprised this doesn't count as an error in the test, but that
> accounts for it going unnoticed.
>
> Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
> ---

Nicely spotted.  Thanks.

Will queue.

```

## John Cai, 2023-07-14 18:56

Subject: Re: [PATCH] t4002: fix "diff can read from stdin" syntax
Message-ID: <CEC94FDD-E5F1-48C0-8FBF-05682EBEB035@gmail.com>
URL: https://gitlist.dev/e/CEC94FDD-E5F1-48C0-8FBF-05682EBEB035%40gmail.com
In-Reply-To: <279beaea-d332-0d88-3cd0-b935ef6bc5eb@web.de>

```

On 14 Jul 2023, at 10:44, René Scharfe wrote:

> Am 14.07.23 um 15:30 schrieb D. Ben Knoble via GitGitGadget:
>> diff --git a/t/t4002-diff-basic.sh b/t/t4002-diff-basic.sh
>> index d524d4057dc..7afc883ec37 100755
>> --- a/t/t4002-diff-basic.sh
>> +++ b/t/t4002-diff-basic.sh
>> @@ -403,7 +403,7 @@ test_expect_success 'diff-tree -r B A == diff-tree -r -R A B' '
>>  	git diff-tree -r -R $tree_A $tree_B >.test-b &&
>>  	cmp -s .test-a .test-b'
>>
>> -test_expect_success'diff can read from stdin' '
>> +test_expect_success 'diff can read from stdin' '
>>  	test_must_fail git diff --no-index -- MN - < NN |
>>  		grep -v "^index" | sed "s#/-#/NN#" >.test-a &&
>>  	test_must_fail git diff --no-index -- MN NN |
>>
>
> Good find!  Introduced by 9cfcbcc095 (t4002-diff-basic: modernize test
> format, 2023-05-18).  Perhaps an automatic formatter would have avoided
> it?  E.g. some sed(1) scripting, or shfmt (https://github.com/mvdan/sh)?
> (Just discovered shfmt, never used it.)

Thanks for finding this and fixing!

>
> René

```
