]> git.ipfire.org Git - thirdparty/git.git/blame - t/t0030-stripspace.sh
Make verify-tag a builtin.
[thirdparty/git.git] / t / t0030-stripspace.sh
CommitLineData
30d038e2
CR
1#!/bin/sh
2#
3# Copyright (c) 2007 Carlos Rica
4#
5
5be60078 6test_description='git stripspace'
30d038e2
CR
7
8. ./test-lib.sh
9
10t40='A quick brown fox jumps over the lazy do'
11s40=' '
12sss="$s40$s40$s40$s40$s40$s40$s40$s40$s40$s40" # 400
13ttt="$t40$t40$t40$t40$t40$t40$t40$t40$t40$t40" # 400
14
15test_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
34test_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
49test_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
60test_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 &&
b61a8a67
CR
84 git diff expect actual &&
85
86 printf "$ttt\n\n$ttt\n" > expect &&
87 printf "$ttt\n\t\n \n\n \t\t\n$ttt\n" | git stripspace >actual &&
88 git diff expect actual &&
89
90 printf "$ttt$ttt\n\n$ttt\n" > expect &&
91 printf "$ttt$ttt\n\t\n \n\n \t\t\n$ttt\n" | git stripspace >actual &&
92 git diff expect actual &&
93
94 printf "$ttt$ttt$ttt\n\n$ttt\n" > expect &&
95 printf "$ttt$ttt$ttt\n\t\n \n\n \t\t\n$ttt\n" | git stripspace >actual &&
96 git diff expect actual &&
97
98 printf "$ttt\n\n$ttt\n" > expect &&
99 printf "$ttt\n\t\n \n\n \t\t\n$ttt\n" | git stripspace >actual &&
100 git diff expect actual &&
101
102 printf "$ttt\n\n$ttt$ttt\n" > expect &&
103 printf "$ttt\n\t\n \n\n \t\t\n$ttt$ttt\n" | git stripspace >actual &&
104 git diff expect actual &&
105
106 printf "$ttt\n\n$ttt$ttt$ttt\n" > expect &&
107 printf "$ttt\n\t\n \n\n \t\t\n$ttt$ttt$ttt\n" | git stripspace >actual &&
30d038e2
CR
108 git diff expect actual
109'
110
111test_expect_success \
defd5314
CR
112 'only consecutive blank lines should be completely removed' '
113 > expect &&
114
5be60078 115 printf "\n" | git stripspace >actual &&
30d038e2
CR
116 git diff expect actual &&
117
5be60078 118 printf "\n\n\n" | git stripspace >actual &&
30d038e2
CR
119 git diff expect actual &&
120
5be60078 121 printf "$sss\n$sss\n$sss\n" | git stripspace >actual &&
30d038e2
CR
122 git diff expect actual &&
123
5be60078 124 printf "$sss$sss\n$sss\n\n" | git stripspace >actual &&
30d038e2
CR
125 git diff expect actual &&
126
5be60078 127 printf "\n$sss\n$sss$sss\n" | git stripspace >actual &&
30d038e2
CR
128 git diff expect actual &&
129
5be60078 130 printf "$sss$sss$sss$sss\n\n\n" | git stripspace >actual &&
30d038e2
CR
131 git diff expect actual &&
132
5be60078 133 printf "\n$sss$sss$sss$sss\n\n" | git stripspace >actual &&
30d038e2
CR
134 git diff expect actual &&
135
5be60078 136 printf "\n\n$sss$sss$sss$sss\n" | git stripspace >actual &&
defd5314
CR
137 git diff expect actual
138'
30d038e2 139
defd5314
CR
140test_expect_success \
141 'consecutive blank lines at the beginning should be removed' '
30d038e2 142 printf "$ttt\n" > expect &&
5be60078 143 printf "\n$ttt\n" | git stripspace >actual &&
30d038e2
CR
144 git diff expect actual &&
145
146 printf "$ttt\n" > expect &&
5be60078 147 printf "\n\n\n$ttt\n" | git stripspace >actual &&
30d038e2
CR
148 git diff expect actual &&
149
150 printf "$ttt$ttt\n" > expect &&
5be60078 151 printf "\n\n\n$ttt$ttt\n" | git stripspace >actual &&
30d038e2
CR
152 git diff expect actual &&
153
154 printf "$ttt$ttt$ttt\n" > expect &&
5be60078 155 printf "\n\n\n$ttt$ttt$ttt\n" | git stripspace >actual &&
30d038e2
CR
156 git diff expect actual &&
157
158 printf "$ttt$ttt$ttt$ttt\n" > expect &&
5be60078 159 printf "\n\n\n$ttt$ttt$ttt$ttt\n" | git stripspace >actual &&
30d038e2
CR
160 git diff expect actual &&
161
162 printf "$ttt\n" > expect &&
defd5314 163
5be60078 164 printf "$sss\n$sss\n$sss\n$ttt\n" | git stripspace >actual &&
30d038e2
CR
165 git diff expect actual &&
166
5be60078 167 printf "\n$sss\n$sss$sss\n$ttt\n" | git stripspace >actual &&
30d038e2
CR
168 git diff expect actual &&
169
5be60078 170 printf "$sss$sss\n$sss\n\n$ttt\n" | git stripspace >actual &&
30d038e2
CR
171 git diff expect actual &&
172
5be60078 173 printf "$sss$sss$sss\n\n\n$ttt\n" | git stripspace >actual &&
30d038e2
CR
174 git diff expect actual &&
175
5be60078 176 printf "\n$sss$sss$sss\n\n$ttt\n" | git stripspace >actual &&
30d038e2
CR
177 git diff expect actual &&
178
5be60078 179 printf "\n\n$sss$sss$sss\n$ttt\n" | git stripspace >actual &&
30d038e2
CR
180 git diff expect actual
181'
182
183test_expect_success \
184 'consecutive blank lines at the end should be removed' '
185 printf "$ttt\n" > expect &&
5be60078 186 printf "$ttt\n\n" | git stripspace >actual &&
30d038e2
CR
187 git diff expect actual &&
188
189 printf "$ttt\n" > expect &&
5be60078 190 printf "$ttt\n\n\n\n" | git stripspace >actual &&
30d038e2
CR
191 git diff expect actual &&
192
193 printf "$ttt$ttt\n" > expect &&
5be60078 194 printf "$ttt$ttt\n\n\n\n" | git stripspace >actual &&
30d038e2
CR
195 git diff expect actual &&
196
197 printf "$ttt$ttt$ttt\n" > expect &&
5be60078 198 printf "$ttt$ttt$ttt\n\n\n\n" | git stripspace >actual &&
30d038e2
CR
199 git diff expect actual &&
200
201 printf "$ttt$ttt$ttt$ttt\n" > expect &&
5be60078 202 printf "$ttt$ttt$ttt$ttt\n\n\n\n" | git stripspace >actual &&
30d038e2
CR
203 git diff expect actual &&
204
205 printf "$ttt\n" > expect &&
defd5314 206
5be60078 207 printf "$ttt\n$sss\n$sss\n$sss\n" | git stripspace >actual &&
30d038e2
CR
208 git diff expect actual &&
209
5be60078 210 printf "$ttt\n\n$sss\n$sss$sss\n" | git stripspace >actual &&
30d038e2
CR
211 git diff expect actual &&
212
5be60078 213 printf "$ttt\n$sss$sss\n$sss\n\n" | git stripspace >actual &&
30d038e2
CR
214 git diff expect actual &&
215
5be60078 216 printf "$ttt\n$sss$sss$sss\n\n\n" | git stripspace >actual &&
30d038e2
CR
217 git diff expect actual &&
218
5be60078 219 printf "$ttt\n\n$sss$sss$sss\n\n" | git stripspace >actual &&
30d038e2
CR
220 git diff expect actual &&
221
5be60078 222 printf "$ttt\n\n\n$sss$sss$sss\n" | git stripspace >actual &&
30d038e2
CR
223 git diff expect actual
224'
225
226test_expect_success \
227 'text without newline at end should end with newline' '
5be60078
JH
228 test `printf "$ttt" | git stripspace | wc -l` -gt 0 &&
229 test `printf "$ttt$ttt" | git stripspace | wc -l` -gt 0 &&
230 test `printf "$ttt$ttt$ttt" | git stripspace | wc -l` -gt 0 &&
231 test `printf "$ttt$ttt$ttt$ttt" | git stripspace | wc -l` -gt 0
30d038e2
CR
232'
233
234# text plus spaces at the end:
235
236test_expect_success \
237 'text plus spaces without newline at end should end with newline' '
5be60078
JH
238 test `printf "$ttt$sss" | git stripspace | wc -l` -gt 0 &&
239 test `printf "$ttt$ttt$sss" | git stripspace | wc -l` -gt 0 &&
defd5314 240 test `printf "$ttt$ttt$ttt$sss" | git stripspace | wc -l` -gt 0 &&
5be60078
JH
241 test `printf "$ttt$sss$sss" | git stripspace | wc -l` -gt 0 &&
242 test `printf "$ttt$ttt$sss$sss" | git stripspace | wc -l` -gt 0 &&
243 test `printf "$ttt$sss$sss$sss" | git stripspace | wc -l` -gt 0
30d038e2
CR
244'
245
246test_expect_failure \
247 'text plus spaces without newline at end should not show spaces' '
5be60078
JH
248 printf "$ttt$sss" | git stripspace | grep -q " " ||
249 printf "$ttt$ttt$sss" | git stripspace | grep -q " " ||
250 printf "$ttt$ttt$ttt$sss" | git stripspace | grep -q " " ||
251 printf "$ttt$sss$sss" | git stripspace | grep -q " " ||
252 printf "$ttt$ttt$sss$sss" | git stripspace | grep -q " " ||
253 printf "$ttt$sss$sss$sss" | git stripspace | grep -q " "
30d038e2
CR
254'
255
256test_expect_success \
257 'text plus spaces without newline should show the correct lines' '
258 printf "$ttt\n" >expect &&
5be60078 259 printf "$ttt$sss" | git stripspace >actual &&
30d038e2
CR
260 git diff expect actual &&
261
262 printf "$ttt\n" >expect &&
5be60078 263 printf "$ttt$sss$sss" | git stripspace >actual &&
30d038e2
CR
264 git diff expect actual &&
265
266 printf "$ttt\n" >expect &&
5be60078 267 printf "$ttt$sss$sss$sss" | git stripspace >actual &&
30d038e2
CR
268 git diff expect actual &&
269
270 printf "$ttt$ttt\n" >expect &&
5be60078 271 printf "$ttt$ttt$sss" | git stripspace >actual &&
30d038e2
CR
272 git diff expect actual &&
273
274 printf "$ttt$ttt\n" >expect &&
5be60078 275 printf "$ttt$ttt$sss$sss" | git stripspace >actual &&
30d038e2
CR
276 git diff expect actual &&
277
278 printf "$ttt$ttt$ttt\n" >expect &&
5be60078 279 printf "$ttt$ttt$ttt$sss" | git stripspace >actual &&
30d038e2
CR
280 git diff expect actual
281'
282
283test_expect_failure \
284 'text plus spaces at end should not show spaces' '
5be60078
JH
285 echo "$ttt$sss" | git stripspace | grep -q " " ||
286 echo "$ttt$ttt$sss" | git stripspace | grep -q " " ||
287 echo "$ttt$ttt$ttt$sss" | git stripspace | grep -q " " ||
288 echo "$ttt$sss$sss" | git stripspace | grep -q " " ||
289 echo "$ttt$ttt$sss$sss" | git stripspace | grep -q " " ||
290 echo "$ttt$sss$sss$sss" | git stripspace | grep -q " "
30d038e2
CR
291'
292
293test_expect_success \
294 'text plus spaces at end should be cleaned and newline must remain' '
295 echo "$ttt" >expect &&
5be60078 296 echo "$ttt$sss" | git stripspace >actual &&
30d038e2
CR
297 git diff expect actual &&
298
299 echo "$ttt" >expect &&
5be60078 300 echo "$ttt$sss$sss" | git stripspace >actual &&
30d038e2
CR
301 git diff expect actual &&
302
303 echo "$ttt" >expect &&
5be60078 304 echo "$ttt$sss$sss$sss" | git stripspace >actual &&
30d038e2
CR
305 git diff expect actual &&
306
307 echo "$ttt$ttt" >expect &&
5be60078 308 echo "$ttt$ttt$sss" | git stripspace >actual &&
30d038e2
CR
309 git diff expect actual &&
310
311 echo "$ttt$ttt" >expect &&
5be60078 312 echo "$ttt$ttt$sss$sss" | git stripspace >actual &&
30d038e2
CR
313 git diff expect actual &&
314
315 echo "$ttt$ttt$ttt" >expect &&
5be60078 316 echo "$ttt$ttt$ttt$sss" | git stripspace >actual &&
30d038e2
CR
317 git diff expect actual
318'
319
320# spaces only:
321
322test_expect_success \
323 'spaces with newline at end should be replaced with empty string' '
324 printf "" >expect &&
325
5be60078 326 echo | git stripspace >actual &&
30d038e2
CR
327 git diff expect actual &&
328
5be60078 329 echo "$sss" | git stripspace >actual &&
30d038e2
CR
330 git diff expect actual &&
331
5be60078 332 echo "$sss$sss" | git stripspace >actual &&
30d038e2
CR
333 git diff expect actual &&
334
5be60078 335 echo "$sss$sss$sss" | git stripspace >actual &&
30d038e2
CR
336 git diff expect actual &&
337
5be60078 338 echo "$sss$sss$sss$sss" | git stripspace >actual &&
30d038e2
CR
339 git diff expect actual
340'
341
342test_expect_failure \
343 'spaces without newline at end should not show spaces' '
5be60078
JH
344 printf "" | git stripspace | grep -q " " ||
345 printf "$sss" | git stripspace | grep -q " " ||
346 printf "$sss$sss" | git stripspace | grep -q " " ||
347 printf "$sss$sss$sss" | git stripspace | grep -q " " ||
348 printf "$sss$sss$sss$sss" | git stripspace | grep -q " "
30d038e2
CR
349'
350
351test_expect_success \
352 'spaces without newline at end should be replaced with empty string' '
353 printf "" >expect &&
354
5be60078 355 printf "" | git stripspace >actual &&
defd5314 356 git diff expect actual &&
30d038e2 357
5be60078 358 printf "$sss$sss" | git stripspace >actual &&
defd5314 359 git diff expect actual &&
30d038e2 360
5be60078 361 printf "$sss$sss$sss" | git stripspace >actual &&
defd5314 362 git diff expect actual &&
30d038e2 363
5be60078 364 printf "$sss$sss$sss$sss" | git stripspace >actual &&
30d038e2
CR
365 git diff expect actual
366'
367
b61a8a67
CR
368test_expect_success \
369 'consecutive text lines should be unchanged' '
370 printf "$ttt$ttt\n$ttt\n" >expect &&
371 printf "$ttt$ttt\n$ttt\n" | git stripspace >actual &&
372 git diff expect actual &&
373
374 printf "$ttt\n$ttt$ttt\n$ttt\n" >expect &&
375 printf "$ttt\n$ttt$ttt\n$ttt\n" | git stripspace >actual &&
376 git diff expect actual &&
377
378 printf "$ttt\n$ttt\n$ttt\n$ttt$ttt\n" >expect &&
379 printf "$ttt\n$ttt\n$ttt\n$ttt$ttt\n" | git stripspace >actual &&
380 git diff expect actual &&
381
382 printf "$ttt\n$ttt\n\n$ttt$ttt\n$ttt\n" >expect &&
383 printf "$ttt\n$ttt\n\n$ttt$ttt\n$ttt\n" | git stripspace >actual &&
384 git diff expect actual &&
385
386 printf "$ttt$ttt\n\n$ttt\n$ttt$ttt\n" >expect &&
387 printf "$ttt$ttt\n\n$ttt\n$ttt$ttt\n" | git stripspace >actual &&
388 git diff expect actual &&
389
390 printf "$ttt\n$ttt$ttt\n\n$ttt\n" >expect &&
391 printf "$ttt\n$ttt$ttt\n\n$ttt\n" | git stripspace >actual &&
392 git diff expect actual
393'
394
30d038e2 395test_done