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>
maint
Phillip Wood 2023-07-05 20:49:29 +01:00 committed by Junio C Hamano
parent 4e61e0f680
commit df521462f0
1 changed files with 19 additions and 0 deletions

View File

@ -205,6 +205,25 @@ test_expect_success POSIXPERM,SYMLINKS 'diff --no-index normalizes: mode not lik
test_cmp expected actual
'

test_expect_success "diff --no-index treats '-' as stdin" '
cat >expect <<-EOF &&
diff --git a/- b/a/1
index $ZERO_OID..$(git hash-object --stdin <a/1) 100644
--- a/-
+++ b/a/1
@@ -1 +1 @@
-x
+1
EOF

test_write_lines x | test_expect_code 1 \
git -c core.abbrev=no diff --no-index -- - a/1 >actual &&
test_cmp expect actual &&

test_write_lines 1 | git diff --no-index -- a/1 - >actual &&
test_must_be_empty actual
'

test_expect_success 'diff --no-index refuses to diff stdin and a directory' '
test_must_fail git diff --no-index -- - a </dev/null 2>err &&
grep "fatal: cannot compare stdin to a directory" err