Whamcloud - gitweb
land 0.5.20.3 b_devel onto HEAD (b_devel will remain)
[fs/lustre-release.git] / lustre / tests / sanity.sh
index 111606a..c3e201f 100644 (file)
@@ -27,7 +27,12 @@ start() {
 }
 START=${START:-start}
 
-error () { 
+log() {
+       echo "$*"
+       lctl mark "$*"
+}
+
+error() { 
     echo FAIL
     exit 1
 }
@@ -38,7 +43,7 @@ pass() {
 
 mount | grep $MOUNT || sh llmount.sh
 
-echo '== touch .../f ; rm .../f ======================== test 0'
+log '== touch .../f ; rm .../f ======================== test 0'
 touch $DIR/f
 $CHECKSTAT -t file $DIR/f || error 
 rm $DIR/f
@@ -47,7 +52,7 @@ pass
 $CLEAN
 $START
 
-echo '== mkdir .../d1; mkdir .../d1/d2 ================= test 1'
+log '== mkdir .../d1; mkdir .../d1/d2 ================= test 1'
 mkdir $DIR/d1
 mkdir $DIR/d1/d2
 $CHECKSTAT -t dir $DIR/d1/d2 || error
@@ -55,7 +60,7 @@ pass
 $CLEAN
 $START
 
-echo '== rmdir .../d1/d2; rmdir .../d1 ================= test 1b'
+log '== rmdir .../d1/d2; rmdir .../d1 ================= test 1b'
 rmdir $DIR/d1/d2
 rmdir $DIR/d1
 $CHECKSTAT -a $DIR/d1 || error
@@ -63,7 +68,7 @@ pass
 $CLEAN
 $START
 
-echo '== mkdir .../d2; touch .../d2/f ================== test 2'
+log '== mkdir .../d2; touch .../d2/f ================== test 2'
 mkdir $DIR/d2
 touch $DIR/d2/f
 $CHECKSTAT -t file $DIR/d2/f || error
@@ -71,46 +76,46 @@ pass
 $CLEAN
 $START
 
-echo '== rm -r .../d2; touch .../d2/f ================== test 2b'
+log '== rm -r .../d2; touch .../d2/f ================== test 2b'
 rm -r $DIR/d2
 $CHECKSTAT -a $DIR/d2 || error
 pass
 $CLEAN
 $START
 
-echo '== mkdir .../d3 ================================== test 3'
+log '== mkdir .../d3 ================================== test 3'
 mkdir $DIR/d3
 $CHECKSTAT -t dir $DIR/d3 || error
 pass
 $CLEAN
 $START
-echo '== touch .../d3/f ================================ test 3b'
+log '== touch .../d3/f ================================ test 3b'
 touch $DIR/d3/f
 $CHECKSTAT -t file $DIR/d3/f || error
 pass
 $CLEAN
 $START
-echo '== rm -r .../d3 ================================== test 3c'
+log '== rm -r .../d3 ================================== test 3c'
 rm -r $DIR/d3
 $CHECKSTAT -a $DIR/d3 || error
 pass
 $CLEAN
 $START
 
-echo '== mkdir .../d4 ================================== test 4'
+log '== mkdir .../d4 ================================== test 4'
 mkdir $DIR/d4
 $CHECKSTAT -t dir $DIR/d4 || error
 pass
 $CLEAN
 $START
-echo '== mkdir .../d4/d2 =============================== test 4b'
+log '== mkdir .../d4/d2 =============================== test 4b'
 mkdir $DIR/d4/d2
 $CHECKSTAT -t dir $DIR/d4/d2 || error
 pass
 $CLEAN
 $START
 
-echo '== mkdir .../d5; mkdir .../d5/d2; chmod .../d5/d2 = test 5'
+log '== mkdir .../d5; mkdir .../d5/d2; chmod .../d5/d2 = test 5'
 mkdir $DIR/d5
 mkdir $DIR/d5/d2
 chmod 0707 $DIR/d5/d2
@@ -119,7 +124,7 @@ pass
 $CLEAN
 $START
 
-echo '== touch .../f6; chmod .../f6 ==================== test 6'
+log '== touch .../f6; chmod .../f6 ==================== test 6'
 touch $DIR/f6
 chmod 0666 $DIR/f6
 $CHECKSTAT -t file -p 0666 $DIR/f6 || error
@@ -127,7 +132,7 @@ pass
 $CLEAN
 $START
 
-echo '== mkdir .../d7; mcreate .../d7/f; chmod .../d7/f = test 7'
+log '== mkdir .../d7; mcreate .../d7/f; chmod .../d7/f = test 7'
 mkdir $DIR/d7
 $MCREATE $DIR/d7/f
 chmod 0666 $DIR/d7/f
@@ -136,16 +141,16 @@ pass
 $CLEAN
 $START
 
-echo '== mkdir .../d7; mcreate .../d7/f2; chmod .../d7/f2 = test 7b'
+log '== mkdir .../d7; mcreate .../d7/f2; echo foo > .../d7/f2 = test 7b'
 $MCREATE $DIR/d7/f2
-echo -n foo > $DIR/d7/f2
+log -n foo > $DIR/d7/f2
 [ "`cat $DIR/d7/f2`" = "foo" ] || error
 $CHECKSTAT -t file -s 3 $DIR/d7/f2 || error
 pass
 $CLEAN
 $START
 
-echo '== mkdir .../d8; touch .../d8/f; chmod .../d8/f == test 8'
+log '== mkdir .../d8; touch .../d8/f; chmod .../d8/f == test 8'
 mkdir $DIR/d8
 touch $DIR/d8/f
 chmod 0666 $DIR/d8/f
@@ -155,7 +160,7 @@ $CLEAN
 $START
 
 
-echo '== mkdir .../d9 .../d9/d2 .../d9/d2/d3 =========== test 9'
+log '== mkdir .../d9 .../d9/d2 .../d9/d2/d3 =========== test 9'
 mkdir $DIR/d9
 mkdir $DIR/d9/d2
 mkdir $DIR/d9/d2/d3
@@ -165,7 +170,7 @@ $CLEAN
 $START
 
 
-echo '== mkdir .../d10 .../d10/d2; touch .../d10/d2/f = test 10'
+log '== mkdir .../d10 .../d10/d2; touch .../d10/d2/f = test 10'
 mkdir $DIR/d10
 mkdir $DIR/d10/d2
 touch $DIR/d10/d2/f
@@ -174,7 +179,7 @@ pass
 $CLEAN
 $START
 
-echo '== mkdir .../d11 d11/d2; chmod .../d11/d2 ======= test 11'
+log '== mkdir .../d11 d11/d2; chmod .../d11/d2 ======= test 11'
 mkdir $DIR/d11
 mkdir $DIR/d11/d2
 chmod 0666 $DIR/d11/d2
@@ -184,7 +189,7 @@ pass
 $CLEAN
 $START
 
-echo '== mkdir .../d12; touch .../d12/f; chmod .../d12/f == test 12'
+log '== mkdir .../d12; touch .../d12/f; chmod .../d12/f == test 12'
 mkdir $DIR/d12
 touch $DIR/d12/f
 chmod 0666 $DIR/d12/f
@@ -194,7 +199,7 @@ pass
 $CLEAN
 $START
 
-echo '== mkdir .../d13; creat .../d13/f;  .../d13/f; > .../d13/f == test 13'
+log '== mkdir .../d13; creat .../d13/f;  .../d13/f; > .../d13/f == test 13'
 mkdir $DIR/d13
 dd if=/dev/zero of=$DIR/d13/f count=10
 >  $DIR/d13/f
@@ -203,7 +208,7 @@ pass
 $CLEAN
 $START
 
-echo '================================================== test 14'
+log '================================================== test 14'
 mkdir $DIR/d14
 touch $DIR/d14/f
 rm $DIR/d14/f
@@ -212,7 +217,7 @@ pass
 $CLEAN
 $START
 
-echo '================================================== test 15'
+log '================================================== test 15'
 mkdir $DIR/d15
 touch $DIR/d15/f
 mv $DIR/d15/f $DIR/d15/f2
@@ -221,7 +226,7 @@ pass
 $CLEAN
 $START
 
-echo '================================================== test 16'
+log '================================================== test 16'
 mkdir $DIR/d16
 touch $DIR/d16/f
 rm -rf $DIR/d16/f
@@ -230,7 +235,7 @@ pass
 $CLEAN
 $START
 
-echo '== symlinks: create, remove (dangling and real) == test 17'
+log '== symlinks: create, remove (dangling and real) == test 17'
 mkdir $DIR/d17
 touch $DIR/d17/f
 ln -s $DIR/d17/f $DIR/d17/l-exist
@@ -248,14 +253,14 @@ pass
 $CLEAN
 $START
 
-echo "== touch .../f ; ls ... ========================= test 18"
+log "== touch .../f ; ls ... ========================= test 18"
 touch $DIR/f
 ls $DIR || error
 pass
 $CLEAN
 $START
 
-echo "== touch .../f ; ls -l ... ====================== test 19"
+log "== touch .../f ; ls -l ... ====================== test 19"
 touch $DIR/f
 ls -l $DIR
 rm $DIR/f
@@ -264,22 +269,22 @@ pass
 $CLEAN
 $START
 
-echo "== touch .../f ; ls -l ... ====================== test 20"
+log "== touch .../f ; ls -l ... ====================== test 20"
 touch $DIR/f
 rm $DIR/f
-echo "1 done"
+log "1 done"
 touch $DIR/f
 rm $DIR/f
-echo "2 done"
+log "2 done"
 touch $DIR/f
 rm $DIR/f
-echo "3 done"
+log "3 done"
 $CHECKSTAT -a $DIR/f || error
 pass
 $CLEAN
 $START
 
-echo '== write to dangling link ======================== test 21'
+log '== write to dangling link ======================== test 21'
 mkdir $DIR/d21
 [ -f $DIR/d21/dangle ] && rm -f $DIR/d21/dangle
 ln -s dangle $DIR/d21/link
@@ -291,7 +296,7 @@ pass
 $CLEAN
 $START
 
-echo '== unpack tar archive as non-root user =========== test 22'
+log '== unpack tar archive as non-root user =========== test 22'
 mkdir $DIR/d22
 which sudo && chown 4711 $DIR/d22
 SUDO=`which sudo 2> /dev/null` && SUDO="$SUDO -u #4711" || SUDO=""
@@ -305,7 +310,7 @@ pass
 $CLEAN
 $START
 
-echo '== O_CREAT|O_EXCL in subdir ====================== test 23'
+log '== O_CREAT|O_EXCL in subdir ====================== test 23'
 mkdir $DIR/d23
 $TOEXCL $DIR/d23/f23
 $TOEXCL -e $DIR/d23/f23 || error
@@ -315,7 +320,7 @@ $START
 
 echo '== rename sanity ================================= test24'
 echo '-- same directory rename'
-echo '-- test 24-R1: touch a ; rename a b'
+log '-- test 24-R1: touch a ; rename a b'
 mkdir $DIR/R1
 touch $DIR/R1/f
 mv $DIR/R1/f $DIR/R1/g
@@ -324,7 +329,7 @@ pass
 $CLEAN
 $START
 
-echo '-- test 24-R2: touch a b ; rename a b;'
+log '-- test 24-R2: touch a b ; rename a b;'
 mkdir $DIR/R2
 touch $DIR/R2/{f,g}
 mv $DIR/R2/f $DIR/R2/g
@@ -334,7 +339,7 @@ pass
 $CLEAN
 $START
 
-echo '-- test 24-R3: mkdir a  ; rename a b;'
+log '-- test 24-R3: mkdir a  ; rename a b;'
 mkdir $DIR/R3
 mkdir $DIR/R3/f
 mv $DIR/R3/f $DIR/R3/g
@@ -344,7 +349,7 @@ pass
 $CLEAN
 $START
 
-echo '-- test 24-R4: mkdir a b ; rename a b;'
+log '-- test 24-R4: mkdir a b ; rename a b;'
 mkdir $DIR/R4
 mkdir $DIR/R4/{f,g}
 perl -e "rename \"$DIR/R4/f\", \"$DIR/R4/g\";"
@@ -355,7 +360,7 @@ $CLEAN
 $START
 
 echo '-- cross directory renames --' 
-echo '-- test 24-R5: touch a ; rename a b'
+log '-- test 24-R5: touch a ; rename a b'
 mkdir $DIR/R5{a,b}
 touch $DIR/R5a/f
 mv $DIR/R5a/f $DIR/R5b/g
@@ -365,7 +370,7 @@ pass
 $CLEAN
 $START
 
-echo '-- test 24-R6: touch a ; rename a b'
+log '-- test 24-R6: touch a ; rename a b'
 mkdir $DIR/R6{a,b}
 touch $DIR/R6a/f $DIR/R6b/g
 mv $DIR/R6a/f $DIR/R6b/g
@@ -375,7 +380,7 @@ pass
 $CLEAN
 $START
 
-echo '-- test 24-R7: touch a ; rename a b'
+log '-- test 24-R7: touch a ; rename a b'
 mkdir $DIR/R7{a,b}
 mkdir $DIR/R7a/f
 mv $DIR/R7a/f $DIR/R7b/g
@@ -385,7 +390,7 @@ pass
 $CLEAN
 $START
 
-echo '-- test 24-R8: touch a ; rename a b'
+log '-- test 24-R8: touch a ; rename a b'
 mkdir $DIR/R8{a,b}
 mkdir $DIR/R8a/f $DIR/R8b/g
 perl -e "rename \"$DIR/R8a/f\", \"$DIR/R8b/g\";"
@@ -396,7 +401,7 @@ $CLEAN
 $START
 
 echo "-- rename error cases"
-echo "-- test 24-R9 target error: touch f ; mkdir a ; rename f a"
+log "-- test 24-R9 target error: touch f ; mkdir a ; rename f a"
 mkdir $DIR/R9
 mkdir $DIR/R9/a
 touch $DIR/R9/f
@@ -408,7 +413,7 @@ pass
 $CLEAN
 $START
 
-echo "--test 24-R10 source does not exist" 
+log "--test 24-R10 source does not exist" 
 mkdir $DIR/R10
 perl -e "rename \"$DIR/R10/f\", \"$DIR/R10/g\"" 
 $CHECKSTAT -t dir $DIR/R10 || error
@@ -419,7 +424,7 @@ $CLEAN
 $START
 
 echo '== symlink sanity ================================ test25'
-echo "--test 25.1 create file in symlinked directory"
+log "--test 25.1 create file in symlinked directory"
 mkdir $DIR/d25
 ln -s d25 $DIR/s25
 touch $DIR/s25/foo
@@ -427,13 +432,13 @@ pass
 $CLEAN
 $START
 
-echo "--test 25.2 lookup file in symlinked directory"
+log "--test 25.2 lookup file in symlinked directory"
 $CHECKSTAT -t file $DIR/s25/foo
 pass
 $CLEAN
 $START
 
-echo "--test 26 multiple component symlink"
+log "--test 26 multiple component symlink"
 mkdir $DIR/d26
 mkdir $DIR/d26/d26-2
 ln -s d26/d26-2 $DIR/s26
@@ -442,14 +447,14 @@ pass
 $CLEAN
 $START
 
-echo "--test 26.1 multiple component symlink at the end of a lookup"
+log "--test 26.1 multiple component symlink at the end of a lookup"
 ln -s d26/d26-2/foo $DIR/s26-2
 touch $DIR/s26-2
 pass
 $CLEAN
 $START
 
-echo "--test 26.2 a chain of symlinks"
+log "--test 26.2 a chain of symlinks"
 mkdir $DIR/d26.2
 touch $DIR/d26.2/foo
 ln -s d26.2 $DIR/s26.2-1
@@ -461,39 +466,39 @@ $CLEAN
 $START
 
 # recursive symlinks (bug 439)
-echo "--test 26.3 create multiple component recursive symlink"
+log "--test 26.3 create multiple component recursive symlink"
 ln -s d26-3/foo $DIR/d26-3
 pass
 $CLEAN
 $START
 
-echo "--test 26.3 unlink multiple component recursive symlink"
+log "--test 26.3 unlink multiple component recursive symlink"
 rm $DIR/d26-3
 pass
 $CLEAN
 $START
 
 echo '== stripe sanity ================================= test27'
-echo "--test 27.1 create one stripe"
+log "--test 27.1 create one stripe"
 mkdir $DIR/d27
 $LSTRIPE $DIR/d27/f0 8192 0 1
 $CHECKSTAT -t file $DIR/d27/f0
-echo "--test 27.2 write to one stripe file"
+log "--test 27.2 write to one stripe file"
 cp /etc/hosts $DIR/d27/f0
 pass
 
-echo "--test 27.3 create two stripe file f01"
+log "--test 27.3 create two stripe file f01"
 $LSTRIPE $DIR/d27/f01 8192 0 2
-echo "--test 27.4 write to two stripe file file f01"
+log "--test 27.4 write to two stripe file file f01"
 dd if=/dev/zero of=$DIR/d27/f01 bs=4k count=4
 pass
 
-echo "--test 27.5 create file with default settings"
+log "--test 27.5 create file with default settings"
 $LSTRIPE $DIR/d27/fdef 0 -1 0
 $CHECKSTAT -t file $DIR/d27/fdef
 #dd if=/dev/zero of=$DIR/d27/fdef bs=4k count=4
 
-echo "--test 27.6 lstripe existing file (should return error)"
+log "--test 27.6 lstripe existing file (should return error)"
 $LSTRIPE $DIR/d27/f12 8192 1 2
 ! $LSTRIPE $DIR/d27/f12 8192 1 2
 $CHECKSTAT -t file $DIR/d27/f12
@@ -501,32 +506,32 @@ $CHECKSTAT -t file $DIR/d27/f12
 pass
 
 
-echo "--test 27.7 lstripe with bad stripe size (should return error on LOV)"
+log "--test 27.7 lstripe with bad stripe size (should return error on LOV)"
 $LSTRIPE $DIR/d27/fbad 100 1 2 || /bin/true
 dd if=/dev/zero of=$DIR/d27/f12 bs=4k count=4
 pass
 $CLEAN
 $START
 
-echo "--test 27.8 lfind "
+log "--test 27.8 lfind "
 $LFIND $DIR/d27
 pass
 $CLEAN
 $START
 
-echo '== create/mknod/mkdir with bad file types ======== test28'
+log '== create/mknod/mkdir with bad file types ======== test28'
 mkdir $DIR/d28
 $CREATETEST $DIR/d28/ct || error
 pass
 
-echo '== IT_GETATTR regression  ======================== test29'
-mkdir $MOUNT/d29
-touch $MOUNT/d29/foo
-ls -l $MOUNT/d29
-MDCDIR=${MDCDIR:-/proc/fs/lustre/ldlm/ldlm/MDC_MNT_localhost_mds1}
+log '== IT_GETATTR regression  ======================== test29'
+mkdir $DIR/d29
+touch $DIR/d29/foo
+ls -l $DIR/d29
+MDCDIR=${MDCDIR:-/proc/fs/lustre/ldlm/ldlm/MDC_*}
 LOCKCOUNTORIG=`cat $MDCDIR/lock_count`
 LOCKUNUSEDCOUNTORIG=`cat $MDCDIR/lock_unused_count`
-ls -l $MOUNT/d29
+ls -l $DIR/d29
 LOCKCOUNTCURRENT=`cat $MDCDIR/lock_count`
 LOCKUNUSEDCOUNTCURRENT=`cat $MDCDIR/lock_unused_count`
 if [ $LOCKCOUNTCURRENT -gt $LOCKCOUNTORIG ] || [ $LOCKUNUSEDCOUNTCURRENT -gt $LOCKUNUSEDCOUNTORIG ]; then
@@ -536,8 +541,18 @@ pass
 $CLEAN
 $START
 
-echo '== cleanup ============================================='
-rm -r $DIR/[Rdfs][1-9]*
+log '== run binary from Lustre (execve) =============== test30'
+cp `which ls` $DIR
+$DIR/ls /
+$CLEAN
+$START
+
+log '== open-unlink file ============================== test31'
+./openunlink $DIR/f31 $DIR/f31 || error
+pass
+
+log '== cleanup ============================================='
+rm -r $DIR/[Rdfs][1-9]* $DIR/ls
 
 echo '======================= finished ======================='
 exit