Whamcloud - gitweb
For the patchless client, LNET needs to come from it's own branch too.
[fs/lustre-release.git] / lustre / tests / test-framework.sh
index c0f8ccd..c3bf14b 100644 (file)
@@ -38,7 +38,13 @@ init_test_env() {
     export LMC=${LMC:-"lmc"}
     export LCTL=${LCTL:-"$LUSTRE/utils/lctl"}
     export CHECKSTAT="${CHECKSTAT:-checkstat} "
-    export FSYTPE=${FSTYPE:-"ext3"}
+    DEF_FSTYPE=`test "x$(uname -r | grep -o '2.6')" = "x2.6" && echo "ldiskfs" || echo "ext3"`
+    export 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}
+
+    export SECURITY=${SECURITY:-"null"}
 
     # Paths on remote nodes, if different 
     export RLUSTRE=${RLUSTRE:-$LUSTRE}
@@ -63,14 +69,16 @@ init_test_env() {
 #    echo "CONFIG=`canonical_path $CONFIG`"  > $LUSTRE/tests/CONFIG
 }
 
+. krb5_env.sh
+
 # Facet functions
 start() {
     facet=$1
     shift
     active=`facet_active $facet`
-    do_facet $facet $LCONF --select ${facet}_svc=${active}_facet \
+    do_facet $facet $LCONF --select ${facet}_svc=${active}_facet -v \
         --node ${active}_facet  --ptldebug $PTLDEBUG --subsystem $SUBSYSTEM \
-        $@ $XMLCONFIG
+        --mds_sec $SECURITY $@ $XMLCONFIG
 }
 
 stop() {
@@ -89,11 +97,13 @@ zconf_mount() {
     do_node $client mkdir $mnt 2> /dev/null || :
 
     if [ -x /sbin/mount.lustre ] ; then
-       do_node $client mount -t lustre -o nettype=$NETTYPE `facet_active_host mds1`:/mds1_svc/client_facet $mnt || return 1
+       do_node $client mount -t lustre -o mds_sec=$SECURITY,nettype=$NETTYPE \
+                `facet_active_host mds1`:/mds1_svc/client_facet $mnt || return 2
     else
        # this is so cheating
        do_node $client $LCONF --nosetup --node client_facet $XMLCONFIG  > /dev/null || return 2
-       do_node $client $LLMOUNT `facet_active_host mds1`:/mds1_svc/client_facet $mnt -o nettype=$NETTYPE|| return 4
+       do_node $client $LLMOUNT `facet_active_host mds1`:/mds1_svc/client_facet $mnt \
+               -o mds_sec=$SECURITY,nettype=$NETTYPE|| return 4
     fi
 
     [ -d /r ] && $LCTL modules > /r/tmp/ogdb-`hostname`
@@ -169,6 +179,15 @@ replay_barrier() {
     $LCTL mark "REPLAY BARRIER"
 }
 
+replay_barrier_nodf() {
+    local facet=$1
+    do_facet $facet sync
+    do_facet $facet $LCTL --device %${facet}_svc readonly
+    do_facet $facet $LCTL --device %${facet}_svc notransno
+    do_facet $facet $LCTL mark "REPLAY BARRIER"
+    $LCTL mark "REPLAY BARRIER"
+}
+
 mds_evict_client() {
     UUID=`cat /proc/fs/lustre/mdc/*_MNT_*/uuid`
     do_facet mds "echo $UUID > /proc/fs/lustre/mds/mds1_svc/evict_client"
@@ -180,6 +199,15 @@ fail() {
     df $MOUNT || error "post-failover df: $?"
 }
 
+fail_drop() {
+    local facet=$1
+    local failcode=$2
+    facet_failover $facet
+    do_facet mds "echo $failcode > /proc/sys/lustre/fail_loc"
+    df $MOUNT || error "post-failover df: $?"
+    do_facet mds "echo 0 > /proc/sys/lustre/fail_loc"
+}
+
 fail_abort() {
     local facet=$1
     stop $facet --force --failover --nomod
@@ -289,7 +317,7 @@ do_node() {
        echo "CMD: $HOST $@"
        $PDSH $HOST $LCTL mark "$@" > /dev/null 2>&1 || :
     fi
-    $PDSH $HOST "(PATH=\$PATH:$RLUSTRE/utils:$RLUSTRE/tests; cd $RPWD; sh -c \"$@\")"
+    $PDSH $HOST "(PATH=$RLUSTRE/utils:$RLUSTRE/tests:/usr/sbin:/sbin:\$PATH; cd $RPWD; sh -c \"$@\")"
 }
 
 mds_list() {
@@ -326,14 +354,14 @@ add_mds() {
     shift
     rm -f ${facet}active
     add_facet $facet
-    do_lmc --add mds --node ${facet}_facet --mds ${facet}_svc --fstype $FSTYPE $*
+    do_lmc --add mds --node ${facet}_facet --mds ${facet}_svc --fstype $FSTYPE --backfstype $MDS_BACKFSTYPE $*
 }
 
 add_mdsfailover() {
     facet=$1
     shift
     add_facet ${facet}failover  --lustre_upcall $UPCALL
-    do_lmc --add mds  --node ${facet}failover_facet --mds ${facet}_svc --fstype $FSTYPE $*
+    do_lmc --add mds  --node ${facet}failover_facet --mds ${facet}_svc --fstype $FSTYPE --backfstype $MDS_BACKFSTYPE $*
 }
 
 add_ost() {
@@ -341,7 +369,7 @@ add_ost() {
     shift
     rm -f ${facet}active
     add_facet $facet
-    do_lmc --add ost --node ${facet}_facet --ost ${facet}_svc --fstype $FSTYPE $*
+    do_lmc --add ost --node ${facet}_facet --ost ${facet}_svc --fstype $FSTYPE --backfstype $OST_BACKFSTYPE $*
 }
 
 del_ost() {
@@ -349,6 +377,41 @@ del_ost() {
     shift
     do_lmc --delete ost --node ${facet}_facet --ost ${facet}_svc $*
 }
+start_gks() {
+    facet=$1
+    shift
+    rm -f ${facet}active
+    add_facet $facet
+    do_facet $facet $LCONF --node ${facet}_facet  --ptldebug $PTLDEBUG $* $XMLCONFIG 
+}
+stop_gks() {
+    facet=$1
+    shift
+    do_facet $facet $LCONF --node ${facet}_facet  --cleanup $* $XMLCONFIG 
+}
+
+add_gks() {
+    facet=$1
+    shift
+    rm -f ${facet}active
+    add_facet $facet
+    do_lmc --add gks --gks ${facet}_svc --node ${facet}_facet $*
+}
+add_cmobd() {
+    facet=$1
+    cache_facet=$2
+    master_facet=$3
+    shift; shift; shift
+    do_lmc --add cmobd --node mds1_facet --cmobd ${facet}_svc --cache_obd ${cache_facet} --master_obd ${master_facet}  
+}
+
+add_cobd() {
+    facet=$1
+    client_facet=$2
+    master_facet=$3
+    shift; shift; shift
+    do_lmc --add cobd --node mds1_facet --cmobd ${facet}_svc --cache_obd ${cache_facet} --master_obd ${master_facet}  
+}
 
 deactivate_ost() {
     facet=$1
@@ -360,7 +423,7 @@ add_ostfailover() {
     facet=$1
     shift
     add_facet ${facet}failover
-    do_lmc --add ost --failover --node ${facet}failover_facet --ost ${facet}_svc --fstype $FSTYPE $*
+    do_lmc --add ost --failover --node ${facet}failover_facet --ost ${facet}_svc --fstype $FSTYPE --backfstype $OST_BACKFSTYPE $*
 }
 
 add_lov() {
@@ -377,6 +440,14 @@ add_lov_to_lmv() {
     do_lmc --add lov --lmv $lmv --lov $lov $*
 }
 
+add_lov_to_cache_master_lmv() {
+    lov=$1
+    cache_lmv=$2
+    master_lmv=$3
+    shift; shift; shift
+    do_lmc --add lov --cachelmv $cache_lmv --masterlmv $master_lmv --lov $lov $*
+}
+
 add_lmv() {
     lmv=$1
     shift;
@@ -388,7 +459,7 @@ add_client() {
     mds=$2
     shift; shift
     add_facet $facet --lustre_upcall $UPCALL
-    do_lmc --add mtpt --node ${facet}_facet --mds ${mds}_svc $*
+    do_lmc --add mtpt --node ${facet}_facet --clientoptions async --mds ${mds}_svc $*
 }
 
 config_commit() {
@@ -535,9 +606,11 @@ error() {
 }
 
 build_test_filter() {
+        [ "$ONLY" ] && log "only running $ONLY"
         for O in $ONLY; do
             eval ONLY_${O}=true
         done
+        [ "$EXCEPT$ALWAYS_EXCEPT" ] && log "skipping $EXCEPT $ALWAYS_EXCEPT"
         for E in $EXCEPT $ALWAYS_EXCEPT; do
             eval EXCEPT_${E}=true
         done
@@ -596,6 +669,10 @@ log() {
        lctl mark "$*" 2> /dev/null || true
 }
 
+pass() {
+       echo PASS $@
+}
+
 run_one() {
     testnum=$1
     message=$2
@@ -605,8 +682,10 @@ run_one() {
     # Pretty tests run faster.
     equals_msg $testnum: $message
 
-    log "== test $1: $2"
+    BEFORE=`date +%s`
+    log "== test $testnum: $message ============ `date +%H:%M:%S` ($BEFORE)"
     test_${testnum} || error "test_$testnum failed with $?"
+    pass "($((`date +%s` - $BEFORE))s)"
 }
 
 canonical_path() {