Whamcloud - gitweb
merge b_md into HEAD:
[fs/lustre-release.git] / lustre / tests / sanity.sh
1 #!/bin/bash
2
3 export NAME=$NAME
4 clean() {
5         echo -n "cleanup..."
6         sh llmountcleanup.sh > /dev/null
7 }
8 CLEAN=clean
9 start() {
10         echo -n "mounting..."
11         sh llrmount.sh > /dev/null
12         echo -n "mounted"
13 }
14 START=start
15
16 error () { 
17     echo FAIL
18     exit 1
19 }
20
21 pass() { 
22     echo PASS
23 }
24
25 echo '== touch .../f ; rm .../f ======================== test 0'
26 touch /mnt/lustre/f
27 [ -f /mnt/lustre/f ] || error 
28 rm /mnt/lustre/f
29 [ ! -f /mnt/lustre/f ] || error
30 pass
31 $CLEAN
32 $START
33
34 echo '== mkdir .../d1; mkdir .../d1/d2 ================= test 1'
35 mkdir /mnt/lustre/d1
36 mkdir /mnt/lustre/d1/d2
37 [ -d /mnt/lustre/d1/d2 ] || error
38 pass
39 $CLEAN
40 $START
41
42 echo '== rmdir .../d1/d2; rmdir .../d1 ================= test 1b'
43 rmdir /mnt/lustre/d1/d2
44 rmdir /mnt/lustre/d1
45 [ ! -d /mnt/lustre/d1 ] || error
46 pass
47 $CLEAN
48 $START
49
50 echo '== mkdir .../d2; touch .../d2/f ================== test 2'
51 mkdir /mnt/lustre/d2
52 touch /mnt/lustre/d2/f
53 $CLEAN
54 $START
55
56 echo '== rm -r .../d2; touch .../d2/f ================== test 2b'
57 rm -r /mnt/lustre/d2
58 $CLEAN
59 $START
60
61 echo '== mkdir .../d3 ================================== test 3'
62 mkdir /mnt/lustre/d3
63 $CLEAN
64 $START
65 echo '== touch .../d3/f ================================ test 3b'
66 touch /mnt/lustre/d3/f
67 $CLEAN
68 $START
69 echo '== rm -r .../d3 ================================== test 3c'
70 rm -r /mnt/lustre/d3
71 $CLEAN
72 $START
73
74 echo '== mkdir .../d4 ================================== test 4'
75 mkdir /mnt/lustre/d4
76 $CLEAN
77 $START
78 echo '== mkdir .../d4/d2 =============================== test 4b'
79 mkdir /mnt/lustre/d4/d2
80 $CLEAN
81 $START
82
83 echo '== mkdir .../d5; mkdir .../d5/d2; chmod .../d5/d2 = test 5'
84 mkdir /mnt/lustre/d5
85 mkdir /mnt/lustre/d5/d2
86 chmod 0666 /mnt/lustre/d5/d2
87 $CLEAN
88 $START
89
90 echo '== touch .../f6; chmod .../f6 ==================== test 6'
91 touch /mnt/lustre/f6
92 chmod 0666 /mnt/lustre/f6
93 $CLEAN
94 $START
95
96 echo '== mkdir .../d7; mcreate .../d7/f; chmod .../d7/f = test 7'
97 mkdir /mnt/lustre/d7
98 ./mcreate /mnt/lustre/d7/f
99 chmod 0666 /mnt/lustre/d7/f
100 $CLEAN
101 $START
102
103 echo '== mkdir .../d8; touch .../d8/f; chmod .../d8/f == test 8'
104 mkdir /mnt/lustre/d8
105 touch /mnt/lustre/d8/f
106 chmod 0666 /mnt/lustre/d8/f
107 $CLEAN
108 $START
109
110
111 echo '== mkdir .../d9; mkdir .../d9/d2; mkdir .../d9/d2/d3 == test 9'
112 mkdir /mnt/lustre/d9
113 mkdir /mnt/lustre/d9/d2
114 mkdir /mnt/lustre/d9/d2/d3
115 $CLEAN
116 $START
117
118
119 echo '== mkdir .../d10; mkdir .../d10/d2; touch .../d10/d2/f = test 10'
120 mkdir /mnt/lustre/d10
121 mkdir /mnt/lustre/d10/d2
122 touch /mnt/lustre/d10/d2/f
123 $CLEAN
124 $START
125
126 echo '=================================================== test 11'
127 mkdir /mnt/lustre/d11
128 mkdir /mnt/lustre/d11/d2
129 chmod 0666 /mnt/lustre/d11/d2
130 chmod 0555 /mnt/lustre/d11/d2
131 $CLEAN
132 $START
133
134 echo '=================================================== test 12'
135 mkdir /mnt/lustre/d12
136 touch /mnt/lustre/d12/f
137 chmod 0666 /mnt/lustre/d12/f
138 chmod 0555 /mnt/lustre/d12/f
139 $CLEAN
140 $START
141
142 echo '=================================================== test 13'
143 mkdir /mnt/lustre/d13
144 cp /etc/passwd /mnt/lustre/d13/f
145 >  /mnt/lustre/d13/f
146 $CLEAN
147 $START
148
149
150 echo '=================================================== test 14'
151 mkdir /mnt/lustre/d14
152 touch /mnt/lustre/d14/f
153 rm /mnt/lustre/d14/f
154 $CLEAN
155 $START
156
157
158 echo '=================================================== test 15'
159 mkdir /mnt/lustre/d15
160 touch /mnt/lustre/d15/f
161 mv /mnt/lustre/d15/f /mnt/lustre/d15/f2
162 $CLEAN
163 $START
164
165 echo '=================================================== test 16'
166 mkdir /mnt/lustre/d16
167 touch /mnt/lustre/d16/f
168 rm -rf /mnt/lustre/d16/f
169 $CLEAN
170 $START
171
172 echo '== symlinks: create, remove (dangling and real) === test 17'
173 mkdir /mnt/lustre/d17
174 touch /mnt/lustre/d17/f
175 ln -s /mnt/lustre/d17/f /mnt/lustre/d17/l-exist
176 ln -s no-such-file /mnt/lustre/d17/l-dangle
177 ls -l /mnt/lustre/d17
178 rm -f /mnt/lustre/l-dangle
179 rm -f /mnt/lustre/l-exist
180 $CLEAN
181 $START
182
183 echo '== touch /mnt/lustre/f ; ls /mnt/lustre ========== test 18'
184 touch /mnt/lustre/f
185 ls /mnt/lustre
186 $CLEAN
187 $START
188
189 echo '== touch /mnt/lustre/f ; ls -l /mnt/lustre ======= test 19'
190 touch /mnt/lustre/f
191 ls -l /mnt/lustre
192 rm /mnt/lustre/f
193 $CLEAN
194 $START
195
196 echo '== touch /mnt/lustre/f ; ls -l /mnt/lustre ======= test 20'
197 touch /mnt/lustre/f
198 rm /mnt/lustre/f
199 echo "1 done"
200 touch /mnt/lustre/f
201 rm /mnt/lustre/f
202 echo "2 done"
203 touch /mnt/lustre/f
204 rm /mnt/lustre/f
205 echo "3 done"
206 $CLEAN
207 $START
208
209 echo '== write to dangling link ======================= test 21'
210 mkdir /mnt/lustre/d21
211 ln -s dangle /mnt/lustre/d21/link
212 echo foo >> /mnt/lustre/d21/link
213 cat /mnt/lustre/d21/dangle
214 $CLEAN
215 $START
216
217 echo '== unpack tar archive as nonroot user =========== test 22'
218 mkdir /mnt/lustre/d22
219 chown 4711 /mnt/lustre/d22
220 sudo -u \#4711 tar cf - /etc/hosts /etc/sysconfig/network | sudo -u \#4711 tar xfC - /mnt/lustre/d22
221 ls -lR /mnt/lustre/d22/etc
222 $CLEAN
223 $START
224
225 echo '== O_CREAT|O_EXCL in subdir ===================== test 23'
226 mkdir /mnt/lustre/d23
227 ./toexcl /mnt/lustre/d23/f23
228 ./toexcl /mnt/lustre/d23/f23
229 $CLEAN
230 $START
231
232 echo '== rename sanity ============================= test24'
233 echo '-- same directory rename'
234 echo '-- test 24-R1: touch a ; rename a b'
235 mkdir /mnt/lustre/R1
236 touch /mnt/lustre/R1/f
237 mv /mnt/lustre/R1/f /mnt/lustre/R1/g
238 $CLEAN
239 $START
240
241 echo '-- test 24-R2: touch a b ; rename a b;'
242 mkdir /mnt/lustre/R2
243 touch /mnt/lustre/R2/{f,g}
244 mv /mnt/lustre/R2/f /mnt/lustre/R2/g
245 $CLEAN
246 $START
247
248 echo '-- test 24-R3: mkdir a  ; rename a b;'
249 mkdir /mnt/lustre/R3
250 mkdir /mnt/lustre/R3/f
251 mv /mnt/lustre/R3/f /mnt/lustre/R3/g
252 $CLEAN
253 $START
254
255 echo '-- test 24-R4: mkdir a b ; rename a b;'
256 mkdir /mnt/lustre/R4
257 mkdir /mnt/lustre/R4/{f,g}
258 perl -e 'rename "/mnt/lustre/R3/f", "/mnt/lustre/R3/g";'
259 $CLEAN
260 $START
261
262 echo '-- cross directory renames --' 
263 echo '-- test 24-R5: touch a ; rename a b'
264 mkdir /mnt/lustre/R5{a,b}
265 touch /mnt/lustre/R5a/f
266 mv /mnt/lustre/R5a/f /mnt/lustre/R5b/g
267 $CLEAN
268 $START
269
270 echo '-- test 24-R6: touch a ; rename a b'
271 mkdir /mnt/lustre/R6{a,b}
272 touch /mnt/lustre/R6a/f /mnt/lustre/R6b/g
273 mv /mnt/lustre/R6a/f /mnt/lustre/R6b/g
274 $CLEAN
275 $START
276
277 echo '-- test 24-R7: touch a ; rename a b'
278 mkdir /mnt/lustre/R7{a,b}
279 mkdir /mnt/lustre/R7a/f
280 mv /mnt/lustre/R7a/f /mnt/lustre/R7b/g
281 $CLEAN
282 $START
283
284 echo '-- test 24-R8: touch a ; rename a b'
285 mkdir /mnt/lustre/R8{a,b}
286 mkdir /mnt/lustre/R8a/f /mnt/lustre/R8b/g
287 perl -e 'rename "/mnt/lustre/R8a/f", "/mnt/lustre/R8b/g";'
288 $CLEAN
289 $START
290
291 echo "-- rename error cases"
292 echo "-- test 24-R9 target error: touch f ; mkdir a ; rename f a"
293 mkdir /mnt/lustre/R9
294 mkdir /mnt/lustre/R9/a
295 touch /mnt/lustre/R9/f
296 perl -e 'rename "/mnt/lustre/R9/f", "/mnt/lustre/R9/a";'
297 $CLEAN
298 $START
299
300 echo "--test 24-R10 source does not exist" 
301 mkdir /mnt/lustre/R10
302 mv /mnt/lustre/R10/f /mnt/lustre/R10/g 
303 $CLEAN
304 $START
305
306 echo '======================= finished ======================='
307 exit