]> git.ipfire.org Git - thirdparty/git.git/blame - t/t0030-stripspace.sh
Fix --cherry-pick with given paths
[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 &&
30d038e2
CR
84 git diff expect actual
85'
86
87test_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
166test_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
213test_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
223test_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
233test_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
243test_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
270test_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
280test_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
309test_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
329test_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
338test_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
355test_done