Whamcloud - gitweb
LU-4060 test: skip sanityn.sh test_74 on older than 2.4.93 MDS
[fs/lustre-release.git] / lustre / tests / mdsrate-lookup-10dirs.sh
index b139a64..6dd5b11 100644 (file)
@@ -18,7 +18,7 @@ assert_env CLIENTS MDSRATE SINGLECLIENT MPIRUN
 
 MACHINEFILE=${MACHINEFILE:-$TMP/$(basename $0 .sh).machines}
 # Do not use name [df][0-9]* to avoid cleanup by rm, bug 18045
-TESTDIR=$MOUNT/mdsrate
+BASEDIR=$MOUNT/mdsrate
 
 # Requirements
 NUM_DIRS=${NUM_DIRS:-10}
@@ -37,27 +37,27 @@ rm -f $LOG
 log "===== $0 ====== " 
 
 check_and_setup_lustre
-mkdir -p $TESTDIR
-chmod 0777 $TESTDIR
 
-IFree=$(inodes_available)
+mkdir -p $BASEDIR
+chmod 0777 $BASEDIR
+$LFS setstripe $BASEDIR -c 1
+get_stripe $BASEDIR
+
+IFree=$(($(mdsrate_inodes_available) - NUM_DIRS))
 if [ $IFree -lt $((NUM_FILES * NUM_DIRS)) ]; then
     NUM_FILES=$((IFree / NUM_DIRS))
 fi
 
 generate_machine_file $NODES_TO_USE $MACHINEFILE || error "can not generate machinefile"
 
-$LFS setstripe $TESTDIR -c 1
-get_stripe $TESTDIR
-
-DIRfmt="${TESTDIR}/t6-%d"
+DIRfmt="${BASEDIR}/lookup-%d"
 
 if [ -n "$NOCREATE" ]; then
     echo "NOCREATE=$NOCREATE  => no file creation."
 else
     # FIXME: does it make sense to add the possibility to unlink dirfmt to mdsrate?
     for i in $(seq 0 $NUM_DIRS); do
-        mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES $TESTDIR/t6-$i 'f%%d' --ignore
+        mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES $BASEDIR/lookup-$i 'f%%d' --ignore
     done
 
     log "===== $0 Test preparation: creating ${NUM_DIRS} dirs with ${NUM_FILES} files."
@@ -66,11 +66,13 @@ else
                         --ndirs ${NUM_DIRS} --dirfmt '${DIRfmt}'
                         --nfiles ${NUM_FILES} --filefmt 'f%%d'"
 
-    echo "+" ${COMMAND}
-    # For files creation we can use -np equal to NUM_DIRS 
-    # This is just a test preparation, does not matter how many threads we use for files creation;
-    # we just should be aware that NUM_DIRS is less than or equal to the number of threads np
-    mpi_run -np ${NUM_DIRS} -machinefile ${MACHINEFILE} ${COMMAND} 2>&1 
+       echo "+" ${COMMAND}
+       # For files creation we can use -np equal to NUM_DIRS
+       # This is just a test preparation, does not matter how many threads we
+       # use for files creation; we just should be aware that NUM_DIRS is less
+       # than or equal to the number of threads np
+       mpi_run -np ${NUM_DIRS} ${MACHINEFILE_OPTION} ${MACHINEFILE} \
+               ${COMMAND} 2>&1
 
     # No lookup if error occurs on file creation, abort.
     [ ${PIPESTATUS[0]} != 0 ] && error "mdsrate file creation failed, aborting"
@@ -84,9 +86,10 @@ COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --lookup --time ${TIME_PERIOD} ${SEED_OPTIO
 if [ -n "$NOSINGLE" ]; then
     echo "NO Test for lookups on a single client."
 else
-    log "===== $0 ### 1 NODE LOOKUPS ###"
-    echo "+" ${COMMAND}
-    mpi_run -np 1 -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+       log "===== $0 ### 1 NODE LOOKUPS ###"
+       echo "+" ${COMMAND}
+       mpi_run -np 1 ${MACHINEFILE_OPTION} ${MACHINEFILE} ${COMMAND} |
+               tee ${LOG}
 
     if [ ${PIPESTATUS[0]} != 0 ]; then
         [ -f $LOG ] && sed -e "s/^/log: /" $LOG
@@ -99,9 +102,10 @@ fi
 if [ -n "$NOMULTI" ]; then
     echo "NO test for lookups on multiple nodes."
 else
-    log "===== $0 ### ${NUM_CLIENTS} NODES LOOKUPS ###"
-    echo "+" ${COMMAND}
-    mpi_run -np ${NUM_CLIENTS} -machinefile ${MACHINEFILE} ${COMMAND} | tee ${LOG}
+       log "===== $0 ### ${NUM_CLIENTS} NODES LOOKUPS ###"
+       echo "+" ${COMMAND}
+       mpi_run -np ${NUM_CLIENTS} ${MACHINEFILE_OPTION} ${MACHINEFILE} \
+               ${COMMAND} | tee ${LOG}
 
     if [ ${PIPESTATUS[0]} != 0 ]; then
         [ -f $LOG ] && sed -e "s/^/log: /" $LOG
@@ -109,14 +113,14 @@ else
     fi
 fi
 
-equals_msg `basename $0`: test complete, cleaning up
+complete $SECONDS
 # FIXME: does it make sense to add the possibility to unlink dirfmt to mdsrate?
 for i in $(seq 0 $NUM_DIRS); do
-    mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES $TESTDIR/t6-$i 'f%%d' --ignore
-    rmdir $TESTDIR/t6-$i
+       mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES \
+               $BASEDIR/lookup-$i 'f%%d' --ignore
 done
 
-rmdir $TESTDIR || true
+rmdir $BASEDIR || true
 rm -f $MACHINEFILE
 check_and_cleanup_lustre
 #rm -f $LOG