Whamcloud - gitweb
LU-13773 tests: subscript failure propagation
[fs/lustre-release.git] / lustre / tests / functions.sh
index 4df176a..8d010df 100644 (file)
@@ -333,7 +333,7 @@ run_compilebench() {
        # for new "test_foo" functions names
        # local testdir=$DIR/$tdir
        local testdir=$dir/d0.compilebench.$$
-       mkdir -p $testdir
+       test_mkdir -p $testdir
        setstripe_getstripe $testdir $cbench_STRIPEPARAMS
 
     local savePWD=$PWD
@@ -367,7 +367,7 @@ run_metabench() {
        print_opts METABENCH clients mbench_NFILES mbench_THREADS
 
        local testdir=$dir/d0.metabench
-       mkdir -p $testdir
+       test_mkdir -p $testdir
        setstripe_getstripe $testdir $mbench_STRIPEPARAMS
 
        # mpi_run uses mpiuser
@@ -417,7 +417,7 @@ run_simul() {
        print_opts SIMUL clients simul_REP simul_THREADS
 
        local testdir=$DIR/d0.simul
-       mkdir -p $testdir
+       test_mkdir $testdir
        setstripe_getstripe $testdir $simul_STRIPEPARAMS
 
        # mpi_run uses mpiuser
@@ -460,17 +460,33 @@ run_mdtest() {
        local mdtest_custom_params=${mdtest_custom_params:-""}
        local type=${1:-"ssf"}
 
+       local mdtest_Nmntp=${mdtest_Nmntp:-1}
+
+       if [ $type = "ssf" ] && [ $mdtest_Nmntp -ne 1 ]; then
+               skip "shared directory mode is not compatible" \
+                       "with multiple directory paths"
+       fi
+
        # FIXME
        # Need space estimation here.
 
        print_opts MDTEST mdtest_iteration mdtest_THREADS mdtest_nFiles
 
        local testdir=$DIR/d0.mdtest
-       mkdir -p $testdir
+       test_mkdir $testdir
        setstripe_getstripe $testdir $mdtest_STRIPEPARAMS
+       chmod 0777 $testdir
 
+       for ((i=1; i<mdtest_Nmntp; i++)); do
+               zconf_mount_clients $clients $MOUNT$i "$mntopts" ||
+                       error_exit "Failed $clients on $MOUNT$i"
+               local dir=$DIR$i/d0.mdtest$i
+               test_mkdir $dir
+               setstripe_getstripe $dir $mdtest_SETSTRIPEPARAMS
+               chmod 0777 $dir
+               testdir="$testdir@$dir"
+       done
        # mpi_run uses mpiuser
-       chmod 0777 $testdir
 
        # -i # : repeat each test # times
        # -d   : test dir
@@ -497,7 +513,13 @@ run_mdtest() {
     if [ $rc != 0 ] ; then
         error "mdtest failed! $rc"
     fi
-    rm -rf $testdir
+       rm -rf $testdir
+       for ((i=1; i<mdtest_Nmntp; i++)); do
+               local dir=$DIR$i/d0.mdtest$i
+               rm -rf $dir
+               zconf_umount_clients $clients $MOUNT$i ||
+                       error_exit "Failed umount $MOUNT$i on $clients"
+       done
 }
 
 run_connectathon() {
@@ -520,7 +542,7 @@ run_connectathon() {
        echo "free space = $space KB"
 
        local testdir=$dir/d0.connectathon
-       mkdir -p $testdir
+       test_mkdir -p $testdir
        setstripe_getstripe $testdir $cnt_STRIPEPARAMS
 
        local savePWD=$PWD
@@ -621,7 +643,7 @@ run_ior() {
 
        print_opts IOR ior_THREADS ior_DURATION MACHINEFILE
 
-       mkdir -p $testdir
+       test_mkdir -p $testdir
 
        # mpi_run uses mpiuser
        chmod 0777 $testdir
@@ -689,7 +711,7 @@ run_mib() {
                MACHINEFILE
 
        local testdir=$DIR/d0.mib
-       mkdir -p $testdir
+       test_mkdir $testdir
        setstripe_getstripe $testdir $mib_STRIPEPARAMS
 
        # mpi_run uses mpiuser
@@ -738,7 +760,7 @@ run_cascading_rw() {
        print_opts CASC_RW clients casc_THREADS casc_REP MACHINEFILE
 
        local testdir=$DIR/d0.cascading_rw
-       mkdir -p $testdir
+       test_mkdir $testdir
        setstripe_getstripe $testdir $casc_STRIPEPARAMS
 
        # mpi_run uses mpiuser
@@ -779,7 +801,7 @@ run_write_append_truncate() {
 
        print_opts clients write_REP write_THREADS MACHINEFILE
 
-       mkdir -p $testdir
+       test_mkdir $testdir
        # mpi_run uses mpiuser
        setstripe_getstripe $testdir $write_STRIPEPARAMS
 
@@ -816,7 +838,7 @@ run_write_disjoint() {
        print_opts WRITE_DISJOINT clients wdisjoint_THREADS wdisjoint_REP \
                MACHINEFILE
        local testdir=$DIR/d0.write_disjoint
-       mkdir -p $testdir
+       test_mkdir $testdir
        setstripe_getstripe $testdir $wdisjoint_STRIPEPARAMS
 
        # mpi_run uses mpiuser
@@ -848,7 +870,7 @@ run_parallel_grouplock() {
        print_opts clients parallel_grouplock_MINTASKS MACHINEFILE
 
        local testdir=$DIR/d0.parallel_grouplock
-       mkdir -p $testdir
+       test_mkdir $testdir
        setstripe_getstripe $testdir $parallel_grouplock_STRIPEPARAMS
 
        # mpi_run uses mpiuser
@@ -917,7 +939,7 @@ run_statahead () {
        mdsrate_cleanup $((num_clients * 32)) $MACHINEFILE \
                $statahead_NUMFILES $testdir 'f%%d' --ignore
 
-       mkdir -p $testdir
+       test_mkdir $testdir
        setstripe_getstripe $testdir $statahead_STRIPEPARAMS
 
     # mpi_run uses mpiuser
@@ -1002,11 +1024,7 @@ run_rr_alloc() {
        local rr_alloc_MNTPTS=${rr_alloc_MNTPTS:-11}
        local total_MNTPTS=$((rr_alloc_MNTPTS * num_clients))
        local mntpt_root="${TMP}/rr_alloc_mntpt/lustre"
-       if [ $MDSCOUNT -lt 2 ]; then
-               [ -e $DIR/$tdir ] || mkdir -p $DIR/$tdir
-       else
-               [ -e $DIR/$tdir ] || $LFS mkdir -i 0 $DIR/$tdir
-       fi
+       test_mkdir $DIR/$tdir
        setstripe_getstripe $DIR/$tdir $rr_alloc_STRIPEPARAMS
 
        chmod 0777 $DIR/$tdir
@@ -1137,7 +1155,7 @@ run_fs_test() {
 
        print_opts FS_TEST clients fs_test_threads fs_test_objsize MACHINEFILE
 
-       mkdir -p $testdir
+       test_mkdir $testdir
        setstripe_getstripe $testdir $fs_test_STRIPEPARAMS
 
        # mpi_run uses mpiuser
@@ -1209,7 +1227,7 @@ run_fio() {
 
        [ x$FIO = x ] && skip_env "FIO not found"
 
-       mkdir -p $testdir
+       test_mkdir $testdir
        setstripe_getstripe $testdir $fio_STRIPEPARAMS
 
        # use fio job file if exists,
@@ -1279,7 +1297,7 @@ run_xdd() {
        print_opts XDD clients xdd_queuedepth xdd_blocksize xdd_reqsize \
                xdd_mbytes xdd_passes xdd_rwratio
 
-       mkdir -p $testdir
+       test_mkdir $testdir
        setstripe_getstripe $testdir $xdd_STRIPEPARAMS
 
        local files=""