]> git.ipfire.org Git - thirdparty/git.git/blame - t/t4052-stat-output.sh
diff --stat: use a maximum of 5/8 for the filename part
[thirdparty/git.git] / t / t4052-stat-output.sh
CommitLineData
31c2373d
JH
1#!/bin/sh
2#
3# Copyright (c) 2012 Zbigniew Jędrzejewski-Szmek
4#
5
6test_description='test --stat output of various commands'
7
8. ./test-lib.sh
9. "$TEST_DIRECTORY"/lib-terminal.sh
10
11# 120 character name
12name=aaaaaaaaaa
13name=$name$name$name$name$name$name$name$name$name$name$name$name
14test_expect_success 'preparation' '
15 >"$name" &&
16 git add "$name" &&
17 git commit -m message &&
18 echo a >"$name" &&
19 git commit -m message "$name"
20'
21
22while read cmd args
23do
24 cat >expect <<-'EOF'
1b058bc3 25 ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +
31c2373d 26 EOF
1b058bc3 27 test_expect_success "$cmd: small change with long name gives more space to the name" '
31c2373d
JH
28 git $cmd $args >output &&
29 grep " | " output >actual &&
30 test_cmp expect actual
31 '
32
33 cat >expect <<-'EOF'
1b058bc3 34 ...aaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +
31c2373d 35 EOF
1b058bc3 36 test_expect_success "$cmd --stat=width: a long name is given more room when the bar is short" '
31c2373d
JH
37 git $cmd $args --stat=40 >output &&
38 grep " | " output >actual &&
39 test_cmp expect actual
40 '
41
42 test_expect_success "$cmd --stat-width=width with long name" '
43 git $cmd $args --stat-width=40 >output &&
44 grep " | " output >actual &&
45 test_cmp expect actual
46 '
47
48 cat >expect <<-'EOF'
49 ...aaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +
50 EOF
51 test_expect_success "$cmd --stat=...,name-width with long name" '
52 git $cmd $args --stat=60,30 >output &&
53 grep " | " output >actual &&
54 test_cmp expect actual
55 '
56
57 test_expect_success "$cmd --stat-name-width with long name" '
58 git $cmd $args --stat-name-width=30 >output &&
59 grep " | " output >actual &&
60 test_cmp expect actual
61 '
62done <<\EOF
63format-patch -1 --stdout
64diff HEAD^ HEAD --stat
65show --stat
66log -1 --stat
67EOF
68
69
70test_expect_success 'preparation for big change tests' '
71 >abcd &&
72 git add abcd &&
73 git commit -m message &&
74 i=0 &&
75 while test $i -lt 1000
76 do
77 echo $i && i=$(($i + 1))
78 done >abcd &&
79 git commit -m message abcd
80'
81
82cat >expect80 <<'EOF'
83 abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
84EOF
85
af9fedc1
ZJS
86cat >expect200 <<'EOF'
87 abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
88EOF
89
31c2373d
JH
90while read verb expect cmd args
91do
92 test_expect_success "$cmd $verb COLUMNS (big change)" '
93 COLUMNS=200 git $cmd $args >output
94 grep " | " output >actual &&
95 test_cmp "$expect" actual
96 '
97done <<\EOF
98ignores expect80 format-patch -1 --stdout
af9fedc1 99respects expect200 diff HEAD^ HEAD --stat
666c92a2 100respects expect200 show --stat
5e0ec15e 101respects expect200 log -1 --stat
31c2373d
JH
102EOF
103
104cat >expect <<'EOF'
105 abcd | 1000 ++++++++++++++++++++++++++
106EOF
107while read cmd args
108do
109 test_expect_success "$cmd --stat=width with big change" '
110 git $cmd $args --stat=40 >output
111 grep " | " output >actual &&
112 test_cmp expect actual
113 '
114
115 test_expect_success "$cmd --stat-width=width with big change" '
116 git $cmd $args --stat-width=40 >output
117 grep " | " output >actual &&
118 test_cmp expect actual
119 '
120done <<\EOF
121format-patch -1 --stdout
122diff HEAD^ HEAD --stat
123show --stat
124log -1 --stat
125EOF
126
127test_expect_success 'preparation for long filename tests' '
128 cp abcd aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&
129 git add aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa &&
130 git commit -m message
131'
132
133cat >expect <<'EOF'
1b058bc3 134 ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++
31c2373d
JH
135EOF
136while read cmd args
137do
1b058bc3 138 test_expect_success "$cmd --stat=width with big change is more balanced" '
31c2373d
JH
139 git $cmd $args --stat-width=60 >output &&
140 grep " | " output >actual &&
141 test_cmp expect actual
142 '
143done <<\EOF
144format-patch -1 --stdout
145diff HEAD^ HEAD --stat
146show --stat
147log -1 --stat
148EOF
149
150cat >expect80 <<'EOF'
151 ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++++++++++
152EOF
af9fedc1 153cat >expect200 <<'EOF'
1b058bc3 154 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
af9fedc1 155EOF
31c2373d
JH
156while read verb expect cmd args
157do
158 test_expect_success "$cmd $verb COLUMNS (long filename)" '
159 COLUMNS=200 git $cmd $args >output
160 grep " | " output >actual &&
161 test_cmp "$expect" actual
162 '
163done <<\EOF
164ignores expect80 format-patch -1 --stdout
af9fedc1 165respects expect200 diff HEAD^ HEAD --stat
666c92a2 166respects expect200 show --stat
5e0ec15e 167respects expect200 log -1 --stat
31c2373d
JH
168EOF
169
170cat >expect <<'EOF'
7a7159ac 171 abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
31c2373d 172EOF
7a7159ac 173test_expect_success 'merge --stat respects COLUMNS (big change)' '
31c2373d
JH
174 git checkout -b branch HEAD^^ &&
175 COLUMNS=100 git merge --stat --no-ff master^ >output &&
176 grep " | " output >actual
177 test_cmp expect actual
178'
179
180cat >expect <<'EOF'
1b058bc3 181 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++
31c2373d 182EOF
7a7159ac 183test_expect_success 'merge --stat respects COLUMNS (long filename)' '
31c2373d
JH
184 COLUMNS=100 git merge --stat --no-ff master >output &&
185 grep " | " output >actual
186 test_cmp expect actual
187'
188
189test_done