]> git.ipfire.org Git - thirdparty/git.git/blob - t/t7300-clean.sh
Add more tests for git-clean
[thirdparty/git.git] / t / t7300-clean.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2007 Michael Spang
4 #
5
6 test_description='git-clean basic tests'
7
8 . ./test-lib.sh
9
10 test_expect_success 'setup' '
11
12 mkdir -p src &&
13 touch src/part1.c Makefile &&
14 echo build >.gitignore &&
15 echo \*.o >>.gitignore &&
16 git add . &&
17 git-commit -m setup &&
18 touch src/part2.c README &&
19 git add .
20
21 '
22
23 test_expect_success 'git-clean' '
24
25 mkdir -p build docs &&
26 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
27 git-clean &&
28 test -f Makefile &&
29 test -f README &&
30 test -f src/part1.c &&
31 test -f src/part2.c &&
32 test ! -f a.out &&
33 test ! -f src/part3.c &&
34 test -f docs/manual.txt &&
35 test -f obj.o &&
36 test -f build/lib.so
37
38 '
39
40 test_expect_success 'git-clean src/' '
41
42 mkdir -p build docs &&
43 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
44 git-clean src/ &&
45 test -f Makefile &&
46 test -f README &&
47 test -f src/part1.c &&
48 test -f src/part2.c &&
49 test -f a.out &&
50 test ! -f src/part3.c &&
51 test -f docs/manual.txt &&
52 test -f obj.o &&
53 test -f build/lib.so
54
55 '
56
57 test_expect_success 'git-clean src/ src/' '
58
59 mkdir -p build docs &&
60 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
61 git-clean src/ src/ &&
62 test -f Makefile &&
63 test -f README &&
64 test -f src/part1.c &&
65 test -f src/part2.c &&
66 test -f a.out &&
67 test ! -f src/part3.c &&
68 test -f docs/manual.txt &&
69 test -f obj.o &&
70 test -f build/lib.so
71
72 '
73
74 test_expect_success 'git-clean with prefix' '
75
76 mkdir -p build docs &&
77 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
78 (cd src/ && git-clean) &&
79 test -f Makefile &&
80 test -f README &&
81 test -f src/part1.c &&
82 test -f src/part2.c &&
83 test -f a.out &&
84 test ! -f src/part3.c &&
85 test -f docs/manual.txt &&
86 test -f obj.o &&
87 test -f build/lib.so
88
89 '
90 test_expect_success 'git-clean -d with prefix and path' '
91
92 mkdir -p build docs src/feature &&
93 touch a.out src/part3.c src/feature/file.c docs/manual.txt obj.o build/lib.so &&
94 (cd src/ && git-clean -d feature/) &&
95 test -f Makefile &&
96 test -f README &&
97 test -f src/part1.c &&
98 test -f src/part2.c &&
99 test -f a.out &&
100 test -f src/part3.c &&
101 test ! -f src/feature/file.c &&
102 test -f docs/manual.txt &&
103 test -f obj.o &&
104 test -f build/lib.so
105
106 '
107
108 test_expect_success 'git-clean symbolic link' '
109
110 mkdir -p build docs &&
111 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
112 ln -s docs/manual.txt src/part4.c
113 git-clean &&
114 test -f Makefile &&
115 test -f README &&
116 test -f src/part1.c &&
117 test -f src/part2.c &&
118 test ! -f a.out &&
119 test ! -f src/part3.c &&
120 test ! -f src/part4.c &&
121 test -f docs/manual.txt &&
122 test -f obj.o &&
123 test -f build/lib.so
124
125 '
126
127 test_expect_success 'git-clean -n' '
128
129 mkdir -p build docs &&
130 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
131 git-clean -n &&
132 test -f Makefile &&
133 test -f README &&
134 test -f src/part1.c &&
135 test -f src/part2.c &&
136 test -f a.out &&
137 test -f src/part3.c &&
138 test -f docs/manual.txt &&
139 test -f obj.o &&
140 test -f build/lib.so
141
142 '
143
144 test_expect_success 'git-clean -d' '
145
146 mkdir -p build docs &&
147 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
148 git-clean -d &&
149 test -f Makefile &&
150 test -f README &&
151 test -f src/part1.c &&
152 test -f src/part2.c &&
153 test ! -f a.out &&
154 test ! -f src/part3.c &&
155 test ! -d docs &&
156 test -f obj.o &&
157 test -f build/lib.so
158
159 '
160
161 test_expect_success 'git-clean -d src/ examples/' '
162
163 mkdir -p build docs examples &&
164 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so examples/1.c &&
165 git-clean -d src/ examples/ &&
166 test -f Makefile &&
167 test -f README &&
168 test -f src/part1.c &&
169 test -f src/part2.c &&
170 test -f a.out &&
171 test ! -f src/part3.c &&
172 test ! -f examples/1.c &&
173 test -f docs/manual.txt &&
174 test -f obj.o &&
175 test -f build/lib.so
176
177 '
178
179 test_expect_success 'git-clean -x' '
180
181 mkdir -p build docs &&
182 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
183 git-clean -x &&
184 test -f Makefile &&
185 test -f README &&
186 test -f src/part1.c &&
187 test -f src/part2.c &&
188 test ! -f a.out &&
189 test ! -f src/part3.c &&
190 test -f docs/manual.txt &&
191 test ! -f obj.o &&
192 test -f build/lib.so
193
194 '
195
196 test_expect_success 'git-clean -d -x' '
197
198 mkdir -p build docs &&
199 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
200 git-clean -d -x &&
201 test -f Makefile &&
202 test -f README &&
203 test -f src/part1.c &&
204 test -f src/part2.c &&
205 test ! -f a.out &&
206 test ! -f src/part3.c &&
207 test ! -d docs &&
208 test ! -f obj.o &&
209 test ! -d build
210
211 '
212
213 test_expect_success 'git-clean -X' '
214
215 mkdir -p build docs &&
216 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
217 git-clean -X &&
218 test -f Makefile &&
219 test -f README &&
220 test -f src/part1.c &&
221 test -f src/part2.c &&
222 test -f a.out &&
223 test -f src/part3.c &&
224 test -f docs/manual.txt &&
225 test ! -f obj.o &&
226 test -f build/lib.so
227
228 '
229
230 test_expect_success 'git-clean -d -X' '
231
232 mkdir -p build docs &&
233 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
234 git-clean -d -X &&
235 test -f Makefile &&
236 test -f README &&
237 test -f src/part1.c &&
238 test -f src/part2.c &&
239 test -f a.out &&
240 test -f src/part3.c &&
241 test -f docs/manual.txt &&
242 test ! -f obj.o &&
243 test ! -d build
244
245 '
246
247 test_expect_success 'clean.requireForce' '
248
249 git config clean.requireForce true &&
250 ! git-clean
251
252 '
253
254 test_expect_success 'clean.requireForce and -n' '
255
256 mkdir -p build docs &&
257 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
258 git-clean -n &&
259 test -f Makefile &&
260 test -f README &&
261 test -f src/part1.c &&
262 test -f src/part2.c &&
263 test -f a.out &&
264 test -f src/part3.c &&
265 test -f docs/manual.txt &&
266 test -f obj.o &&
267 test -f build/lib.so
268
269 '
270
271 test_expect_success 'clean.requireForce and -f' '
272
273 git-clean -f &&
274 test -f README &&
275 test -f src/part1.c &&
276 test -f src/part2.c &&
277 test ! -f a.out &&
278 test ! -f src/part3.c &&
279 test -f docs/manual.txt &&
280 test -f obj.o &&
281 test -f build/lib.so
282
283 '
284
285 test_done