Code

t0030: Remove repeated instructions and add missing &&
[git.git] / t / t0030-stripspace.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2007 Carlos Rica
4 #
6 test_description='git stripspace'
8 . ./test-lib.sh
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
15 test_expect_success \
16     'long lines without spaces should be unchanged' '
17     echo "$ttt" >expect &&
18     git stripspace <expect >actual &&
19     git diff expect actual &&
21     echo "$ttt$ttt" >expect &&
22     git stripspace <expect >actual &&
23     git diff expect actual &&
25     echo "$ttt$ttt$ttt" >expect &&
26     git stripspace <expect >actual &&
27     git diff expect actual &&
29     echo "$ttt$ttt$ttt$ttt" >expect &&
30     git stripspace <expect >actual &&
31     git diff expect actual
32 '
34 test_expect_success \
35     'lines with spaces at the beginning should be unchanged' '
36     echo "$sss$ttt" >expect &&
37     git stripspace <expect >actual &&
38     git diff expect actual &&
40     echo "$sss$sss$ttt" >expect &&
41     git stripspace <expect >actual &&
42     git diff expect actual &&
44     echo "$sss$sss$sss$ttt" >expect &&
45     git stripspace <expect >actual &&
46     git diff expect actual
47 '
49 test_expect_success \
50     'lines with intermediate spaces should be unchanged' '
51     echo "$ttt$sss$ttt" >expect &&
52     git stripspace <expect >actual &&
53     git diff expect actual &&
55     echo "$ttt$sss$sss$ttt" >expect &&
56     git stripspace <expect >actual &&
57     git diff expect actual
58 '
60 test_expect_success \
61     'consecutive blank lines should be unified' '
62     printf "$ttt\n\n$ttt\n" > expect &&
63     printf "$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual &&
64     git diff expect actual &&
66     printf "$ttt$ttt\n\n$ttt\n" > expect &&
67     printf "$ttt$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual &&
68     git diff expect actual &&
70     printf "$ttt$ttt$ttt\n\n$ttt\n" > expect &&
71     printf "$ttt$ttt$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual &&
72     git diff expect actual &&
74     printf "$ttt\n\n$ttt\n" > expect &&
75     printf "$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual &&
76     git diff expect actual &&
78     printf "$ttt\n\n$ttt$ttt\n" > expect &&
79     printf "$ttt\n\n\n\n\n$ttt$ttt\n" | git stripspace >actual &&
80     git diff expect actual &&
82     printf "$ttt\n\n$ttt$ttt$ttt\n" > expect &&
83     printf "$ttt\n\n\n\n\n$ttt$ttt$ttt\n" | git stripspace >actual &&
84     git diff expect actual
85 '
87 test_expect_success \
88     'only consecutive blank lines should be completely removed' '
89     > expect &&
91     printf "\n" | git stripspace >actual &&
92     git diff expect actual &&
94     printf "\n\n\n" | git stripspace >actual &&
95     git diff expect actual &&
97     printf "$sss\n$sss\n$sss\n" | git stripspace >actual &&
98     git diff expect actual &&
100     printf "$sss$sss\n$sss\n\n" | git stripspace >actual &&
101     git diff expect actual &&
103     printf "\n$sss\n$sss$sss\n" | git stripspace >actual &&
104     git diff expect actual &&
106     printf "$sss$sss$sss$sss\n\n\n" | git stripspace >actual &&
107     git diff expect actual &&
109     printf "\n$sss$sss$sss$sss\n\n" | git stripspace >actual &&
110     git diff expect actual &&
112     printf "\n\n$sss$sss$sss$sss\n" | git stripspace >actual &&
113     git diff expect actual
116 test_expect_success \
117     'consecutive blank lines at the beginning should be removed' '
118     printf "$ttt\n" > expect &&
119     printf "\n$ttt\n" | git stripspace >actual &&
120     git diff expect actual &&
122     printf "$ttt\n" > expect &&
123     printf "\n\n\n$ttt\n" | git stripspace >actual &&
124     git diff expect actual &&
126     printf "$ttt$ttt\n" > expect &&
127     printf "\n\n\n$ttt$ttt\n" | git stripspace >actual &&
128     git diff expect actual &&
130     printf "$ttt$ttt$ttt\n" > expect &&
131     printf "\n\n\n$ttt$ttt$ttt\n" | git stripspace >actual &&
132     git diff expect actual &&
134     printf "$ttt$ttt$ttt$ttt\n" > expect &&
135     printf "\n\n\n$ttt$ttt$ttt$ttt\n" | git stripspace >actual &&
136     git diff expect actual &&
138     printf "$ttt\n" > expect &&
140     printf "$sss\n$sss\n$sss\n$ttt\n" | git stripspace >actual &&
141     git diff expect actual &&
143     printf "\n$sss\n$sss$sss\n$ttt\n" | git stripspace >actual &&
144     git diff expect actual &&
146     printf "$sss$sss\n$sss\n\n$ttt\n" | git stripspace >actual &&
147     git diff expect actual &&
149     printf "$sss$sss$sss\n\n\n$ttt\n" | git stripspace >actual &&
150     git diff expect actual &&
152     printf "\n$sss$sss$sss\n\n$ttt\n" | git stripspace >actual &&
153     git diff expect actual &&
155     printf "\n\n$sss$sss$sss\n$ttt\n" | git stripspace >actual &&
156     git diff expect actual
159 test_expect_success \
160     'consecutive blank lines at the end should be removed' '
161     printf "$ttt\n" > expect &&
162     printf "$ttt\n\n" | git stripspace >actual &&
163     git diff expect actual &&
165     printf "$ttt\n" > expect &&
166     printf "$ttt\n\n\n\n" | git stripspace >actual &&
167     git diff expect actual &&
169     printf "$ttt$ttt\n" > expect &&
170     printf "$ttt$ttt\n\n\n\n" | git stripspace >actual &&
171     git diff expect actual &&
173     printf "$ttt$ttt$ttt\n" > expect &&
174     printf "$ttt$ttt$ttt\n\n\n\n" | git stripspace >actual &&
175     git diff expect actual &&
177     printf "$ttt$ttt$ttt$ttt\n" > expect &&
178     printf "$ttt$ttt$ttt$ttt\n\n\n\n" | git stripspace >actual &&
179     git diff expect actual &&
181     printf "$ttt\n" > expect &&
183     printf "$ttt\n$sss\n$sss\n$sss\n" | git stripspace >actual &&
184     git diff expect actual &&
186     printf "$ttt\n\n$sss\n$sss$sss\n" | git stripspace >actual &&
187     git diff expect actual &&
189     printf "$ttt\n$sss$sss\n$sss\n\n" | git stripspace >actual &&
190     git diff expect actual &&
192     printf "$ttt\n$sss$sss$sss\n\n\n" | git stripspace >actual &&
193     git diff expect actual &&
195     printf "$ttt\n\n$sss$sss$sss\n\n" | git stripspace >actual &&
196     git diff expect actual &&
198     printf "$ttt\n\n\n$sss$sss$sss\n" | git stripspace >actual &&
199     git diff expect actual
202 test_expect_success \
203     'text without newline at end should end with newline' '
204     test `printf "$ttt" | git stripspace | wc -l` -gt 0 &&
205     test `printf "$ttt$ttt" | git stripspace | wc -l` -gt 0 &&
206     test `printf "$ttt$ttt$ttt" | git stripspace | wc -l` -gt 0 &&
207     test `printf "$ttt$ttt$ttt$ttt" | git stripspace | wc -l` -gt 0
210 # text plus spaces at the end:
212 test_expect_success \
213     'text plus spaces without newline at end should end with newline' '
214     test `printf "$ttt$sss" | git stripspace | wc -l` -gt 0 &&
215     test `printf "$ttt$ttt$sss" | git stripspace | wc -l` -gt 0 &&
216     test `printf "$ttt$ttt$ttt$sss" | git stripspace | wc -l` -gt 0 &&
217     test `printf "$ttt$sss$sss" | git stripspace | wc -l` -gt 0 &&
218     test `printf "$ttt$ttt$sss$sss" | git stripspace | wc -l` -gt 0 &&
219     test `printf "$ttt$sss$sss$sss" | git stripspace | wc -l` -gt 0
222 test_expect_failure \
223     'text plus spaces without newline at end should not show spaces' '
224     printf "$ttt$sss" | git stripspace | grep -q "  " ||
225     printf "$ttt$ttt$sss" | git stripspace | grep -q "  " ||
226     printf "$ttt$ttt$ttt$sss" | git stripspace | grep -q "  " ||
227     printf "$ttt$sss$sss" | git stripspace | grep -q "  " ||
228     printf "$ttt$ttt$sss$sss" | git stripspace | grep -q "  " ||
229     printf "$ttt$sss$sss$sss" | git stripspace | grep -q "  "
232 test_expect_success \
233     'text plus spaces without newline should show the correct lines' '
234     printf "$ttt\n" >expect &&
235     printf "$ttt$sss" | git stripspace >actual &&
236     git diff expect actual &&
238     printf "$ttt\n" >expect &&
239     printf "$ttt$sss$sss" | git stripspace >actual &&
240     git diff expect actual &&
242     printf "$ttt\n" >expect &&
243     printf "$ttt$sss$sss$sss" | git stripspace >actual &&
244     git diff expect actual &&
246     printf "$ttt$ttt\n" >expect &&
247     printf "$ttt$ttt$sss" | git stripspace >actual &&
248     git diff expect actual &&
250     printf "$ttt$ttt\n" >expect &&
251     printf "$ttt$ttt$sss$sss" | git stripspace >actual &&
252     git diff expect actual &&
254     printf "$ttt$ttt$ttt\n" >expect &&
255     printf "$ttt$ttt$ttt$sss" | git stripspace >actual &&
256     git diff expect actual
259 test_expect_failure \
260     'text plus spaces at end should not show spaces' '
261     echo "$ttt$sss" | git stripspace | grep -q "  " ||
262     echo "$ttt$ttt$sss" | git stripspace | grep -q "  " ||
263     echo "$ttt$ttt$ttt$sss" | git stripspace | grep -q "  " ||
264     echo "$ttt$sss$sss" | git stripspace | grep -q "  " ||
265     echo "$ttt$ttt$sss$sss" | git stripspace | grep -q "  " ||
266     echo "$ttt$sss$sss$sss" | git stripspace | grep -q "  "
269 test_expect_success \
270     'text plus spaces at end should be cleaned and newline must remain' '
271     echo "$ttt" >expect &&
272     echo "$ttt$sss" | git stripspace >actual &&
273     git diff expect actual &&
275     echo "$ttt" >expect &&
276     echo "$ttt$sss$sss" | git stripspace >actual &&
277     git diff expect actual &&
279     echo "$ttt" >expect &&
280     echo "$ttt$sss$sss$sss" | git stripspace >actual &&
281     git diff expect actual &&
283     echo "$ttt$ttt" >expect &&
284     echo "$ttt$ttt$sss" | git stripspace >actual &&
285     git diff expect actual &&
287     echo "$ttt$ttt" >expect &&
288     echo "$ttt$ttt$sss$sss" | git stripspace >actual &&
289     git diff expect actual &&
291     echo "$ttt$ttt$ttt" >expect &&
292     echo "$ttt$ttt$ttt$sss" | git stripspace >actual &&
293     git diff expect actual
296 # spaces only:
298 test_expect_success \
299     'spaces with newline at end should be replaced with empty string' '
300     printf "" >expect &&
302     echo | git stripspace >actual &&
303     git diff expect actual &&
305     echo "$sss" | git stripspace >actual &&
306     git diff expect actual &&
308     echo "$sss$sss" | git stripspace >actual &&
309     git diff expect actual &&
311     echo "$sss$sss$sss" | git stripspace >actual &&
312     git diff expect actual &&
314     echo "$sss$sss$sss$sss" | git stripspace >actual &&
315     git diff expect actual
318 test_expect_failure \
319     'spaces without newline at end should not show spaces' '
320     printf "" | git stripspace | grep -q " " ||
321     printf "$sss" | git stripspace | grep -q " " ||
322     printf "$sss$sss" | git stripspace | grep -q " " ||
323     printf "$sss$sss$sss" | git stripspace | grep -q " " ||
324     printf "$sss$sss$sss$sss" | git stripspace | grep -q " "
327 test_expect_success \
328     'spaces without newline at end should be replaced with empty string' '
329     printf "" >expect &&
331     printf "" | git stripspace >actual &&
332     git diff expect actual &&
334     printf "$sss$sss" | git stripspace >actual &&
335     git diff expect actual &&
337     printf "$sss$sss$sss" | git stripspace >actual &&
338     git diff expect actual &&
340     printf "$sss$sss$sss$sss" | git stripspace >actual &&
341     git diff expect actual
344 test_done