Imported Upstream version 2.18.3
[platform/upstream/git.git] / t / t4049-diff-stat-count.sh
index a6d1887..a341217 100755 (executable)
@@ -4,22 +4,65 @@
 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 &&
-       chmod +x c d &&
+       git commit -m initial
+'
+
+test_expect_success 'mode-only change show as a 0-line change' '
+       git reset --hard &&
+       test_chmod +x b d &&
+       echo a >a &&
+       echo c >c &&
+       cat >expect <<-\EOF &&
+        a | 1 +
+        b | 0
+        ...
+        4 files changed, 2 insertions(+)
+       EOF
+       git diff --stat --stat-count=2 HEAD >actual &&
+       test_i18ncmp expect actual
+'
+
+test_expect_success 'binary changes do not count in lines' '
+       git reset --hard &&
+       echo a >a &&
+       echo c >c &&
+       cat "$TEST_DIRECTORY"/test-binary-1.png >d &&
+       cat >expect <<-\EOF &&
+        a | 1 +
+        c | 1 +
+        ...
+        3 files changed, 2 insertions(+)
+       EOF
+       git diff --stat --stat-count=2 >actual &&
+       test_i18ncmp expect actual
+'
+
+test_expect_success 'exclude unmerged entries from total file count' '
+       git reset --hard &&
        echo a >a &&
        echo b >b &&
-       cat >expect <<-\EOF
-        a |    1 +
-        b |    1 +
-        2 files changed, 2 insertions(+)
+       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 &&
+       cat >expect <<-\EOF &&
+        a | 1 +
+        b | 1 +
+        ...
+        3 files changed, 3 insertions(+)
        EOF
        git diff --stat --stat-count=2 >actual &&
-       test_cmp expect actual
+       test_i18ncmp expect actual
 '
 
 test_done