1#!/bin/sh
2#
3# Copyright (c) 2007 Michael Spang
4#
5
6test_description='git-clean basic tests'
7
8. ./test-lib.sh
9
10test_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
23test_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
40test_expect_success 'git-clean -n' '
41
42 mkdir -p build docs &&
43 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
44 git-clean -n &&
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
57test_expect_success 'git-clean -d' '
58
59 mkdir -p build docs &&
60 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
61 git-clean -d &&
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 ! -d docs &&
69 test -f obj.o &&
70 test -f build/lib.so
71
72'
73
74test_expect_success 'git-clean -x' '
75
76 mkdir -p build docs &&
77 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
78 git-clean -x &&
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
91test_expect_success 'git-clean -d -x' '
92
93 mkdir -p build docs &&
94 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
95 git-clean -d -x &&
96 test -f Makefile &&
97 test -f README &&
98 test -f src/part1.c &&
99 test -f src/part2.c &&
100 test ! -f a.out &&
101 test ! -f src/part3.c &&
102 test ! -d docs &&
103 test ! -f obj.o &&
104 test ! -d build
105
106'
107
108test_expect_success 'git-clean -X' '
109
110 mkdir -p build docs &&
111 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
112 git-clean -X &&
113 test -f Makefile &&
114 test -f README &&
115 test -f src/part1.c &&
116 test -f src/part2.c &&
117 test -f a.out &&
118 test -f src/part3.c &&
119 test -f docs/manual.txt &&
120 test ! -f obj.o &&
121 test -f build/lib.so
122
123'
124
125test_expect_success 'git-clean -d -X' '
126
127 mkdir -p build docs &&
128 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
129 git-clean -d -X &&
130 test -f Makefile &&
131 test -f README &&
132 test -f src/part1.c &&
133 test -f src/part2.c &&
134 test -f a.out &&
135 test -f src/part3.c &&
136 test -f docs/manual.txt &&
137 test ! -f obj.o &&
138 test ! -d build
139
140'
141
142test_expect_success 'clean.requireForce' '
143
144 git config clean.requireForce true &&
145 ! git-clean
146
147'
148
149test_expect_success 'clean.requireForce and -n' '
150
151 mkdir -p build docs &&
152 touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
153 git-clean -n &&
154 test -f Makefile &&
155 test -f README &&
156 test -f src/part1.c &&
157 test -f src/part2.c &&
158 test -f a.out &&
159 test -f src/part3.c &&
160 test -f docs/manual.txt &&
161 test -f obj.o &&
162 test -f build/lib.so
163
164'
165
166test_expect_success 'clean.requireForce and -f' '
167
168 git-clean -f &&
169 test -f README &&
170 test -f src/part1.c &&
171 test -f src/part2.c &&
172 test ! -f a.out &&
173 test ! -f src/part3.c &&
174 test -f docs/manual.txt &&
175 test -f obj.o &&
176 test -f build/lib.so
177
178'
179
180test_done