test: add failing tests for "diff --stat" to t4049

There are a few problems in diff.c around --stat area, partially
caused by the recent 74faaa1 (Fix "git diff --stat" for interesting
- but empty - file changes, 2012-10-17), and largely caused by the
earlier change that introduced when --stat-count was added.

Add a few test pieces to t4049 to expose the issues.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2012-11-27 12:55:00 -08:00
Родитель 74faaa16f0
Коммит 9667ccbc8c
1 изменённых файлов: 45 добавлений и 1 удалений

Просмотреть файл

@ -4,12 +4,17 @@
test_description='diff --stat-count'
. ./test-lib.sh
test_expect_success setup '
test_expect_success 'setup' '
>a &&
>b &&
>c &&
>d &&
git add a b c d &&
git commit -m initial
'
test_expect_success 'limit output to 2 (simple)' '
git reset --hard &&
chmod +x c d &&
echo a >a &&
echo b >b &&
@ -23,4 +28,43 @@ test_expect_success setup '
test_i18ncmp expect actual
'
test_expect_failure 'binary changes do not count in lines' '
git reset --hard &&
chmod +x c d &&
echo a >a &&
echo b >b &&
cat "$TEST_DIRECTORY"/test-binary-1.png >d &&
cat >expect <<-\EOF
a | 1 +
b | 1 +
...
4 files changed, 2 insertions(+)
EOF
git diff --stat --stat-count=2 >actual &&
test_i18ncmp expect actual
'
test_expect_failure 'exclude unmerged entries from total file count' '
git reset --hard &&
echo a >a &&
echo b >b &&
git ls-files -s a >x &&
git rm -f d &&
for stage in 1 2 3
do
sed -e "s/ 0 a/ $stage d/" x
done |
git update-index --index-info &&
echo d >d &&
chmod +x c d &&
cat >expect <<-\EOF
a | 1 +
b | 1 +
...
4 files changed, 3 insertions(+)
EOF
git diff --stat --stat-count=2 >actual &&
test_i18ncmp expect actual
'
test_done