Whamcloud - gitweb
LU-1538 tests: standardize test script init – failover
[fs/lustre-release.git] / lustre / tests / replay-single-lmv.sh
index 776ab38..63ec67a 100755 (executable)
@@ -1,90 +1,27 @@
-#!/bin/sh
+#!/bin/bash
 
 set -e
 
-#
-# This test needs to be run on the client
-#
-
-LUSTRE=${LUSTRE:-`dirname $0`/..}
+LUSTRE=${LUSTRE:-$(dirname $0)/..}
 . $LUSTRE/tests/test-framework.sh
-
 init_test_env $@
 
-. ${CONFIG:=$LUSTRE/tests/cfg/lmv.sh}
-
-# Skip these tests
-ALWAYS_EXCEPT=""
-
-
-gen_config() {
-    rm -f $XMLCONFIG
-
-    if [ "$MDSCOUNT" -gt 1 ]; then
-        add_lmv lmv1
-        for num in `seq $MDSCOUNT`; do
-            MDSDEV=$TMP/mds${num}-`hostname`
-            add_mds mds$num --dev $MDSDEV --size $MDSSIZE --lmv lmv1
-        done
-        add_lov_to_lmv lov1 lmv1 --stripe_sz $STRIPE_BYTES \
-           --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
-        add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE
-        add_ost ost2 --lov lov1 --dev ${OSTDEV}-2 --size $OSTSIZE
-        add_client client --lmv lmv1 --lov lov1 --path $MOUNT
-    else
-        add_mds mds1 --dev $MDSDEV --size $MDSSIZE
-        if [ ! -z "$mdsfailover_HOST" ]; then
-            add_mdsfailover mds --dev $MDSDEV --size $MDSSIZE
-        fi
-
-        add_lov lov1 mds1 --stripe_sz $STRIPE_BYTES \
-           --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
-        add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE
-        add_ost ost2 --lov lov1 --dev ${OSTDEV}-2 --size $OSTSIZE
-        add_client client --mds mds1_svc --lov lov1 --path $MOUNT
-    fi
-}
-
+# bug number for skipped test:
+ALWAYS_EXCEPT="REPLAY_SINGLE_LMV_EXCEPT "
 build_test_filter
 
-cleanup() {
-    # make sure we are using the primary MDS, so the config log will
-    # be able to clean up properly.
-    activemds=`facet_active mds`
-    if [ $activemds != "mds" ]; then
-        fail mds
-    fi
-    zconf_umount `hostname` $MOUNT
-    if [ "$MDSCOUNT" -gt 1 ]; then
-        for num in `seq $MDSCOUNT`; do
-            stop mds$num ${FORCE} $MDSLCONFARGS
-        done
-    else
-        stop mds ${FORCE} $MDSLCONFARGS
-    fi
-    stop ost2 ${FORCE} --dump cleanup.log
-    stop ost ${FORCE} --dump cleanup.log
-}
+SETUP=${SETUP:-"setup"}
+CLEANUP=${CLEANUP:-"stopall"}
 
 if [ "$ONLY" == "cleanup" ]; then
-    sysctl -w portals.debug=0 || true
-    cleanup
-    exit
+       lctl set_param debug=0 || true
+       $CLEANUP
+       exit 0
 fi
 
-SETUP=${SETUP:-"setup"}
-CLEANUP=${CLEANUP:-"cleanup"}
-
 setup() {
-    gen_config
-
-    start ost --reformat $OSTLCONFARGS 
-    start ost2 --reformat $OSTLCONFARGS 
-    [ "$DAEMONFILE" ] && $LCTL debug_daemon start $DAEMONFILE $DAEMONSIZE
-    start mds1 $MDSLCONFARGS --reformat
-    start mds2 $MDSLCONFARGS --reformat
-    start mds3 $MDSLCONFARGS --reformat
-    grep " $MOUNT " /proc/mounts || zconf_mount `hostname` $MOUNT
+       formatall
+       setupall
 }
 
 $SETUP
@@ -95,6 +32,12 @@ fi
 
 mkdir -p $DIR
 
+# LU-482 Avert LVM and VM inability to flush caches in pre .33 kernels
+if [ $LINUX_VERSION_CODE -lt $(version_code 2.6.33) ]; then
+    sync
+    do_facet $SINGLEMDS sync
+fi
+
 test_0() {
     replay_barrier mds1
     fail mds1
@@ -104,7 +47,7 @@ run_test 0 "empty replay"
 test_0b() {
     # this test attempts to trigger a race in the precreation code, 
     # and must run before any other objects are created on the filesystem
-    fail ost
+    fail ost1
     createmany -o $DIR/$tfile 20 || return 1
     unlinkmany $DIR/$tfile 20 || return 2
 }
@@ -143,7 +86,6 @@ test_2a() {
 }
 run_test 2a "unlink cross-node file (fail mds with name)"
 
-
 test_3a() {
     replay_barrier mds2
     mkdir $DIR/dir3a1
@@ -155,15 +97,15 @@ test_3a() {
 run_test 3a "mkdir cross-node dir (fail mds with inode)"
 
 test_3b() {
-    mkdir $DIR/dir13
     replay_barrier mds1
-    $CHECKSTAT -t dir $DIR/dir13 || return 1
-    rmdir $DIR/dir13
+    mkdir $DIR/dir3b1
+    $LCTL mark "FAILOVER mds1"
     fail mds1
-    stat $DIR/dir13
+    stat $DIR
+    $CHECKSTAT -t dir $DIR/dir3b1 || return 1
 }
-run_test 3b "mkdir cross-node dir (fail mds with name)"
+run_test 3b "mkdir cross-node dir (fail mds with inode)"
 
-equals_msg test complete, cleaning up
+complete $SECONDS
 $CLEANUP