Whamcloud - gitweb
b=5881
[fs/lustre-release.git] / lustre / tests / sanity-lmv.sh
index ccf4fb4..8e0a86e 100644 (file)
@@ -18,6 +18,7 @@ ALWAYS_EXCEPT=${ALWAYS_EXCEPT:-""}
 
 SRCDIR=`dirname $0`
 export PATH=$PWD/$SRCDIR:$SRCDIR:$SRCDIR/../utils:$PATH
+export SECURITY=${SECURITY:-"null"}
 
 TMP=${TMP:-/tmp}
 FSTYPE=${FSTYPE:-ext3}
@@ -39,6 +40,9 @@ SOCKETSERVER=${SOCKETSERVER:-socketserver}
 SOCKETCLIENT=${SOCKETCLIENT:-socketclient}
 IOPENTEST1=${IOPENTEST1:-iopentest1}
 IOPENTEST2=${IOPENTEST2:-iopentest2}
+PTLDEBUG=${PTLDEBUG:-0}
+
+. krb5_env.sh
 
 if [ $UID -ne 0 ]; then
        RUNAS_ID="$UID"
@@ -48,6 +52,13 @@ else
        RUNAS=${RUNAS:-"runas -u $RUNAS_ID"}
 fi
 
+if [ `using_krb5_sec $SECURITY` == 'y' ] ; then
+    start_krb5_kdc || exit 1
+    if [ $RUNAS_ID -ne $UID ]; then
+        $RUNAS ./krb5_refresh_cache.sh || exit 2
+    fi
+fi
+
 export NAME=${NAME:-lmv}
 
 SAVE_PWD=$PWD
@@ -95,7 +106,7 @@ run_one() {
        if ! mount | grep -q $DIR; then
                $START
        fi
-       echo -1 >/proc/sys/portals/debug        
+       echo $PTLDEBUG >/proc/sys/portals/debug 
        log "== test $1: $2"
        export TESTNAME=test_$1
        test_$1 || error "test_$1: exit with rc=$?"
@@ -180,10 +191,10 @@ fi
 DIR=${DIR:-$MOUNT}
 [ -z "`echo $DIR | grep $MOUNT`" ] && echo "$DIR not in $MOUNT" && exit 99
 
-LOVNAME=`cat /proc/fs/lustre/llite/fs0/lov/common_name`
-OSTCOUNT=`cat /proc/fs/lustre/lov/$LOVNAME/numobd`
-STRIPECOUNT=`cat /proc/fs/lustre/lov/$LOVNAME/stripecount`
-STRIPESIZE=`cat /proc/fs/lustre/lov/$LOVNAME/stripesize`
+#LOVNAME=`cat /proc/fs/lustre/llite/fs0/lov/common_name`
+#OSTCOUNT=`cat /proc/fs/lustre/lov/$LOVNAME/numobd`
+#STRIPECOUNT=`cat /proc/fs/lustre/lov/$LOVNAME/stripecount`
+#STRIPESIZE=`cat /proc/fs/lustre/lov/$LOVNAME/stripesize`
 
 [ -f $DIR/d52a/foo ] && chattr -a $DIR/d52a/foo
 [ -f $DIR/d52b/foo ] && chattr -i $DIR/d52b/foo
@@ -247,19 +258,23 @@ test_1c() {
        touch $DIR/1b1/file1
        touch $DIR/1b1/file2
 
-       echo "3 files left"
+       ls $DIR/1b1/
+       log "3 files left"
        rmdir $DIR/1b1 && error
        rm -f $DIR/1b1/file0
 
-       echo "2 files left"
+       ls $DIR/1b1/
+       log "2 files left"
        rmdir $DIR/1b1 && error
        rm -f $DIR/1b1/file1
 
-       echo "1 files left"
+       ls $DIR/1b1/
+       log "1 files left"
        rmdir $DIR/1b1 && error
        rm -f $DIR/1b1/file2
 
-       echo "0 files left"
+       ls $DIR/1b1/
+       log "0 files left"
        rmdir $DIR/1b1 || error
 }
 run_test 1c " remove splitted cross-node dir ============================="
@@ -288,6 +303,54 @@ test_2b() {
 }
 run_test 2b " list splitted dir after remount ============================="
 
+test_3a() {
+       mkdir $DIR/3a0 || error
+       for i in `seq 100`; do
+               mkdir $DIR/3a0/d${i} || error
+       done
+       createmany -o $DIR/3a0/f 5000 || error
+       rm -rf $DIR/3a0 || error
+}
+run_test 3a " dir splitting with cross-ref ============================="
+
+test_3b() {
+       mkdir $DIR/3b1 || error
+       createmany -m $DIR/3b1/f 5000 || error
+       rm -rf $DIR/3b1 || error
+}
+run_test 3b " dir splitting via createmany -m ============================="
+
+test_3c() {
+       mkdir $DIR/3c1 || error
+       echo "MDS nodes: $MDSCOUNT"
+       for j in `seq 3`; do
+               for i in `seq 10`; do
+                       $LFS dirstripe $DIR/3c1/d-${j}-${i} $j || error
+                       createmany -m $DIR/3c1/d-${j}-${i}/m 200 || error
+                       createmany -o $DIR/3c1/d-${j}-${i}/o 200 || error
+               done
+       done
+       rm -rf $DIR/3c1 || error
+}
+
+run_test 3c " dir splitting via lfs stripe ============================="
+
+test_4a() {
+       let rr=0
+       while let "rr < 33000"; do
+               if let "rr % 2000 == 0"; then
+                       echo "$rr"
+               fi
+               mkdir $DIR/4a1 || error
+               rm -rf $DIR/4a1
+               let "rr = rr + 1"
+       done
+}
+
+## this test is very time-consuming, don't run it by default
+#run_test 4a " FIDS/ nlink overflow test  ============================="
+
+
 TMPDIR=$OLDTMPDIR
 TMP=$OLDTMP
 HOME=$OLDHOME