Eleven tests for various combinations of a long filename and/or big
change count and ways to specify widths for diff --stat.
---
Tests added in previous version of 'diff --stat: use full terminal width'
are extracted into a separate patch. The tests are usefull independently
of that patch anyway.
changes to tests since v4:
- seq is replaced with a while loop for windows compatibility
- grep -m 1 is replaced with grep " | "
- redirects are made portable
- piped output is split into two commands to verify that the first command
sucessfully runs to completion
t/t4014-format-patch.sh | 101 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 101 insertions(+), 0 deletions(-)
diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index 6797512..f6ebb51 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -894,4 +894,105 @@ test_expect_success 'format patch ignores color.ui' '
test_cmp expect actual
'
+# 120 character name
+name=aaaaaaaaaa
+name=$name$name$name$name$name$name$name$name$name$name$name$name
+test_expect_success 'preparation' "
+ >\"$name\" &&
+ git add \"$name\" &&
+ git commit -m message &&
+ echo a >\"$name\" &&
+ git commit -m message \"$name\"
+"
+
+cat >expect <<'EOF'
+ ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +
+EOF
+test_expect_success 'format patch graph width defaults to 80 columns' '
+ git format-patch --stat --stdout -1 >output &&
+ grep " | " output >actual &&
+ test_cmp expect actual
+'
+
+cat >expect <<'EOF'
+ ...aaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +
+EOF
+test_expect_success 'format patch --stat=width with long name' '
+ git format-patch --stat=40 --stdout -1 >output &&
+ grep " | " output >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'format patch --stat-width=width works with long name' '
+ git format-patch --stat-width=40 --stdout -1 >output &&
+ grep " | " output >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'format patch --stat=...,name-width with long name' '
+ git format-patch --stat=60,29 --stdout -1 >output &&
+ grep " | " output >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'format patch --stat-name-width with long name' '
+ git format-patch --stat-name-width=29 --stdout -1 >output &&
+ grep " | " output >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'preparation' '
+ >abcd &&
+ git add abcd &&
+ git commit -m message &&
+ i=0 &&
+ while test $i -lt 1000; do
+ echo $i &&
+ i=$(($i + 1))
+ done >abcd &&
+ git commit -m message abcd
+'
+
+cat >expect <<'EOF'
+ abcd | 1000 ++++++++++++++++++++++++++++++++++++++++
+EOF
+test_expect_success 'format patch graph part width is 40 columns' '
+ git format-patch --stat --stdout -1 >output &&
+ grep " | " output >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'format patch ignores COLUMNS' '
+ COLUMNS=200 git format-patch --stat --stdout -1 >output
+ grep " | " output >actual &&
+ test_cmp expect actual
+'
+
+cat >expect <<'EOF'
+ abcd | 1000 ++++++++++++++++++++++++++
+EOF
+test_expect_success 'format patch --stat=width with big change' '
+ git format-patch --stat=40 --stdout -1 >output
+ grep " | " output >actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'format patch --stat-width=width with big change' '
+ git format-patch --stat-width=40 --stdout -1 >output
+ grep " | " output >actual &&
+ test_cmp expect actual
+'
+
+cat >expect <<'EOF'
+ ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++
+EOF
+test_expect_success 'format patch --stat=width with big change and long name' '
+ cp abcd aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&
+ git add aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&
+ git commit -m message &&
+ git format-patch --stat-width=60 --stdout -1 >output &&
+ grep " | " output >actual &&
+ test_cmp expect actual
+'
+
test_done
--
1.7.9.5.g91d5