]>
Commit | Line | Data |
---|---|---|
31c2373d JH |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2012 Zbigniew Jędrzejewski-Szmek | |
4 | # | |
5 | ||
6 | test_description='test --stat output of various commands' | |
7 | ||
8 | . ./test-lib.sh | |
9 | . "$TEST_DIRECTORY"/lib-terminal.sh | |
10 | ||
11 | # 120 character name | |
12 | name=aaaaaaaaaa | |
13 | name=$name$name$name$name$name$name$name$name$name$name$name$name | |
14 | test_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 | ||
071dd0ba NTND |
22 | cat >expect72 <<-'EOF' |
23 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 + | |
24 | EOF | |
25 | test_expect_success "format-patch: small change with long name gives more space to the name" ' | |
26 | git format-patch -1 --stdout >output && | |
27 | grep " | " output >actual && | |
28 | test_cmp expect72 actual | |
29 | ' | |
30 | ||
31c2373d JH |
31 | while read cmd args |
32 | do | |
071dd0ba | 33 | cat >expect80 <<-'EOF' |
dc801e71 | 34 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 + |
31c2373d | 35 | EOF |
1b058bc3 | 36 | test_expect_success "$cmd: small change with long name gives more space to the name" ' |
31c2373d JH |
37 | git $cmd $args >output && |
38 | grep " | " output >actual && | |
071dd0ba | 39 | test_cmp expect80 actual |
31c2373d | 40 | ' |
071dd0ba NTND |
41 | done <<\EOF |
42 | diff HEAD^ HEAD --stat | |
43 | show --stat | |
44 | log -1 --stat | |
45 | EOF | |
31c2373d | 46 | |
071dd0ba NTND |
47 | while read cmd args |
48 | do | |
31c2373d | 49 | cat >expect <<-'EOF' |
dc801e71 | 50 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 + |
31c2373d | 51 | EOF |
1b058bc3 | 52 | test_expect_success "$cmd --stat=width: a long name is given more room when the bar is short" ' |
31c2373d JH |
53 | git $cmd $args --stat=40 >output && |
54 | grep " | " output >actual && | |
55 | test_cmp expect actual | |
56 | ' | |
57 | ||
58 | test_expect_success "$cmd --stat-width=width with long name" ' | |
59 | git $cmd $args --stat-width=40 >output && | |
60 | grep " | " output >actual && | |
61 | test_cmp expect actual | |
62 | ' | |
63 | ||
64 | cat >expect <<-'EOF' | |
dc801e71 | 65 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 + |
31c2373d JH |
66 | EOF |
67 | test_expect_success "$cmd --stat=...,name-width with long name" ' | |
68 | git $cmd $args --stat=60,30 >output && | |
69 | grep " | " output >actual && | |
70 | test_cmp expect actual | |
71 | ' | |
72 | ||
73 | test_expect_success "$cmd --stat-name-width with long name" ' | |
74 | git $cmd $args --stat-name-width=30 >output && | |
75 | grep " | " output >actual && | |
76 | test_cmp expect actual | |
77 | ' | |
78 | done <<\EOF | |
79 | format-patch -1 --stdout | |
80 | diff HEAD^ HEAD --stat | |
81 | show --stat | |
82 | log -1 --stat | |
83 | EOF | |
84 | ||
85 | ||
86 | test_expect_success 'preparation for big change tests' ' | |
87 | >abcd && | |
88 | git add abcd && | |
89 | git commit -m message && | |
90 | i=0 && | |
91 | while test $i -lt 1000 | |
92 | do | |
93 | echo $i && i=$(($i + 1)) | |
94 | done >abcd && | |
95 | git commit -m message abcd | |
96 | ' | |
97 | ||
071dd0ba NTND |
98 | cat >expect72 <<'EOF' |
99 | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
31c2373d | 100 | EOF |
071dd0ba NTND |
101 | cat >expect72-graph <<'EOF' |
102 | | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
8c188c74 | 103 | EOF |
af9fedc1 ZJS |
104 | cat >expect200 <<'EOF' |
105 | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
106 | EOF | |
8c188c74 | 107 | cat >expect200-graph <<'EOF' |
36dcc02c | 108 | | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
8c188c74 | 109 | EOF |
31c2373d JH |
110 | while read verb expect cmd args |
111 | do | |
112 | test_expect_success "$cmd $verb COLUMNS (big change)" ' | |
60687de5 | 113 | COLUMNS=200 git $cmd $args >output && |
31c2373d JH |
114 | grep " | " output >actual && |
115 | test_cmp "$expect" actual | |
116 | ' | |
8c188c74 | 117 | |
695985f4 | 118 | case "$cmd" in diff|show) continue;; esac |
8c188c74 ZJS |
119 | |
120 | test_expect_success "$cmd --graph $verb COLUMNS (big change)" ' | |
60687de5 | 121 | COLUMNS=200 git $cmd $args --graph >output && |
8c188c74 ZJS |
122 | grep " | " output >actual && |
123 | test_cmp "$expect-graph" actual | |
124 | ' | |
31c2373d | 125 | done <<\EOF |
071dd0ba | 126 | ignores expect72 format-patch -1 --stdout |
af9fedc1 | 127 | respects expect200 diff HEAD^ HEAD --stat |
666c92a2 | 128 | respects expect200 show --stat |
5e0ec15e | 129 | respects expect200 log -1 --stat |
31c2373d JH |
130 | EOF |
131 | ||
c4432d55 ZJS |
132 | cat >expect40 <<'EOF' |
133 | abcd | 1000 ++++++++++++++++++++++++++ | |
134 | EOF | |
8c188c74 | 135 | cat >expect40-graph <<'EOF' |
36dcc02c | 136 | | abcd | 1000 ++++++++++++++++++++++++ |
8c188c74 | 137 | EOF |
c4432d55 ZJS |
138 | while read verb expect cmd args |
139 | do | |
140 | test_expect_success "$cmd $verb not enough COLUMNS (big change)" ' | |
60687de5 | 141 | COLUMNS=40 git $cmd $args >output && |
c4432d55 ZJS |
142 | grep " | " output >actual && |
143 | test_cmp "$expect" actual | |
144 | ' | |
df44483a | 145 | |
695985f4 | 146 | case "$cmd" in diff|show) continue;; esac |
8c188c74 ZJS |
147 | |
148 | test_expect_success "$cmd --graph $verb not enough COLUMNS (big change)" ' | |
60687de5 | 149 | COLUMNS=40 git $cmd $args --graph >output && |
8c188c74 ZJS |
150 | grep " | " output >actual && |
151 | test_cmp "$expect-graph" actual | |
152 | ' | |
36dcc02c | 153 | done <<\EOF |
071dd0ba | 154 | ignores expect72 format-patch -1 --stdout |
36dcc02c LP |
155 | respects expect40 diff HEAD^ HEAD --stat |
156 | respects expect40 show --stat | |
157 | respects expect40 log -1 --stat | |
158 | EOF | |
159 | ||
160 | cat >expect40 <<'EOF' | |
161 | abcd | 1000 ++++++++++++++++++++++++++ | |
162 | EOF | |
163 | cat >expect40-graph <<'EOF' | |
164 | | abcd | 1000 ++++++++++++++++++++++++++ | |
165 | EOF | |
166 | while read verb expect cmd args | |
167 | do | |
168 | test_expect_success "$cmd $verb statGraphWidth config" ' | |
60687de5 | 169 | git -c diff.statGraphWidth=26 $cmd $args >output && |
36dcc02c LP |
170 | grep " | " output >actual && |
171 | test_cmp "$expect" actual | |
172 | ' | |
173 | ||
695985f4 | 174 | case "$cmd" in diff|show) continue;; esac |
8c188c74 ZJS |
175 | |
176 | test_expect_success "$cmd --graph $verb statGraphWidth config" ' | |
60687de5 | 177 | git -c diff.statGraphWidth=26 $cmd $args --graph >output && |
8c188c74 ZJS |
178 | grep " | " output >actual && |
179 | test_cmp "$expect-graph" actual | |
180 | ' | |
c4432d55 | 181 | done <<\EOF |
071dd0ba | 182 | ignores expect72 format-patch -1 --stdout |
c4432d55 ZJS |
183 | respects expect40 diff HEAD^ HEAD --stat |
184 | respects expect40 show --stat | |
185 | respects expect40 log -1 --stat | |
186 | EOF | |
187 | ||
188 | ||
31c2373d JH |
189 | cat >expect <<'EOF' |
190 | abcd | 1000 ++++++++++++++++++++++++++ | |
191 | EOF | |
8c188c74 ZJS |
192 | cat >expect-graph <<'EOF' |
193 | | abcd | 1000 ++++++++++++++++++++++++++ | |
194 | EOF | |
31c2373d JH |
195 | while read cmd args |
196 | do | |
197 | test_expect_success "$cmd --stat=width with big change" ' | |
60687de5 | 198 | git $cmd $args --stat=40 >output && |
31c2373d JH |
199 | grep " | " output >actual && |
200 | test_cmp expect actual | |
201 | ' | |
202 | ||
203 | test_expect_success "$cmd --stat-width=width with big change" ' | |
60687de5 | 204 | git $cmd $args --stat-width=40 >output && |
31c2373d JH |
205 | grep " | " output >actual && |
206 | test_cmp expect actual | |
969fe57b ZJS |
207 | ' |
208 | ||
8c188c74 | 209 | test_expect_success "$cmd --stat-graph-width with big change" ' |
60687de5 | 210 | git $cmd $args --stat-graph-width=26 >output && |
969fe57b ZJS |
211 | grep " | " output >actual && |
212 | test_cmp expect actual | |
31c2373d | 213 | ' |
8c188c74 | 214 | |
695985f4 | 215 | case "$cmd" in diff|show) continue;; esac |
8c188c74 ZJS |
216 | |
217 | test_expect_success "$cmd --stat-width=width --graph with big change" ' | |
60687de5 | 218 | git $cmd $args --stat-width=40 --graph >output && |
8c188c74 ZJS |
219 | grep " | " output >actual && |
220 | test_cmp expect-graph actual | |
221 | ' | |
222 | ||
223 | test_expect_success "$cmd --stat-graph-width --graph with big change" ' | |
60687de5 | 224 | git $cmd $args --stat-graph-width=26 --graph >output && |
8c188c74 ZJS |
225 | grep " | " output >actual && |
226 | test_cmp expect-graph actual | |
227 | ' | |
31c2373d JH |
228 | done <<\EOF |
229 | format-patch -1 --stdout | |
230 | diff HEAD^ HEAD --stat | |
231 | show --stat | |
232 | log -1 --stat | |
233 | EOF | |
234 | ||
235 | test_expect_success 'preparation for long filename tests' ' | |
236 | cp abcd aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa && | |
237 | git add aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa && | |
238 | git commit -m message | |
239 | ' | |
240 | ||
241 | cat >expect <<'EOF' | |
1b058bc3 | 242 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++ |
31c2373d | 243 | EOF |
8c188c74 ZJS |
244 | cat >expect-graph <<'EOF' |
245 | | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++ | |
246 | EOF | |
31c2373d JH |
247 | while read cmd args |
248 | do | |
1b058bc3 | 249 | test_expect_success "$cmd --stat=width with big change is more balanced" ' |
31c2373d JH |
250 | git $cmd $args --stat-width=60 >output && |
251 | grep " | " output >actual && | |
252 | test_cmp expect actual | |
253 | ' | |
8c188c74 | 254 | |
695985f4 | 255 | case "$cmd" in diff|show) continue;; esac |
8c188c74 ZJS |
256 | |
257 | test_expect_success "$cmd --stat=width --graph with big change is balanced" ' | |
258 | git $cmd $args --stat-width=60 --graph >output && | |
259 | grep " | " output >actual && | |
260 | test_cmp expect-graph actual | |
261 | ' | |
31c2373d JH |
262 | done <<\EOF |
263 | format-patch -1 --stdout | |
264 | diff HEAD^ HEAD --stat | |
265 | show --stat | |
266 | log -1 --stat | |
267 | EOF | |
268 | ||
071dd0ba NTND |
269 | cat >expect72 <<'EOF' |
270 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++ | |
31c2373d | 271 | EOF |
071dd0ba NTND |
272 | cat >expect72-graph <<'EOF' |
273 | | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++ | |
8c188c74 | 274 | EOF |
af9fedc1 | 275 | cat >expect200 <<'EOF' |
1b058bc3 | 276 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
af9fedc1 | 277 | EOF |
8c188c74 | 278 | cat >expect200-graph <<'EOF' |
36dcc02c | 279 | | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
8c188c74 | 280 | EOF |
31c2373d JH |
281 | while read verb expect cmd args |
282 | do | |
283 | test_expect_success "$cmd $verb COLUMNS (long filename)" ' | |
60687de5 | 284 | COLUMNS=200 git $cmd $args >output && |
31c2373d JH |
285 | grep " | " output >actual && |
286 | test_cmp "$expect" actual | |
287 | ' | |
8c188c74 | 288 | |
695985f4 | 289 | case "$cmd" in diff|show) continue;; esac |
8c188c74 ZJS |
290 | |
291 | test_expect_success "$cmd --graph $verb COLUMNS (long filename)" ' | |
60687de5 | 292 | COLUMNS=200 git $cmd $args --graph >output && |
8c188c74 ZJS |
293 | grep " | " output >actual && |
294 | test_cmp "$expect-graph" actual | |
295 | ' | |
31c2373d | 296 | done <<\EOF |
071dd0ba | 297 | ignores expect72 format-patch -1 --stdout |
af9fedc1 | 298 | respects expect200 diff HEAD^ HEAD --stat |
666c92a2 | 299 | respects expect200 show --stat |
5e0ec15e | 300 | respects expect200 log -1 --stat |
31c2373d JH |
301 | EOF |
302 | ||
da79161d LP |
303 | cat >expect1 <<'EOF' |
304 | ...aaaaaaa | 1000 ++++++ | |
305 | EOF | |
306 | cat >expect1-graph <<'EOF' | |
307 | | ...aaaaaaa | 1000 ++++++ | |
308 | EOF | |
678c5741 | 309 | while read verb expect cmd args |
da79161d | 310 | do |
bafa16e5 ZJS |
311 | test_expect_success COLUMNS_CAN_BE_1 \ |
312 | "$cmd $verb prefix greater than COLUMNS (big change)" ' | |
60687de5 | 313 | COLUMNS=1 git $cmd $args >output && |
da79161d LP |
314 | grep " | " output >actual && |
315 | test_cmp "$expect" actual | |
316 | ' | |
317 | ||
695985f4 | 318 | case "$cmd" in diff|show) continue;; esac |
da79161d | 319 | |
bafa16e5 ZJS |
320 | test_expect_success COLUMNS_CAN_BE_1 \ |
321 | "$cmd --graph $verb prefix greater than COLUMNS (big change)" ' | |
60687de5 | 322 | COLUMNS=1 git $cmd $args --graph >output && |
da79161d LP |
323 | grep " | " output >actual && |
324 | test_cmp "$expect-graph" actual | |
325 | ' | |
326 | done <<\EOF | |
071dd0ba | 327 | ignores expect72 format-patch -1 --stdout |
678c5741 LP |
328 | respects expect1 diff HEAD^ HEAD --stat |
329 | respects expect1 show --stat | |
330 | respects expect1 log -1 --stat | |
da79161d LP |
331 | EOF |
332 | ||
31c2373d | 333 | cat >expect <<'EOF' |
7a7159ac | 334 | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
31c2373d | 335 | EOF |
7a7159ac | 336 | test_expect_success 'merge --stat respects COLUMNS (big change)' ' |
31c2373d JH |
337 | git checkout -b branch HEAD^^ && |
338 | COLUMNS=100 git merge --stat --no-ff master^ >output && | |
60687de5 | 339 | grep " | " output >actual && |
31c2373d JH |
340 | test_cmp expect actual |
341 | ' | |
342 | ||
343 | cat >expect <<'EOF' | |
1b058bc3 | 344 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++ |
31c2373d | 345 | EOF |
7a7159ac | 346 | test_expect_success 'merge --stat respects COLUMNS (long filename)' ' |
31c2373d | 347 | COLUMNS=100 git merge --stat --no-ff master >output && |
60687de5 | 348 | grep " | " output >actual && |
31c2373d JH |
349 | test_cmp expect actual |
350 | ' | |
351 | ||
352 | test_done |