Whamcloud - gitweb
Allow sanity.sh to work with zconf.
[fs/lustre-release.git] / lustre / tests / sanity.sh
index 33ad8e5..47e73c3 100644 (file)
@@ -9,12 +9,14 @@ set -e
 ONLY=${ONLY:-"$*"}
 # bug number for skipped tests:
 # skipped test: 
+# - 48a is obsolete due to new_kernel_api
 # - 51b 51c depend on used kernel
 #   more than only LOV EAs
 # - 65h (default stripe inheritance) is not implemented for LMV 
 #   configurations. Will be done in second phase of collibri.
+# - 71 mmap still not updated on HEAD
 
-ALWAYS_EXCEPT=${ALWAYS_EXCEPT:-"51b 51c 65h"}
+ALWAYS_EXCEPT=${ALWAYS_EXCEPT:-"48a 51b 51c 65h 71"}
 # UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
 
 [ "$ALWAYS_EXCEPT$EXCEPT" ] && echo "Skipping tests: $ALWAYS_EXCEPT $EXCEPT"
@@ -24,7 +26,11 @@ export PATH=$PWD/$SRCDIR:$SRCDIR:$SRCDIR/../utils:$PATH
 export SECURITY=${SECURITY:-"null"}
 
 TMP=${TMP:-/tmp}
-FSTYPE=${FSTYPE:-ext3}
+DEF_FSTYPE=`test "x$(uname -r | grep -o '2.6')" = "x2.6" && echo "ldiskfs" || echo "ext3"`
+FSTYPE=${FSTYPE:-$DEF_FSTYPE}
+#used only if FSTYPE == smfs, otherwise ignored by lconf
+MDS_BACKFSTYPE=${MDS_BACKFSTYPE:-$DEF_FSTYPE}
+OST_BACKFSTYPE=${OST_BACKFSTYPE:-$DEF_FSTYPE}
 
 CHECKSTAT=${CHECKSTAT:-"checkstat -v"}
 CREATETEST=${CREATETEST:-createtest}
@@ -181,10 +187,13 @@ pass() {
        echo PASS $@
 }
 
-MOUNT="`mount | awk '/^'$NAME' .* lustre_lite / { print $3 }'`"
+mounted_lustre_filesystems() {
+       awk '($3 ~ "lustre") { print $2 }' /proc/mounts
+}
+MOUNT="`mounted_lustre_filesystems`"
 if [ -z "$MOUNT" ]; then
        sh llmount.sh
-       MOUNT="`mount | awk '/^'$NAME' .* lustre_lite / { print $3 }'`"
+       MOUNT="`mounted_lustre_filesystems`"
        [ -z "$MOUNT" ] && error "NAME=$NAME not mounted"
        I_MOUNTED=yes
 fi
@@ -747,6 +756,7 @@ test_24s() {
        $CHECKSTAT -t dir $DIR/R15a/b/c || error "$DIR/R15a/b/c missing"
 }
 run_test 24s "mkdir .../R15a/b/c; rename .../R15a .../R15a/b/c ="
+
 test_24t() {
        mkdir $DIR/R16a $DIR/R16a/b $DIR/R16a/b/c
        mrename $DIR/R16a/b/c $DIR/R16a && error "rename to sub-subdir worked!"
@@ -755,6 +765,26 @@ test_24t() {
 }
 run_test 24t "mkdir .../R16a/b/c; rename .../R16a/b/c .../R16a ="
 
+test_24u() {
+        rm -rf /tmp/R17*
+        mkdir $DIR/R17_dir
+        echo "aaa" > $DIR/R17_file
+        mv $DIR/R17_dir /tmp/
+        $CHECKSTAT -t dir /tmp/R17_dir || error "move dir out 1"
+        $CHECKSTAT -a $DIR/R17_dir || error "move dir out 2"
+        mv $DIR/R17_file /tmp/
+        $CHECKSTAT -t file /tmp/R17_file || error "move file out 1"
+        $CHECKSTAT -a $DIR/R17_file || error "move file out 2"
+
+        mv /tmp/R17_dir $DIR/
+        $CHECKSTAT -t dir $DIR/R17_dir || error "move dir in 3"
+        $CHECKSTAT -a /tmp/R17_dir || error "move dir in 4"
+        mv /tmp/R17_file $DIR/
+        $CHECKSTAT -t file $DIR/R17_file || error "move file in 3"
+        $CHECKSTAT -a /tmp/R17_file || error "move file in 4"
+}
+run_test 24u "rename across lustre file system"
+
 test_25a() {
        echo '== symlink sanity ============================================='
        mkdir $DIR/d25
@@ -1951,7 +1981,7 @@ check_fstype() {
         test "x$FSTYPE" = "x$(grep $FSTYPE /proc/filesystems)" && return 0
         modprobe $FSTYPE > /dev/null 2>&1
         test "x$FSTYPE" = "x$(grep $FSTYPE /proc/filesystems)" && return 0
-       test "x$(uname -r | grep -o "2.6")" = "x2.6" && MODEXT="ko" || MODEXT="o"
+        test "x$(uname -r | grep -o '2.6')" = "x2.6" && MODEXT="ko" || MODEXT="o"
         insmod ../$FSTYPE/$FSTYPE.$MODEXT > /dev/null 2>&1
         test "x$FSTYPE" = "x$(grep $FSTYPE /proc/filesystems)" && return 0
         return 1
@@ -1961,7 +1991,11 @@ test_55() {
         rm -rf $DIR/d55
         mkdir $DIR/d55
         check_fstype && echo "can't find fs $FSTYPE, skipping test 55" && return
-        mount -t $FSTYPE -o loop,iopen $EXT2_DEV $DIR/d55 || error "mounting"
+        if [ "$FSTYPE" == "smfs" ] ; then
+           mount -t $MDS_BACKFSTYPE -o loop,iopen $EXT2_DEV $DIR/d55 || error "mounting"
+       else
+           mount -t $FSTYPE -o loop,iopen $EXT2_DEV $DIR/d55 || error "mounting"
+       fi
        touch $DIR/d55/foo
         $IOPENTEST1 $DIR/d55/foo $DIR/d55 || error "running $IOPENTEST1"
         $IOPENTEST2 $DIR/d55 || error "running $IOPENTEST2"