]>
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 | ||
22 | while read cmd args | |
23 | do | |
24 | cat >expect <<-'EOF' | |
dc801e71 | 25 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 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' | |
dc801e71 | 34 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 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' | |
dc801e71 | 49 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 + |
31c2373d JH |
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 | ' | |
62 | done <<\EOF | |
63 | format-patch -1 --stdout | |
64 | diff HEAD^ HEAD --stat | |
65 | show --stat | |
66 | log -1 --stat | |
67 | EOF | |
68 | ||
69 | ||
70 | test_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 | ||
82 | cat >expect80 <<'EOF' | |
83 | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
84 | EOF | |
8c188c74 ZJS |
85 | cat >expect80-graph <<'EOF' |
86 | | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
87 | EOF | |
af9fedc1 ZJS |
88 | cat >expect200 <<'EOF' |
89 | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
90 | EOF | |
8c188c74 | 91 | cat >expect200-graph <<'EOF' |
36dcc02c | 92 | | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
8c188c74 | 93 | EOF |
31c2373d JH |
94 | while read verb expect cmd args |
95 | do | |
96 | test_expect_success "$cmd $verb COLUMNS (big change)" ' | |
60687de5 | 97 | COLUMNS=200 git $cmd $args >output && |
31c2373d JH |
98 | grep " | " output >actual && |
99 | test_cmp "$expect" actual | |
100 | ' | |
8c188c74 | 101 | |
695985f4 | 102 | case "$cmd" in diff|show) continue;; esac |
8c188c74 ZJS |
103 | |
104 | test_expect_success "$cmd --graph $verb COLUMNS (big change)" ' | |
60687de5 | 105 | COLUMNS=200 git $cmd $args --graph >output && |
8c188c74 ZJS |
106 | grep " | " output >actual && |
107 | test_cmp "$expect-graph" actual | |
108 | ' | |
31c2373d JH |
109 | done <<\EOF |
110 | ignores expect80 format-patch -1 --stdout | |
af9fedc1 | 111 | respects expect200 diff HEAD^ HEAD --stat |
666c92a2 | 112 | respects expect200 show --stat |
5e0ec15e | 113 | respects expect200 log -1 --stat |
31c2373d JH |
114 | EOF |
115 | ||
c4432d55 ZJS |
116 | cat >expect40 <<'EOF' |
117 | abcd | 1000 ++++++++++++++++++++++++++ | |
118 | EOF | |
8c188c74 | 119 | cat >expect40-graph <<'EOF' |
36dcc02c | 120 | | abcd | 1000 ++++++++++++++++++++++++ |
8c188c74 | 121 | EOF |
c4432d55 ZJS |
122 | while read verb expect cmd args |
123 | do | |
124 | test_expect_success "$cmd $verb not enough COLUMNS (big change)" ' | |
60687de5 | 125 | COLUMNS=40 git $cmd $args >output && |
c4432d55 ZJS |
126 | grep " | " output >actual && |
127 | test_cmp "$expect" actual | |
128 | ' | |
df44483a | 129 | |
695985f4 | 130 | case "$cmd" in diff|show) continue;; esac |
8c188c74 ZJS |
131 | |
132 | test_expect_success "$cmd --graph $verb not enough COLUMNS (big change)" ' | |
60687de5 | 133 | COLUMNS=40 git $cmd $args --graph >output && |
8c188c74 ZJS |
134 | grep " | " output >actual && |
135 | test_cmp "$expect-graph" actual | |
136 | ' | |
36dcc02c LP |
137 | done <<\EOF |
138 | ignores expect80 format-patch -1 --stdout | |
139 | respects expect40 diff HEAD^ HEAD --stat | |
140 | respects expect40 show --stat | |
141 | respects expect40 log -1 --stat | |
142 | EOF | |
143 | ||
144 | cat >expect40 <<'EOF' | |
145 | abcd | 1000 ++++++++++++++++++++++++++ | |
146 | EOF | |
147 | cat >expect40-graph <<'EOF' | |
148 | | abcd | 1000 ++++++++++++++++++++++++++ | |
149 | EOF | |
150 | while read verb expect cmd args | |
151 | do | |
152 | test_expect_success "$cmd $verb statGraphWidth config" ' | |
60687de5 | 153 | git -c diff.statGraphWidth=26 $cmd $args >output && |
36dcc02c LP |
154 | grep " | " output >actual && |
155 | test_cmp "$expect" actual | |
156 | ' | |
157 | ||
695985f4 | 158 | case "$cmd" in diff|show) continue;; esac |
8c188c74 ZJS |
159 | |
160 | test_expect_success "$cmd --graph $verb statGraphWidth config" ' | |
60687de5 | 161 | git -c diff.statGraphWidth=26 $cmd $args --graph >output && |
8c188c74 ZJS |
162 | grep " | " output >actual && |
163 | test_cmp "$expect-graph" actual | |
164 | ' | |
c4432d55 ZJS |
165 | done <<\EOF |
166 | ignores expect80 format-patch -1 --stdout | |
167 | respects expect40 diff HEAD^ HEAD --stat | |
168 | respects expect40 show --stat | |
169 | respects expect40 log -1 --stat | |
170 | EOF | |
171 | ||
172 | ||
31c2373d JH |
173 | cat >expect <<'EOF' |
174 | abcd | 1000 ++++++++++++++++++++++++++ | |
175 | EOF | |
8c188c74 ZJS |
176 | cat >expect-graph <<'EOF' |
177 | | abcd | 1000 ++++++++++++++++++++++++++ | |
178 | EOF | |
31c2373d JH |
179 | while read cmd args |
180 | do | |
181 | test_expect_success "$cmd --stat=width with big change" ' | |
60687de5 | 182 | git $cmd $args --stat=40 >output && |
31c2373d JH |
183 | grep " | " output >actual && |
184 | test_cmp expect actual | |
185 | ' | |
186 | ||
187 | test_expect_success "$cmd --stat-width=width with big change" ' | |
60687de5 | 188 | git $cmd $args --stat-width=40 >output && |
31c2373d JH |
189 | grep " | " output >actual && |
190 | test_cmp expect actual | |
969fe57b ZJS |
191 | ' |
192 | ||
8c188c74 | 193 | test_expect_success "$cmd --stat-graph-width with big change" ' |
60687de5 | 194 | git $cmd $args --stat-graph-width=26 >output && |
969fe57b ZJS |
195 | grep " | " output >actual && |
196 | test_cmp expect actual | |
31c2373d | 197 | ' |
8c188c74 | 198 | |
695985f4 | 199 | case "$cmd" in diff|show) continue;; esac |
8c188c74 ZJS |
200 | |
201 | test_expect_success "$cmd --stat-width=width --graph with big change" ' | |
60687de5 | 202 | git $cmd $args --stat-width=40 --graph >output && |
8c188c74 ZJS |
203 | grep " | " output >actual && |
204 | test_cmp expect-graph actual | |
205 | ' | |
206 | ||
207 | test_expect_success "$cmd --stat-graph-width --graph with big change" ' | |
60687de5 | 208 | git $cmd $args --stat-graph-width=26 --graph >output && |
8c188c74 ZJS |
209 | grep " | " output >actual && |
210 | test_cmp expect-graph actual | |
211 | ' | |
31c2373d JH |
212 | done <<\EOF |
213 | format-patch -1 --stdout | |
214 | diff HEAD^ HEAD --stat | |
215 | show --stat | |
216 | log -1 --stat | |
217 | EOF | |
218 | ||
219 | test_expect_success 'preparation for long filename tests' ' | |
220 | cp abcd aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa && | |
221 | git add aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa && | |
222 | git commit -m message | |
223 | ' | |
224 | ||
225 | cat >expect <<'EOF' | |
1b058bc3 | 226 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++ |
31c2373d | 227 | EOF |
8c188c74 ZJS |
228 | cat >expect-graph <<'EOF' |
229 | | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++ | |
230 | EOF | |
31c2373d JH |
231 | while read cmd args |
232 | do | |
1b058bc3 | 233 | test_expect_success "$cmd --stat=width with big change is more balanced" ' |
31c2373d JH |
234 | git $cmd $args --stat-width=60 >output && |
235 | grep " | " output >actual && | |
236 | test_cmp expect actual | |
237 | ' | |
8c188c74 | 238 | |
695985f4 | 239 | case "$cmd" in diff|show) continue;; esac |
8c188c74 ZJS |
240 | |
241 | test_expect_success "$cmd --stat=width --graph with big change is balanced" ' | |
242 | git $cmd $args --stat-width=60 --graph >output && | |
243 | grep " | " output >actual && | |
244 | test_cmp expect-graph actual | |
245 | ' | |
31c2373d JH |
246 | done <<\EOF |
247 | format-patch -1 --stdout | |
248 | diff HEAD^ HEAD --stat | |
249 | show --stat | |
250 | log -1 --stat | |
251 | EOF | |
252 | ||
253 | cat >expect80 <<'EOF' | |
254 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++++++++++ | |
255 | EOF | |
8c188c74 ZJS |
256 | cat >expect80-graph <<'EOF' |
257 | | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++++++++++ | |
258 | EOF | |
af9fedc1 | 259 | cat >expect200 <<'EOF' |
1b058bc3 | 260 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
af9fedc1 | 261 | EOF |
8c188c74 | 262 | cat >expect200-graph <<'EOF' |
36dcc02c | 263 | | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
8c188c74 | 264 | EOF |
31c2373d JH |
265 | while read verb expect cmd args |
266 | do | |
267 | test_expect_success "$cmd $verb COLUMNS (long filename)" ' | |
60687de5 | 268 | COLUMNS=200 git $cmd $args >output && |
31c2373d JH |
269 | grep " | " output >actual && |
270 | test_cmp "$expect" actual | |
271 | ' | |
8c188c74 | 272 | |
695985f4 | 273 | case "$cmd" in diff|show) continue;; esac |
8c188c74 ZJS |
274 | |
275 | test_expect_success "$cmd --graph $verb COLUMNS (long filename)" ' | |
60687de5 | 276 | COLUMNS=200 git $cmd $args --graph >output && |
8c188c74 ZJS |
277 | grep " | " output >actual && |
278 | test_cmp "$expect-graph" actual | |
279 | ' | |
31c2373d JH |
280 | done <<\EOF |
281 | ignores expect80 format-patch -1 --stdout | |
af9fedc1 | 282 | respects expect200 diff HEAD^ HEAD --stat |
666c92a2 | 283 | respects expect200 show --stat |
5e0ec15e | 284 | respects expect200 log -1 --stat |
31c2373d JH |
285 | EOF |
286 | ||
da79161d LP |
287 | cat >expect1 <<'EOF' |
288 | ...aaaaaaa | 1000 ++++++ | |
289 | EOF | |
290 | cat >expect1-graph <<'EOF' | |
291 | | ...aaaaaaa | 1000 ++++++ | |
292 | EOF | |
678c5741 | 293 | while read verb expect cmd args |
da79161d | 294 | do |
bafa16e5 ZJS |
295 | test_expect_success COLUMNS_CAN_BE_1 \ |
296 | "$cmd $verb prefix greater than COLUMNS (big change)" ' | |
60687de5 | 297 | COLUMNS=1 git $cmd $args >output && |
da79161d LP |
298 | grep " | " output >actual && |
299 | test_cmp "$expect" actual | |
300 | ' | |
301 | ||
695985f4 | 302 | case "$cmd" in diff|show) continue;; esac |
da79161d | 303 | |
bafa16e5 ZJS |
304 | test_expect_success COLUMNS_CAN_BE_1 \ |
305 | "$cmd --graph $verb prefix greater than COLUMNS (big change)" ' | |
60687de5 | 306 | COLUMNS=1 git $cmd $args --graph >output && |
da79161d LP |
307 | grep " | " output >actual && |
308 | test_cmp "$expect-graph" actual | |
309 | ' | |
310 | done <<\EOF | |
678c5741 LP |
311 | ignores expect80 format-patch -1 --stdout |
312 | respects expect1 diff HEAD^ HEAD --stat | |
313 | respects expect1 show --stat | |
314 | respects expect1 log -1 --stat | |
da79161d LP |
315 | EOF |
316 | ||
31c2373d | 317 | cat >expect <<'EOF' |
7a7159ac | 318 | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
31c2373d | 319 | EOF |
7a7159ac | 320 | test_expect_success 'merge --stat respects COLUMNS (big change)' ' |
31c2373d JH |
321 | git checkout -b branch HEAD^^ && |
322 | COLUMNS=100 git merge --stat --no-ff master^ >output && | |
60687de5 | 323 | grep " | " output >actual && |
31c2373d JH |
324 | test_cmp expect actual |
325 | ' | |
326 | ||
327 | cat >expect <<'EOF' | |
1b058bc3 | 328 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++ |
31c2373d | 329 | EOF |
7a7159ac | 330 | test_expect_success 'merge --stat respects COLUMNS (long filename)' ' |
31c2373d | 331 | COLUMNS=100 git merge --stat --no-ff master >output && |
60687de5 | 332 | grep " | " output >actual && |
31c2373d JH |
333 | test_cmp expect actual |
334 | ' | |
335 | ||
336 | test_done |