]>
Commit | Line | Data |
---|---|---|
30d038e2 CR |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2007 Carlos Rica | |
4 | # | |
5 | ||
5be60078 | 6 | test_description='git stripspace' |
30d038e2 CR |
7 | |
8 | . ./test-lib.sh | |
9 | ||
10 | t40='A quick brown fox jumps over the lazy do' | |
11 | s40=' ' | |
12 | sss="$s40$s40$s40$s40$s40$s40$s40$s40$s40$s40" # 400 | |
13 | ttt="$t40$t40$t40$t40$t40$t40$t40$t40$t40$t40" # 400 | |
14 | ||
15 | test_expect_success \ | |
16 | 'long lines without spaces should be unchanged' ' | |
17 | echo "$ttt" >expect && | |
5be60078 | 18 | git stripspace <expect >actual && |
30d038e2 CR |
19 | git diff expect actual && |
20 | ||
21 | echo "$ttt$ttt" >expect && | |
5be60078 | 22 | git stripspace <expect >actual && |
30d038e2 CR |
23 | git diff expect actual && |
24 | ||
25 | echo "$ttt$ttt$ttt" >expect && | |
5be60078 | 26 | git stripspace <expect >actual && |
30d038e2 CR |
27 | git diff expect actual && |
28 | ||
29 | echo "$ttt$ttt$ttt$ttt" >expect && | |
5be60078 | 30 | git stripspace <expect >actual && |
30d038e2 CR |
31 | git diff expect actual |
32 | ' | |
33 | ||
34 | test_expect_success \ | |
35 | 'lines with spaces at the beginning should be unchanged' ' | |
36 | echo "$sss$ttt" >expect && | |
5be60078 | 37 | git stripspace <expect >actual && |
30d038e2 CR |
38 | git diff expect actual && |
39 | ||
40 | echo "$sss$sss$ttt" >expect && | |
5be60078 | 41 | git stripspace <expect >actual && |
30d038e2 CR |
42 | git diff expect actual && |
43 | ||
44 | echo "$sss$sss$sss$ttt" >expect && | |
5be60078 | 45 | git stripspace <expect >actual && |
30d038e2 CR |
46 | git diff expect actual |
47 | ' | |
48 | ||
49 | test_expect_success \ | |
50 | 'lines with intermediate spaces should be unchanged' ' | |
51 | echo "$ttt$sss$ttt" >expect && | |
5be60078 | 52 | git stripspace <expect >actual && |
30d038e2 CR |
53 | git diff expect actual && |
54 | ||
55 | echo "$ttt$sss$sss$ttt" >expect && | |
5be60078 | 56 | git stripspace <expect >actual && |
30d038e2 CR |
57 | git diff expect actual |
58 | ' | |
59 | ||
60 | test_expect_success \ | |
61 | 'consecutive blank lines should be unified' ' | |
62 | printf "$ttt\n\n$ttt\n" > expect && | |
5be60078 | 63 | printf "$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual && |
30d038e2 CR |
64 | git diff expect actual && |
65 | ||
66 | printf "$ttt$ttt\n\n$ttt\n" > expect && | |
5be60078 | 67 | printf "$ttt$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual && |
30d038e2 CR |
68 | git diff expect actual && |
69 | ||
70 | printf "$ttt$ttt$ttt\n\n$ttt\n" > expect && | |
5be60078 | 71 | printf "$ttt$ttt$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual && |
30d038e2 CR |
72 | git diff expect actual && |
73 | ||
74 | printf "$ttt\n\n$ttt\n" > expect && | |
5be60078 | 75 | printf "$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual && |
30d038e2 CR |
76 | git diff expect actual && |
77 | ||
78 | printf "$ttt\n\n$ttt$ttt\n" > expect && | |
5be60078 | 79 | printf "$ttt\n\n\n\n\n$ttt$ttt\n" | git stripspace >actual && |
30d038e2 CR |
80 | git diff expect actual && |
81 | ||
82 | printf "$ttt\n\n$ttt$ttt$ttt\n" > expect && | |
5be60078 | 83 | printf "$ttt\n\n\n\n\n$ttt$ttt$ttt\n" | git stripspace >actual && |
30d038e2 CR |
84 | git diff expect actual |
85 | ' | |
86 | ||
87 | test_expect_success \ | |
88 | 'consecutive blank lines at the beginning should be removed' ' | |
89 | printf "" > expect && | |
5be60078 | 90 | printf "\n" | git stripspace >actual && |
30d038e2 CR |
91 | git diff expect actual && |
92 | ||
93 | printf "" > expect && | |
5be60078 | 94 | printf "\n\n\n" | git stripspace >actual && |
30d038e2 CR |
95 | git diff expect actual && |
96 | ||
97 | printf "" > expect && | |
5be60078 | 98 | printf "$sss\n$sss\n$sss\n" | git stripspace >actual && |
30d038e2 CR |
99 | git diff expect actual && |
100 | ||
101 | printf "" > expect && | |
5be60078 | 102 | printf "$sss$sss\n$sss\n\n" | git stripspace >actual && |
30d038e2 CR |
103 | git diff expect actual && |
104 | ||
105 | printf "" > expect && | |
5be60078 | 106 | printf "\n$sss\n$sss$sss\n" | git stripspace >actual && |
30d038e2 CR |
107 | git diff expect actual && |
108 | ||
109 | printf "" > expect && | |
5be60078 | 110 | printf "$sss$sss$sss$sss\n\n\n" | git stripspace >actual && |
30d038e2 CR |
111 | git diff expect actual && |
112 | ||
113 | printf "" > expect && | |
5be60078 | 114 | printf "\n$sss$sss$sss$sss\n\n" | git stripspace >actual && |
30d038e2 CR |
115 | git diff expect actual && |
116 | ||
117 | printf "" > expect && | |
5be60078 | 118 | printf "\n\n$sss$sss$sss$sss\n" | git stripspace >actual && |
30d038e2 CR |
119 | git diff expect actual && |
120 | ||
121 | printf "$ttt\n" > expect && | |
5be60078 | 122 | printf "\n$ttt\n" | git stripspace >actual && |
30d038e2 CR |
123 | git diff expect actual && |
124 | ||
125 | printf "$ttt\n" > expect && | |
5be60078 | 126 | printf "\n\n\n$ttt\n" | git stripspace >actual && |
30d038e2 CR |
127 | git diff expect actual && |
128 | ||
129 | printf "$ttt$ttt\n" > expect && | |
5be60078 | 130 | printf "\n\n\n$ttt$ttt\n" | git stripspace >actual && |
30d038e2 CR |
131 | git diff expect actual && |
132 | ||
133 | printf "$ttt$ttt$ttt\n" > expect && | |
5be60078 | 134 | printf "\n\n\n$ttt$ttt$ttt\n" | git stripspace >actual && |
30d038e2 CR |
135 | git diff expect actual && |
136 | ||
137 | printf "$ttt$ttt$ttt$ttt\n" > expect && | |
5be60078 | 138 | printf "\n\n\n$ttt$ttt$ttt$ttt\n" | git stripspace >actual && |
30d038e2 CR |
139 | git diff expect actual && |
140 | ||
141 | printf "$ttt\n" > expect && | |
5be60078 | 142 | printf "$sss\n$sss\n$sss\n$ttt\n" | git stripspace >actual && |
30d038e2 CR |
143 | git diff expect actual && |
144 | ||
145 | printf "$ttt\n" > expect && | |
5be60078 | 146 | printf "\n$sss\n$sss$sss\n$ttt\n" | git stripspace >actual && |
30d038e2 CR |
147 | git diff expect actual && |
148 | ||
149 | printf "$ttt\n" > expect && | |
5be60078 | 150 | printf "$sss$sss\n$sss\n\n$ttt\n" | git stripspace >actual && |
30d038e2 CR |
151 | git diff expect actual && |
152 | ||
153 | printf "$ttt\n" > expect && | |
5be60078 | 154 | printf "$sss$sss$sss\n\n\n$ttt\n" | git stripspace >actual && |
30d038e2 CR |
155 | git diff expect actual && |
156 | ||
157 | printf "$ttt\n" > expect && | |
5be60078 | 158 | printf "\n$sss$sss$sss\n\n$ttt\n" | git stripspace >actual && |
30d038e2 CR |
159 | git diff expect actual && |
160 | ||
161 | printf "$ttt\n" > expect && | |
5be60078 | 162 | printf "\n\n$sss$sss$sss\n$ttt\n" | git stripspace >actual && |
30d038e2 CR |
163 | git diff expect actual |
164 | ' | |
165 | ||
166 | test_expect_success \ | |
167 | 'consecutive blank lines at the end should be removed' ' | |
168 | printf "$ttt\n" > expect && | |
5be60078 | 169 | printf "$ttt\n\n" | git stripspace >actual && |
30d038e2 CR |
170 | git diff expect actual && |
171 | ||
172 | printf "$ttt\n" > expect && | |
5be60078 | 173 | printf "$ttt\n\n\n\n" | git stripspace >actual && |
30d038e2 CR |
174 | git diff expect actual && |
175 | ||
176 | printf "$ttt$ttt\n" > expect && | |
5be60078 | 177 | printf "$ttt$ttt\n\n\n\n" | git stripspace >actual && |
30d038e2 CR |
178 | git diff expect actual && |
179 | ||
180 | printf "$ttt$ttt$ttt\n" > expect && | |
5be60078 | 181 | printf "$ttt$ttt$ttt\n\n\n\n" | git stripspace >actual && |
30d038e2 CR |
182 | git diff expect actual && |
183 | ||
184 | printf "$ttt$ttt$ttt$ttt\n" > expect && | |
5be60078 | 185 | printf "$ttt$ttt$ttt$ttt\n\n\n\n" | git stripspace >actual && |
30d038e2 CR |
186 | git diff expect actual && |
187 | ||
188 | printf "$ttt\n" > expect && | |
5be60078 | 189 | printf "$ttt\n$sss\n$sss\n$sss\n" | git stripspace >actual && |
30d038e2 CR |
190 | git diff expect actual && |
191 | ||
192 | printf "$ttt\n" > expect && | |
5be60078 | 193 | printf "$ttt\n\n$sss\n$sss$sss\n" | git stripspace >actual && |
30d038e2 CR |
194 | git diff expect actual && |
195 | ||
196 | printf "$ttt\n" > expect && | |
5be60078 | 197 | printf "$ttt\n$sss$sss\n$sss\n\n" | git stripspace >actual && |
30d038e2 CR |
198 | git diff expect actual && |
199 | ||
200 | printf "$ttt\n" > expect && | |
5be60078 | 201 | printf "$ttt\n$sss$sss$sss\n\n\n" | git stripspace >actual && |
30d038e2 CR |
202 | git diff expect actual && |
203 | ||
204 | printf "$ttt\n" > expect && | |
5be60078 | 205 | printf "$ttt\n\n$sss$sss$sss\n\n" | git stripspace >actual && |
30d038e2 CR |
206 | git diff expect actual && |
207 | ||
208 | printf "$ttt\n" > expect && | |
5be60078 | 209 | printf "$ttt\n\n\n$sss$sss$sss\n" | git stripspace >actual && |
30d038e2 CR |
210 | git diff expect actual |
211 | ' | |
212 | ||
213 | test_expect_success \ | |
214 | 'text without newline at end should end with newline' ' | |
5be60078 JH |
215 | test `printf "$ttt" | git stripspace | wc -l` -gt 0 && |
216 | test `printf "$ttt$ttt" | git stripspace | wc -l` -gt 0 && | |
217 | test `printf "$ttt$ttt$ttt" | git stripspace | wc -l` -gt 0 && | |
218 | test `printf "$ttt$ttt$ttt$ttt" | git stripspace | wc -l` -gt 0 | |
30d038e2 CR |
219 | ' |
220 | ||
221 | # text plus spaces at the end: | |
222 | ||
223 | test_expect_success \ | |
224 | 'text plus spaces without newline at end should end with newline' ' | |
5be60078 JH |
225 | test `printf "$ttt$sss" | git stripspace | wc -l` -gt 0 && |
226 | test `printf "$ttt$ttt$sss" | git stripspace | wc -l` -gt 0 && | |
227 | test `printf "$ttt$ttt$ttt$sss" | git stripspace | wc -l` -gt 0 | |
228 | test `printf "$ttt$sss$sss" | git stripspace | wc -l` -gt 0 && | |
229 | test `printf "$ttt$ttt$sss$sss" | git stripspace | wc -l` -gt 0 && | |
230 | test `printf "$ttt$sss$sss$sss" | git stripspace | wc -l` -gt 0 | |
30d038e2 CR |
231 | ' |
232 | ||
233 | test_expect_failure \ | |
234 | 'text plus spaces without newline at end should not show spaces' ' | |
5be60078 JH |
235 | printf "$ttt$sss" | git stripspace | grep -q " " || |
236 | printf "$ttt$ttt$sss" | git stripspace | grep -q " " || | |
237 | printf "$ttt$ttt$ttt$sss" | git stripspace | grep -q " " || | |
238 | printf "$ttt$sss$sss" | git stripspace | grep -q " " || | |
239 | printf "$ttt$ttt$sss$sss" | git stripspace | grep -q " " || | |
240 | printf "$ttt$sss$sss$sss" | git stripspace | grep -q " " | |
30d038e2 CR |
241 | ' |
242 | ||
243 | test_expect_success \ | |
244 | 'text plus spaces without newline should show the correct lines' ' | |
245 | printf "$ttt\n" >expect && | |
5be60078 | 246 | printf "$ttt$sss" | git stripspace >actual && |
30d038e2 CR |
247 | git diff expect actual && |
248 | ||
249 | printf "$ttt\n" >expect && | |
5be60078 | 250 | printf "$ttt$sss$sss" | git stripspace >actual && |
30d038e2 CR |
251 | git diff expect actual && |
252 | ||
253 | printf "$ttt\n" >expect && | |
5be60078 | 254 | printf "$ttt$sss$sss$sss" | git stripspace >actual && |
30d038e2 CR |
255 | git diff expect actual && |
256 | ||
257 | printf "$ttt$ttt\n" >expect && | |
5be60078 | 258 | printf "$ttt$ttt$sss" | git stripspace >actual && |
30d038e2 CR |
259 | git diff expect actual && |
260 | ||
261 | printf "$ttt$ttt\n" >expect && | |
5be60078 | 262 | printf "$ttt$ttt$sss$sss" | git stripspace >actual && |
30d038e2 CR |
263 | git diff expect actual && |
264 | ||
265 | printf "$ttt$ttt$ttt\n" >expect && | |
5be60078 | 266 | printf "$ttt$ttt$ttt$sss" | git stripspace >actual && |
30d038e2 CR |
267 | git diff expect actual |
268 | ' | |
269 | ||
270 | test_expect_failure \ | |
271 | 'text plus spaces at end should not show spaces' ' | |
5be60078 JH |
272 | echo "$ttt$sss" | git stripspace | grep -q " " || |
273 | echo "$ttt$ttt$sss" | git stripspace | grep -q " " || | |
274 | echo "$ttt$ttt$ttt$sss" | git stripspace | grep -q " " || | |
275 | echo "$ttt$sss$sss" | git stripspace | grep -q " " || | |
276 | echo "$ttt$ttt$sss$sss" | git stripspace | grep -q " " || | |
277 | echo "$ttt$sss$sss$sss" | git stripspace | grep -q " " | |
30d038e2 CR |
278 | ' |
279 | ||
280 | test_expect_success \ | |
281 | 'text plus spaces at end should be cleaned and newline must remain' ' | |
282 | echo "$ttt" >expect && | |
5be60078 | 283 | echo "$ttt$sss" | git stripspace >actual && |
30d038e2 CR |
284 | git diff expect actual && |
285 | ||
286 | echo "$ttt" >expect && | |
5be60078 | 287 | echo "$ttt$sss$sss" | git stripspace >actual && |
30d038e2 CR |
288 | git diff expect actual && |
289 | ||
290 | echo "$ttt" >expect && | |
5be60078 | 291 | echo "$ttt$sss$sss$sss" | git stripspace >actual && |
30d038e2 CR |
292 | git diff expect actual && |
293 | ||
294 | echo "$ttt$ttt" >expect && | |
5be60078 | 295 | echo "$ttt$ttt$sss" | git stripspace >actual && |
30d038e2 CR |
296 | git diff expect actual && |
297 | ||
298 | echo "$ttt$ttt" >expect && | |
5be60078 | 299 | echo "$ttt$ttt$sss$sss" | git stripspace >actual && |
30d038e2 CR |
300 | git diff expect actual && |
301 | ||
302 | echo "$ttt$ttt$ttt" >expect && | |
5be60078 | 303 | echo "$ttt$ttt$ttt$sss" | git stripspace >actual && |
30d038e2 CR |
304 | git diff expect actual |
305 | ' | |
306 | ||
307 | # spaces only: | |
308 | ||
309 | test_expect_success \ | |
310 | 'spaces with newline at end should be replaced with empty string' ' | |
311 | printf "" >expect && | |
312 | ||
5be60078 | 313 | echo | git stripspace >actual && |
30d038e2 CR |
314 | git diff expect actual && |
315 | ||
5be60078 | 316 | echo "$sss" | git stripspace >actual && |
30d038e2 CR |
317 | git diff expect actual && |
318 | ||
5be60078 | 319 | echo "$sss$sss" | git stripspace >actual && |
30d038e2 CR |
320 | git diff expect actual && |
321 | ||
5be60078 | 322 | echo "$sss$sss$sss" | git stripspace >actual && |
30d038e2 CR |
323 | git diff expect actual && |
324 | ||
5be60078 | 325 | echo "$sss$sss$sss$sss" | git stripspace >actual && |
30d038e2 CR |
326 | git diff expect actual |
327 | ' | |
328 | ||
329 | test_expect_failure \ | |
330 | 'spaces without newline at end should not show spaces' ' | |
5be60078 JH |
331 | printf "" | git stripspace | grep -q " " || |
332 | printf "$sss" | git stripspace | grep -q " " || | |
333 | printf "$sss$sss" | git stripspace | grep -q " " || | |
334 | printf "$sss$sss$sss" | git stripspace | grep -q " " || | |
335 | printf "$sss$sss$sss$sss" | git stripspace | grep -q " " | |
30d038e2 CR |
336 | ' |
337 | ||
338 | test_expect_success \ | |
339 | 'spaces without newline at end should be replaced with empty string' ' | |
340 | printf "" >expect && | |
341 | ||
5be60078 | 342 | printf "" | git stripspace >actual && |
30d038e2 CR |
343 | git diff expect actual |
344 | ||
5be60078 | 345 | printf "$sss$sss" | git stripspace >actual && |
30d038e2 CR |
346 | git diff expect actual |
347 | ||
5be60078 | 348 | printf "$sss$sss$sss" | git stripspace >actual && |
30d038e2 CR |
349 | git diff expect actual |
350 | ||
5be60078 | 351 | printf "$sss$sss$sss$sss" | git stripspace >actual && |
30d038e2 CR |
352 | git diff expect actual |
353 | ' | |
354 | ||
355 | test_done |