mirror of
https://github.com/git/git
synced 2024-08-24 02:11:08 +00:00
![Jeff King](/assets/img/avatar_default.png)
This set of tests was added by4434e6ba6c
(tests: check --[short]stat output after chmod, 2012-05-01), and is primarily about the handling of binary versus text files. Later,74faaa16f0
(Fix "git diff --stat" for interesting - but empty - file changes, 2012-10-17) changed the stat output so that the empty text file is mentioned rather than omitted. That commit just comments out these tests. There's no discussion in the commit message, but the original email[1] says: NOTE! This does break two of our tests, so we clearly did this on purpose, or at least tested for it. I just uncommented the subtests that this makes irrelevant, and changed the output of another one. I don't think they're irrelevant, though. We should be testing this "mode change only" case and making sure that it has the post-74faaa16f0 behavior. So this commit brings back those tests, with the current expected output. [1] https://public-inbox.org/git/CA+55aFz88GPJcfMSqiyY+u0Cdm48bEyrsTGxHVJbGsYsDg=Q5w@mail.gmail.com/ Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
69 lines
1.5 KiB
Bash
Executable file
69 lines
1.5 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2005 Junio C Hamano
|
|
#
|
|
|
|
test_description='Test mode change diffs.
|
|
|
|
'
|
|
. ./test-lib.sh
|
|
|
|
sed_script='s/\(:100644 100755\) \('"$OID_REGEX"'\) \2 /\1 X X /'
|
|
|
|
test_expect_success 'setup' '
|
|
echo frotz >rezrov &&
|
|
git update-index --add rezrov &&
|
|
tree=$(git write-tree) &&
|
|
echo $tree
|
|
'
|
|
|
|
test_expect_success 'chmod' '
|
|
test_chmod +x rezrov &&
|
|
git diff-index $tree >current &&
|
|
sed -e "$sed_script" <current >check &&
|
|
echo ":100644 100755 X X M rezrov" >expected &&
|
|
test_cmp expected check
|
|
'
|
|
|
|
test_expect_success 'prepare binary file' '
|
|
git commit -m rezrov &&
|
|
printf "\00\01\02\03\04\05\06" >binbin &&
|
|
git add binbin &&
|
|
git commit -m binbin
|
|
'
|
|
|
|
test_expect_success '--stat output after text chmod' '
|
|
test_chmod -x rezrov &&
|
|
cat >expect <<-\EOF &&
|
|
rezrov | 0
|
|
1 file changed, 0 insertions(+), 0 deletions(-)
|
|
EOF
|
|
git diff HEAD --stat >actual &&
|
|
test_i18ncmp expect actual
|
|
'
|
|
|
|
test_expect_success '--shortstat output after text chmod' '
|
|
tail -n 1 <expect >expect.short &&
|
|
git diff HEAD --shortstat >actual &&
|
|
test_i18ncmp expect.short actual
|
|
'
|
|
|
|
test_expect_success '--stat output after binary chmod' '
|
|
test_chmod +x binbin &&
|
|
cat >expect <<-EOF &&
|
|
binbin | Bin
|
|
rezrov | 0
|
|
2 files changed, 0 insertions(+), 0 deletions(-)
|
|
EOF
|
|
git diff HEAD --stat >actual &&
|
|
test_i18ncmp expect actual
|
|
'
|
|
|
|
test_expect_success '--shortstat output after binary chmod' '
|
|
tail -n 1 <expect >expect.short &&
|
|
git diff HEAD --shortstat >actual &&
|
|
test_i18ncmp expect.short actual
|
|
'
|
|
|
|
test_done
|