5 CHECKSTAT=${CHECKSTAT:-"./checkstat -v"}
6 MOUNT=${MOUNT:-/mnt/lustre}
10 sh llmountcleanup.sh > /dev/null
15 sh llrmount.sh > /dev/null
29 echo '== touch .../f ; rm .../f ======================== test 0'
31 $CHECKSTAT -t file $MOUNT/f || error
33 $CHECKSTAT -a $MOUNT/f || error
38 echo '== mkdir .../d1; mkdir .../d1/d2 ================= test 1'
41 $CHECKSTAT -t dir $MOUNT/d1/d2 || error
46 echo '== rmdir .../d1/d2; rmdir .../d1 ================= test 1b'
49 $CHECKSTAT -a $MOUNT/d1 || error
54 echo '== mkdir .../d2; touch .../d2/f ================== test 2'
57 $CHECKSTAT -t file $MOUNT/d2/f || error
62 echo '== rm -r .../d2; touch .../d2/f ================== test 2b'
64 $CHECKSTAT -a $MOUNT/d2 || error
69 echo '== mkdir .../d3 ================================== test 3'
71 $CHECKSTAT -t dir $MOUNT/d3 || error
75 echo '== touch .../d3/f ================================ test 3b'
77 $CHECKSTAT -t file $MOUNT/d3/f || error
81 echo '== rm -r .../d3 ================================== test 3c'
83 $CHECKSTAT -a $MOUNT/d3 || error
88 echo '== mkdir .../d4 ================================== test 4'
90 $CHECKSTAT -t dir $MOUNT/d4 || error
94 echo '== mkdir .../d4/d2 =============================== test 4b'
96 $CHECKSTAT -t dir $MOUNT/d4/d2 || error
101 echo '== mkdir .../d5; mkdir .../d5/d2; chmod .../d5/d2 = test 5'
104 chmod 0666 $MOUNT/d5/d2
105 $CHECKSTAT -t dir -p 0666 $MOUNT/d5/d2 || error
110 echo '== touch .../f6; chmod .../f6 ==================== test 6'
113 $CHECKSTAT -t file -p 0666 $MOUNT/f6 || error
118 echo '== mkdir .../d7; mcreate .../d7/f; chmod .../d7/f = test 7'
120 ./mcreate $MOUNT/d7/f
121 chmod 0666 $MOUNT/d7/f
122 $CHECKSTAT -t file -p 0666 $MOUNT/d7/f || error
127 echo '== mkdir .../d8; touch .../d8/f; chmod .../d8/f == test 8'
130 chmod 0666 $MOUNT/d8/f
131 $CHECKSTAT -t file -p 0666 $MOUNT/d8/f || error
137 echo '== mkdir .../d9 .../d9/d2 .../d9/d2/d3 =========== test 9'
140 mkdir $MOUNT/d9/d2/d3
141 $CHECKSTAT -t dir $MOUNT/d9/d2/d3 || error
147 echo '== mkdir .../d10; mkdir .../d10/d2; touch .../d10/d2/f = test 10'
150 touch $MOUNT/d10/d2/f
151 $CHECKSTAT -t file $MOUNT/d10/d2/f || error
156 echo '== mkdir .../d11 d11/d2; chmod .../d11/d2 .../d11/d2 == test 11'
159 chmod 0666 $MOUNT/d11/d2
160 chmod 0555 $MOUNT/d11/d2
161 $CHECKSTAT -t dir -p 0555 $MOUNT/d11/d2 || error
166 echo '== mkdir .../d12; touch .../d12/f; chmod .../d12/f d12/f == test 12'
169 chmod 0666 $MOUNT/d12/f
170 chmod 0555 $MOUNT/d12/f
171 $CHECKSTAT -t file -p 0555 $MOUNT/d12/f || error
176 echo '== mkdir .../d13; cp /etc/passwd .../d13/f; > .../d13/f == test 13'
178 cp /etc/hosts $MOUNT/d13/f
180 $CHECKSTAT -t file -s 0 $MOUNT/d13/f || error
186 echo '================================================== test 14'
190 $CHECKSTAT -a $MOUNT/d14/f || error
196 echo '================================================== test 15'
199 mv $MOUNT/d15/f $MOUNT/d15/f2
200 $CHECKSTAT -t file $MOUNT/d15/f2 || error
205 echo '================================================== test 16'
209 $CHECKSTAT -a $MOUNT/d16/f || error
214 echo '== symlinks: create, remove (dangling and real) == test 17'
217 ln -s $MOUNT/d17/f $MOUNT/d17/l-exist
218 ln -s no-such-file $MOUNT/d17/l-dangle
220 $CHECKSTAT -l $MOUNT/d17/f $MOUNT/d17/l-exist || error
221 $CHECKSTAT -f -t f $MOUNT/d17/l-exist || error
222 $CHECKSTAT -l no-such-file $MOUNT/d17/l-dangle || error
223 $CHECKSTAT -fa $MOUNT/d17/l-dangle || error
224 rm -f $MOUNT/l-dangle
226 $CHECKSTAT -a $MOUNT/l-dangle || error
227 $CHECKSTAT -a $MOUNT/l-exist || error
232 echo "== touch $MOUNT/f ; ls $MOUNT ==================== test 18"
239 echo "== touch $MOUNT/f ; ls -l $MOUNT ================= test 19"
243 $CHECKSTAT -a $MOUNT/f || error
248 echo "== touch $MOUNT/f ; ls -l $MOUNT ================= test 20"
258 $CHECKSTAT -a $MOUNT/f || error
263 echo '== write to dangling link ======================== test 21'
265 [ -f $MOUNT/d21/dangle ] && rm -f $MOUNT/d21/dangle
266 ln -s dangle $MOUNT/d21/link
267 echo foo >> $MOUNT/d21/link
268 cat $MOUNT/d21/dangle
269 $CHECKSTAT -t link $MOUNT/d21/link || error
270 $CHECKSTAT -f -t file $MOUNT/d21/link || error
275 echo '== unpack tar archive as non-root user =========== test 22'
277 which sudo && chown 4711 $MOUNT/d22
278 SUDO=`which sudo 2> /dev/null` && SUDO="$SUDO -u #4711" || SUDO=""
279 $SUDO tar cf - /etc/hosts /etc/sysconfig/network | $SUDO tar xfC - $MOUNT/d22
280 ls -lR $MOUNT/d22/etc
281 $CHECKSTAT -t dir $MOUNT/d22/etc || error
282 [ -z "$SUDO" ] || $CHECKSTAT -u \#4711 $MOUNT/d22/etc || error
287 echo '== O_CREAT|O_EXCL in subdir ====================== test 23'
289 ./toexcl $MOUNT/d23/f23
290 ./toexcl -e $MOUNT/d23/f23 || error
295 echo '== rename sanity ================================= test24'
296 echo '-- same directory rename'
297 echo '-- test 24-R1: touch a ; rename a b'
300 mv $MOUNT/R1/f $MOUNT/R1/g
301 $CHECKSTAT -t file $MOUNT/R1/g || error
306 echo '-- test 24-R2: touch a b ; rename a b;'
308 touch $MOUNT/R2/{f,g}
309 mv $MOUNT/R2/f $MOUNT/R2/g
310 $CHECKSTAT -a $MOUNT/R2/f || error
311 $CHECKSTAT -t file $MOUNT/R2/g || error
316 echo '-- test 24-R3: mkdir a ; rename a b;'
319 mv $MOUNT/R3/f $MOUNT/R3/g
320 $CHECKSTAT -a $MOUNT/R3/f || error
321 $CHECKSTAT -t dir $MOUNT/R3/g || error
326 echo '-- test 24-R4: mkdir a b ; rename a b;'
328 mkdir $MOUNT/R4/{f,g}
329 perl -e "rename \"$MOUNT/R4/f\", \"$MOUNT/R4/g\";"
330 $CHECKSTAT -a $MOUNT/R4/f || error
331 $CHECKSTAT -t dir $MOUNT/R4/g || error
336 echo '-- cross directory renames --'
337 echo '-- test 24-R5: touch a ; rename a b'
340 mv $MOUNT/R5a/f $MOUNT/R5b/g
341 $CHECKSTAT -a $MOUNT/R5a/f || error
342 $CHECKSTAT -t file $MOUNT/R5b/g || error
347 echo '-- test 24-R6: touch a ; rename a b'
349 touch $MOUNT/R6a/f $MOUNT/R6b/g
350 mv $MOUNT/R6a/f $MOUNT/R6b/g
351 $CHECKSTAT -a $MOUNT/R6a/f || error
352 $CHECKSTAT -t file $MOUNT/R6b/g || error
357 echo '-- test 24-R7: touch a ; rename a b'
360 mv $MOUNT/R7a/f $MOUNT/R7b/g
361 $CHECKSTAT -a $MOUNT/R7a/f || error
362 $CHECKSTAT -t dir $MOUNT/R7b/g || error
367 echo '-- test 24-R8: touch a ; rename a b'
369 mkdir $MOUNT/R8a/f $MOUNT/R8b/g
370 perl -e "rename \"$MOUNT/R8a/f\", \"$MOUNT/R8b/g\";"
371 $CHECKSTAT -a $MOUNT/R8a/f || error
372 $CHECKSTAT -t dir $MOUNT/R8b/g || error
377 echo "-- rename error cases"
378 echo "-- test 24-R9 target error: touch f ; mkdir a ; rename f a"
382 perl -e "rename \"$MOUNT/R9/f\", \"$MOUNT/R9/a\";"
383 $CHECKSTAT -t file $MOUNT/R9/f || error
384 $CHECKSTAT -t dir $MOUNT/R9/a || error
385 $CHECKSTAT -a file $MOUNT/R9/a/f || error
390 echo "--test 24-R10 source does not exist"
392 perl -e "rename \"$MOUNT/R10/f\", \"$MOUNT/R10/g\""
393 $CHECKSTAT -t dir $MOUNT/R10 || error
394 $CHECKSTAT -a $MOUNT/R10/f || error
395 $CHECKSTAT -a $MOUNT/R10/g || error
400 echo '======================= finished ======================='