t4054: test diff --no-index with stdin

"git diff --no-index" supports reading from stdin with the path "-". There is no test coverage for this so add a regression test before changing the code in the next commit. Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Phillip Wood committed Jul 5, 2023 at 20:49 UTC df521462f01b61314c9c18a4b58a53db0cd7bf3c
1 file changed +19
t/t4053-diff-no-index.sh
+19
@@ -205,6 +205,25 @@ test_expect_success POSIXPERM,SYMLINKS 'diff --no-index normalizes: mode not lik
205 test_cmp expected actual
206 '
207
208 +test_expect_success "diff --no-index treats '-' as stdin" '
209 + cat >expect <<-EOF &&
210 + diff --git a/- b/a/1
211 + index $ZERO_OID..$(git hash-object --stdin <a/1) 100644
212 + --- a/-
213 + +++ b/a/1
214 + @@ -1 +1 @@
215 + -x
216 + +1
217 + EOF
218 +
219 + test_write_lines x | test_expect_code 1 \
220 + git -c core.abbrev=no diff --no-index -- - a/1 >actual &&
221 + test_cmp expect actual &&
222 +
223 + test_write_lines 1 | git diff --no-index -- a/1 - >actual &&
224 + test_must_be_empty actual
225 +'
226 +
227 test_expect_success 'diff --no-index refuses to diff stdin and a directory' '
228 test_must_fail git diff --no-index -- - a </dev/null 2>err &&
229 grep "fatal: cannot compare stdin to a directory" err