test: add t7301 for git-clean--interactive

Add test cases for git-clean--interactive. Signed-off-by: Jiang Xin <worldhello.net@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jiang Xin committed Jun 25, 2013 at 23:53 UTC db627fd568410499c47d764937c3d7a10bbadffa
1 file changed +439
t/t7301-clean-interactive.sh new
+439
@@ -0,0 +1,439 @@
1 +#!/bin/sh
2 +
3 +test_description='git clean -i basic tests'
4 +
5 +. ./test-lib.sh
6 +
7 +test_expect_success 'setup' '
8 +
9 + mkdir -p src &&
10 + touch src/part1.c Makefile &&
11 + echo build >.gitignore &&
12 + echo \*.o >>.gitignore &&
13 + git add . &&
14 + git commit -m setup &&
15 + touch src/part2.c README &&
16 + git add .
17 +
18 +'
19 +
20 +test_expect_success 'git clean -i (clean)' '
21 +
22 + mkdir -p build docs &&
23 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
24 + docs/manual.txt obj.o build/lib.so &&
25 + echo c | git clean -i &&
26 + test -f Makefile &&
27 + test -f README &&
28 + test -f src/part1.c &&
29 + test -f src/part2.c &&
30 + test ! -f a.out &&
31 + test -f docs/manual.txt &&
32 + test ! -f src/part3.c &&
33 + test ! -f src/part3.h &&
34 + test ! -f src/part4.c &&
35 + test ! -f src/part4.h &&
36 + test -f obj.o &&
37 + test -f build/lib.so
38 +
39 +'
40 +
41 +test_expect_success 'git clean -i (quit)' '
42 +
43 + mkdir -p build docs &&
44 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
45 + docs/manual.txt obj.o build/lib.so &&
46 + echo q | git clean -i &&
47 + test -f Makefile &&
48 + test -f README &&
49 + test -f src/part1.c &&
50 + test -f src/part2.c &&
51 + test -f a.out &&
52 + test -f docs/manual.txt &&
53 + test -f src/part3.c &&
54 + test -f src/part3.h &&
55 + test -f src/part4.c &&
56 + test -f src/part4.h &&
57 + test -f obj.o &&
58 + test -f build/lib.so
59 +
60 +'
61 +
62 +test_expect_success 'git clean -i (Ctrl+D)' '
63 +
64 + mkdir -p build docs &&
65 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
66 + docs/manual.txt obj.o build/lib.so &&
67 + echo "\04" | git clean -i &&
68 + test -f Makefile &&
69 + test -f README &&
70 + test -f src/part1.c &&
71 + test -f src/part2.c &&
72 + test -f a.out &&
73 + test -f docs/manual.txt &&
74 + test -f src/part3.c &&
75 + test -f src/part3.h &&
76 + test -f src/part4.c &&
77 + test -f src/part4.h &&
78 + test -f obj.o &&
79 + test -f build/lib.so
80 +
81 +'
82 +
83 +test_expect_success 'git clean -id (filter all)' '
84 +
85 + mkdir -p build docs &&
86 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
87 + docs/manual.txt obj.o build/lib.so &&
88 + (echo f; echo "*"; echo; echo c) | \
89 + git clean -id &&
90 + test -f Makefile &&
91 + test -f README &&
92 + test -f src/part1.c &&
93 + test -f src/part2.c &&
94 + test -f a.out &&
95 + test -f docs/manual.txt &&
96 + test -f src/part3.c &&
97 + test -f src/part3.h &&
98 + test -f src/part4.c &&
99 + test -f src/part4.h &&
100 + test -f obj.o &&
101 + test -f build/lib.so
102 +
103 +'
104 +
105 +test_expect_success 'git clean -id (filter patterns)' '
106 +
107 + mkdir -p build docs &&
108 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
109 + docs/manual.txt obj.o build/lib.so &&
110 + (echo f; echo "part3.* *.out"; echo; echo c) | \
111 + git clean -id &&
112 + test -f Makefile &&
113 + test -f README &&
114 + test -f src/part1.c &&
115 + test -f src/part2.c &&
116 + test -f a.out &&
117 + test ! -f docs/manual.txt &&
118 + test -f src/part3.c &&
119 + test -f src/part3.h &&
120 + test ! -f src/part4.c &&
121 + test ! -f src/part4.h &&
122 + test -f obj.o &&
123 + test -f build/lib.so
124 +
125 +'
126 +
127 +test_expect_success 'git clean -id (filter patterns 2)' '
128 +
129 + mkdir -p build docs &&
130 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
131 + docs/manual.txt obj.o build/lib.so &&
132 + (echo f; echo "* !*.out"; echo; echo c) | \
133 + git clean -id &&
134 + test -f Makefile &&
135 + test -f README &&
136 + test -f src/part1.c &&
137 + test -f src/part2.c &&
138 + test ! -f a.out &&
139 + test -f docs/manual.txt &&
140 + test -f src/part3.c &&
141 + test -f src/part3.h &&
142 + test -f src/part4.c &&
143 + test -f src/part4.h &&
144 + test -f obj.o &&
145 + test -f build/lib.so
146 +
147 +'
148 +
149 +test_expect_success 'git clean -id (select - all)' '
150 +
151 + mkdir -p build docs &&
152 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
153 + docs/manual.txt obj.o build/lib.so &&
154 + (echo s; echo "*"; echo; echo c) | \
155 + git clean -id &&
156 + test -f Makefile &&
157 + test -f README &&
158 + test -f src/part1.c &&
159 + test -f src/part2.c &&
160 + test ! -f a.out &&
161 + test ! -f docs/manual.txt &&
162 + test ! -f src/part3.c &&
163 + test ! -f src/part3.h &&
164 + test ! -f src/part4.c &&
165 + test ! -f src/part4.h &&
166 + test -f obj.o &&
167 + test -f build/lib.so
168 +
169 +'
170 +
171 +test_expect_success 'git clean -id (select - none)' '
172 +
173 + mkdir -p build docs &&
174 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
175 + docs/manual.txt obj.o build/lib.so &&
176 + (echo s; echo; echo c) | \
177 + git clean -id &&
178 + test -f Makefile &&
179 + test -f README &&
180 + test -f src/part1.c &&
181 + test -f src/part2.c &&
182 + test -f a.out &&
183 + test -f docs/manual.txt &&
184 + test -f src/part3.c &&
185 + test -f src/part3.h &&
186 + test -f src/part4.c &&
187 + test -f src/part4.h &&
188 + test -f obj.o &&
189 + test -f build/lib.so
190 +
191 +'
192 +
193 +test_expect_success 'git clean -id (select - number)' '
194 +
195 + mkdir -p build docs &&
196 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
197 + docs/manual.txt obj.o build/lib.so &&
198 + (echo s; echo 3; echo; echo c) | \
199 + git clean -id &&
200 + test -f Makefile &&
201 + test -f README &&
202 + test -f src/part1.c &&
203 + test -f src/part2.c &&
204 + test -f a.out &&
205 + test -f docs/manual.txt &&
206 + test ! -f src/part3.c &&
207 + test -f src/part3.h &&
208 + test -f src/part4.c &&
209 + test -f src/part4.h &&
210 + test -f obj.o &&
211 + test -f build/lib.so
212 +
213 +'
214 +
215 +test_expect_success 'git clean -id (select - number 2)' '
216 +
217 + mkdir -p build docs &&
218 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
219 + docs/manual.txt obj.o build/lib.so &&
220 + (echo s; echo 2 3; echo 5; echo; echo c) | \
221 + git clean -id &&
222 + test -f Makefile &&
223 + test -f README &&
224 + test -f src/part1.c &&
225 + test -f src/part2.c &&
226 + test -f a.out &&
227 + test ! -f docs/manual.txt &&
228 + test ! -f src/part3.c &&
229 + test -f src/part3.h &&
230 + test ! -f src/part4.c &&
231 + test -f src/part4.h &&
232 + test -f obj.o &&
233 + test -f build/lib.so
234 +
235 +'
236 +
237 +test_expect_success 'git clean -id (select - number 3)' '
238 +
239 + mkdir -p build docs &&
240 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
241 + docs/manual.txt obj.o build/lib.so &&
242 + (echo s; echo 3,4 5; echo; echo c) | \
243 + git clean -id &&
244 + test -f Makefile &&
245 + test -f README &&
246 + test -f src/part1.c &&
247 + test -f src/part2.c &&
248 + test -f a.out &&
249 + test -f docs/manual.txt &&
250 + test ! -f src/part3.c &&
251 + test ! -f src/part3.h &&
252 + test ! -f src/part4.c &&
253 + test -f src/part4.h &&
254 + test -f obj.o &&
255 + test -f build/lib.so
256 +
257 +'
258 +
259 +test_expect_success 'git clean -id (select - range)' '
260 +
261 + mkdir -p build docs &&
262 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
263 + docs/manual.txt obj.o build/lib.so &&
264 + (echo s; echo 1,3-4; echo 2; echo; echo c) | \
265 + git clean -id &&
266 + test -f Makefile &&
267 + test -f README &&
268 + test -f src/part1.c &&
269 + test -f src/part2.c &&
270 + test ! -f a.out &&
271 + test ! -f src/part3.c &&
272 + test ! -f src/part3.h &&
273 + test -f src/part4.c &&
274 + test -f src/part4.h &&
275 + test ! -f docs/manual.txt &&
276 + test -f obj.o &&
277 + test -f build/lib.so
278 +
279 +'
280 +
281 +test_expect_success 'git clean -id (select - range 2)' '
282 +
283 + mkdir -p build docs &&
284 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
285 + docs/manual.txt obj.o build/lib.so &&
286 + (echo s; echo 4- 1; echo; echo c) | \
287 + git clean -id &&
288 + test -f Makefile &&
289 + test -f README &&
290 + test -f src/part1.c &&
291 + test -f src/part2.c &&
292 + test ! -f a.out &&
293 + test -f docs/manual.txt &&
294 + test -f src/part3.c &&
295 + test ! -f src/part3.h &&
296 + test ! -f src/part4.c &&
297 + test ! -f src/part4.h &&
298 + test -f obj.o &&
299 + test -f build/lib.so
300 +
301 +'
302 +
303 +test_expect_success 'git clean -id (inverse select)' '
304 +
305 + mkdir -p build docs &&
306 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
307 + docs/manual.txt obj.o build/lib.so &&
308 + (echo s; echo "*"; echo -5- 1 -2; echo; echo c) | \
309 + git clean -id &&
310 + test -f Makefile &&
311 + test -f README &&
312 + test -f src/part1.c &&
313 + test -f src/part2.c &&
314 + test ! -f a.out &&
315 + test -f docs/manual.txt &&
316 + test ! -f src/part3.c &&
317 + test ! -f src/part3.h &&
318 + test -f src/part4.c &&
319 + test -f src/part4.h &&
320 + test -f obj.o &&
321 + test -f build/lib.so
322 +
323 +'
324 +
325 +test_expect_success 'git clean -id (ask)' '
326 +
327 + mkdir -p build docs &&
328 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
329 + docs/manual.txt obj.o build/lib.so &&
330 + (echo a; echo Y; echo y; echo no; echo yes; echo bad; echo) | \
331 + git clean -id &&
332 + test -f Makefile &&
333 + test -f README &&
334 + test -f src/part1.c &&
335 + test -f src/part2.c &&
336 + test ! -f a.out &&
337 + test ! -f docs/manual.txt &&
338 + test -f src/part3.c &&
339 + test ! -f src/part3.h &&
340 + test -f src/part4.c &&
341 + test -f src/part4.h &&
342 + test -f obj.o &&
343 + test -f build/lib.so
344 +
345 +'
346 +
347 +test_expect_success 'git clean -id (ask - Ctrl+D)' '
348 +
349 + mkdir -p build docs &&
350 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
351 + docs/manual.txt obj.o build/lib.so &&
352 + (echo a; echo Y; echo no; echo yes; echo "\04") | \
353 + git clean -id &&
354 + test -f Makefile &&
355 + test -f README &&
356 + test -f src/part1.c &&
357 + test -f src/part2.c &&
358 + test ! -f a.out &&
359 + test -f docs/manual.txt &&
360 + test ! -f src/part3.c &&
361 + test -f src/part3.h &&
362 + test -f src/part4.c &&
363 + test -f src/part4.h &&
364 + test -f obj.o &&
365 + test -f build/lib.so
366 +
367 +'
368 +
369 +test_expect_success 'git clean -id with prefix and path (filter)' '
370 +
371 + mkdir -p build docs &&
372 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
373 + docs/manual.txt obj.o build/lib.so &&
374 + (cd build/ && \
375 + (echo f; echo "docs"; echo "*.h"; echo ; echo c) | \
376 + git clean -id ..) &&
377 + test -f Makefile &&
378 + test -f README &&
379 + test -f src/part1.c &&
380 + test -f src/part2.c &&
381 + test ! -f a.out &&
382 + test -f docs/manual.txt &&
383 + test ! -f src/part3.c &&
384 + test -f src/part3.h &&
385 + test ! -f src/part4.c &&
386 + test -f src/part4.h &&
387 + test -f obj.o &&
388 + test -f build/lib.so
389 +
390 +'
391 +
392 +test_expect_success 'git clean -id with prefix and path (select by name)' '
393 +
394 + mkdir -p build docs &&
395 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
396 + docs/manual.txt obj.o build/lib.so &&
397 + (cd build/ && \
398 + (echo s; echo "../docs/"; echo "../src/part3.c"; \
399 + echo "../src/part4.c"; echo; echo c) | \
400 + git clean -id ..) &&
401 + test -f Makefile &&
402 + test -f README &&
403 + test -f src/part1.c &&
404 + test -f src/part2.c &&
405 + test -f a.out &&
406 + test ! -f docs/manual.txt &&
407 + test ! -f src/part3.c &&
408 + test -f src/part3.h &&
409 + test ! -f src/part4.c &&
410 + test -f src/part4.h &&
411 + test -f obj.o &&
412 + test -f build/lib.so
413 +
414 +'
415 +
416 +test_expect_success 'git clean -id with prefix and path (ask)' '
417 +
418 + mkdir -p build docs &&
419 + touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
420 + docs/manual.txt obj.o build/lib.so &&
421 + (cd build/ && \
422 + (echo a; echo Y; echo y; echo no; echo yes; echo bad; echo) | \
423 + git clean -id ..) &&
424 + test -f Makefile &&
425 + test -f README &&
426 + test -f src/part1.c &&
427 + test -f src/part2.c &&
428 + test ! -f a.out &&
429 + test ! -f docs/manual.txt &&
430 + test -f src/part3.c &&
431 + test ! -f src/part3.h &&
432 + test -f src/part4.c &&
433 + test -f src/part4.h &&
434 + test -f obj.o &&
435 + test -f build/lib.so
436 +
437 +'
438 +
439 +test_done