]>
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 | |
85 | ||
af9fedc1 ZJS |
86 | cat >expect200 <<'EOF' |
87 | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
88 | EOF | |
89 | ||
31c2373d JH |
90 | while read verb expect cmd args |
91 | do | |
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 | ' | |
97 | done <<\EOF | |
98 | ignores expect80 format-patch -1 --stdout | |
af9fedc1 | 99 | respects expect200 diff HEAD^ HEAD --stat |
666c92a2 | 100 | respects expect200 show --stat |
5e0ec15e | 101 | respects expect200 log -1 --stat |
31c2373d JH |
102 | EOF |
103 | ||
c4432d55 ZJS |
104 | cat >expect40 <<'EOF' |
105 | abcd | 1000 ++++++++++++++++++++++++++ | |
106 | EOF | |
107 | ||
108 | while read verb expect cmd args | |
109 | do | |
110 | test_expect_success "$cmd $verb not enough COLUMNS (big change)" ' | |
111 | COLUMNS=40 git $cmd $args >output | |
112 | grep " | " output >actual && | |
113 | test_cmp "$expect" actual | |
114 | ' | |
df44483a ZJS |
115 | |
116 | test_expect_success "$cmd $verb statGraphWidth config" ' | |
117 | git -c diff.statGraphWidth=26 $cmd $args >output | |
118 | grep " | " output >actual && | |
119 | test_cmp "$expect" actual | |
120 | ' | |
c4432d55 ZJS |
121 | done <<\EOF |
122 | ignores expect80 format-patch -1 --stdout | |
123 | respects expect40 diff HEAD^ HEAD --stat | |
124 | respects expect40 show --stat | |
125 | respects expect40 log -1 --stat | |
126 | EOF | |
127 | ||
128 | ||
31c2373d JH |
129 | cat >expect <<'EOF' |
130 | abcd | 1000 ++++++++++++++++++++++++++ | |
131 | EOF | |
132 | while read cmd args | |
133 | do | |
134 | test_expect_success "$cmd --stat=width with big change" ' | |
135 | git $cmd $args --stat=40 >output | |
136 | grep " | " output >actual && | |
137 | test_cmp expect actual | |
138 | ' | |
139 | ||
140 | test_expect_success "$cmd --stat-width=width with big change" ' | |
141 | git $cmd $args --stat-width=40 >output | |
142 | grep " | " output >actual && | |
143 | test_cmp expect actual | |
969fe57b ZJS |
144 | ' |
145 | ||
146 | test_expect_success "$cmd --stat-graph--width with big change" ' | |
147 | git $cmd $args --stat-graph-width=26 >output | |
148 | grep " | " output >actual && | |
149 | test_cmp expect actual | |
31c2373d JH |
150 | ' |
151 | done <<\EOF | |
152 | format-patch -1 --stdout | |
153 | diff HEAD^ HEAD --stat | |
154 | show --stat | |
155 | log -1 --stat | |
156 | EOF | |
157 | ||
158 | test_expect_success 'preparation for long filename tests' ' | |
159 | cp abcd aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa && | |
160 | git add aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa && | |
161 | git commit -m message | |
162 | ' | |
163 | ||
164 | cat >expect <<'EOF' | |
1b058bc3 | 165 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++ |
31c2373d JH |
166 | EOF |
167 | while read cmd args | |
168 | do | |
1b058bc3 | 169 | test_expect_success "$cmd --stat=width with big change is more balanced" ' |
31c2373d JH |
170 | git $cmd $args --stat-width=60 >output && |
171 | grep " | " output >actual && | |
172 | test_cmp expect actual | |
173 | ' | |
174 | done <<\EOF | |
175 | format-patch -1 --stdout | |
176 | diff HEAD^ HEAD --stat | |
177 | show --stat | |
178 | log -1 --stat | |
179 | EOF | |
180 | ||
181 | cat >expect80 <<'EOF' | |
182 | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++++++++++ | |
183 | EOF | |
af9fedc1 | 184 | cat >expect200 <<'EOF' |
1b058bc3 | 185 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
af9fedc1 | 186 | EOF |
31c2373d JH |
187 | while read verb expect cmd args |
188 | do | |
189 | test_expect_success "$cmd $verb COLUMNS (long filename)" ' | |
190 | COLUMNS=200 git $cmd $args >output | |
191 | grep " | " output >actual && | |
192 | test_cmp "$expect" actual | |
193 | ' | |
194 | done <<\EOF | |
195 | ignores expect80 format-patch -1 --stdout | |
af9fedc1 | 196 | respects expect200 diff HEAD^ HEAD --stat |
666c92a2 | 197 | respects expect200 show --stat |
5e0ec15e | 198 | respects expect200 log -1 --stat |
31c2373d JH |
199 | EOF |
200 | ||
201 | cat >expect <<'EOF' | |
7a7159ac | 202 | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
31c2373d | 203 | EOF |
7a7159ac | 204 | test_expect_success 'merge --stat respects COLUMNS (big change)' ' |
31c2373d JH |
205 | git checkout -b branch HEAD^^ && |
206 | COLUMNS=100 git merge --stat --no-ff master^ >output && | |
207 | grep " | " output >actual | |
208 | test_cmp expect actual | |
209 | ' | |
210 | ||
211 | cat >expect <<'EOF' | |
1b058bc3 | 212 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++ |
31c2373d | 213 | EOF |
7a7159ac | 214 | test_expect_success 'merge --stat respects COLUMNS (long filename)' ' |
31c2373d JH |
215 | COLUMNS=100 git merge --stat --no-ff master >output && |
216 | grep " | " output >actual | |
217 | test_cmp expect actual | |
218 | ' | |
219 | ||
220 | test_done |