Skip to contentSkip to conversation

t4002: fix "diff can read from stdin" syntax

PATCH In review D. Ben Knoble via GitGitGadget 5 participants 5 messages Jul 14, 2023

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 t4002: fix "diff can read from stdin" syntax

From: "D. Ben Knoble" <[email protected]>

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.

---
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(-)
t/t4002-diff-basic.sh +1 -1
index d524d4057dc..7afc883ec37 100755
@@ -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

Signature · 1 line
gitgitgadget
#1 lore raw

Am 14.07.23 um 15:30 schrieb D. Ben Knoble via GitGitGadget:

Quoted 6 lines
t/t4002-diff-basic.sh +0 -0
index d524d4057dc..7afc883ec37 100755

t/t4002-diff-basic.sh test_expect_success 'diff-tree -r B A == diff-tree -r -R A B' ' · line 409

Quoted 8 lines
t/t4002-diff-basic.sh +1 -1
@@ -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é

#2 lore raw
Quoted 5 lines · René Scharfe

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.)

#3 lore raw
In reply to René Scharfe
Quoted 9 lines · René Scharfe

Am 14.07.23 um 15:30 schrieb D. Ben Knoble via GitGitGadget:

Quoted 8 lines
t/t4002-diff-basic.sh +0 -0
index d524d4057dc..7afc883ec37 100755
@@ -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'
 
Quoted 11 lines

t/t4002-diff-basic.sh test_expect_success 'diff-tree -r B A == diff-tree -r -R A B' ' · line 409

Quoted 6 lines
t/t4002-diff-basic.sh +1 -1
-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!

Quoted 2 lines

René

#4 lore raw
In reply to D. Ben Knoble via GitGitGadget
Quoted 12 lines · D. Ben Knoble via GitGitGadget

From: "D. Ben Knoble" <[email protected]>

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.

Quoted 5 lines

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

---

Nicely spotted. Thanks.

Will queue.