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