]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t4054: test diff --no-index with stdin
authorPhillip Wood <phillip.wood@dunelm.org.uk>
Wed, 5 Jul 2023 19:49:29 +0000 (20:49 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 5 Jul 2023 21:00:28 +0000 (14:00 -0700)
"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>
t/t4053-diff-no-index.sh

index 5bfb282e985ac8967f58382d33219f75b16459e5..4870443609f62b98c39715abf972d79a2ad565b4 100755 (executable)
@@ -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