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