diff --git a/lustre/tests/Makefile.am b/lustre/tests/Makefile.am index c246fbaf5f5c807e9da75a6252a9f8921dda83b4..10ed573c2d1af54c5565ab9181d135f1c7810f90 100644 --- a/lustre/tests/Makefile.am +++ b/lustre/tests/Makefile.am @@ -11,6 +11,7 @@ noinst_SCRIPTS += sanity.sh rundbench acceptance-small.sh compile.sh noinst_SCRIPTS += conf-sanity.sh insanity.sh lfscktest.sh oos.sh oos2.sh noinst_SCRIPTS += llog-test.sh recovery-small.sh replay-dual.sh sanity-quota.sh noinst_SCRIPTS += replay-ost-single.sh replay-single.sh run-llog.sh sanityN.sh +noinst_SCRIPTS += runracer noinst_SCRIPTS += performance-sanity.sh mdsrate-create-small.sh noinst_SCRIPTS += mdsrate-create-large.sh mdsrate-lookup-1dir.sh noinst_SCRIPTS += mdsrate-stat-small.sh mdsrate-stat-large.sh diff --git a/lustre/tests/acceptance-small.sh b/lustre/tests/acceptance-small.sh index 5ac8776c1981e861a4d1e24ecafed19724cd6566..8b98001077d96793dd8fb4f35d541d7f3771a2c3 100755 --- a/lustre/tests/acceptance-small.sh +++ b/lustre/tests/acceptance-small.sh @@ -23,7 +23,7 @@ fi [ "$DEBUG_OFF" ] || DEBUG_OFF="eval lctl set_param debug=\"$DEBUG_LVL\"" [ "$DEBUG_ON" ] || DEBUG_ON="eval lctl set_param debug=0x33f0484" -export TESTSUITE_LIST="RUNTESTS SANITY DBENCH BONNIE IOZONE FSX SANITYN LFSCK LIBLUSTRE REPLAY_SINGLE CONF_SANITY RECOVERY_SMALL REPLAY_OST_SINGLE REPLAY_DUAL INSANITY SANITY_QUOTA PERFORMANCE_SANITY" +export TESTSUITE_LIST="RUNTESTS SANITY DBENCH BONNIE IOZONE FSX SANITYN LFSCK LIBLUSTRE RACER REPLAY_SINGLE CONF_SANITY RECOVERY_SMALL REPLAY_OST_SINGLE REPLAY_DUAL INSANITY SANITY_QUOTA PERFORMANCE_SANITY" if [ "$ACC_SM_ONLY" ]; then for O in $TESTSUITE_LIST; do @@ -321,7 +321,20 @@ for NAME in $CONFIGS; do LIBLUSTRE="done" fi - $CLEANUP + [ "$RACER" != "no" ] && [ -n "$CLIENTS" -a "$PDSH" = "no_dsh" ] && log "Remote client with no_dsh" && RACER=no + if [ "$RACER" != "no" ]; then + title racer + setup_if_needed + DURATION=${DURATION:-900} + [ "$SLOW" = "no" ] && DURATION=300 + RACERCLIENTS=$HOSTNAME + [ ! -z ${CLIENTS} ] && RACERCLIENTS=$CLIENTS + log "racer on clients: $RACERCLIENTS DURATION=$DURATION" + CLIENTS=${RACERCLIENTS} DURATION=$DURATION bash runracer + $CLEANUP + $SETUP + RACER="done" + fi done [ "$REPLAY_SINGLE" != "no" ] && skip_remmds replay-single && REPLAY_SINGLE=no && MSKIPPED=1 diff --git a/lustre/tests/racer/racer.sh b/lustre/tests/racer/racer.sh index c1f8b9970fc683964adc1be2547d446bb0c3f205..645e349e63417b7ec27c59f6bf458bbe87e8d537 100755 --- a/lustre/tests/racer/racer.sh +++ b/lustre/tests/racer/racer.sh @@ -3,16 +3,12 @@ MAX_FILES=${MAX_FILES:-20} DIR=${DIR:-$1} DIR=${DIR:-"/mnt/lustre/racer"} -if ! [ -d "$DIR" -o -d "`basename $DIR`" ]; then - echo "$0: '$DIR' and '`basename $DIR`' are not directories" - exit 1 -fi DURATION=${DURATION:-$((60*5))} NUM_THREADS=${NUM_THREADS:-$2} NUM_THREADS=${NUM_THREADS:-3} -[ -e $DIR ] || mkdir $DIR +mkdir -p $DIR racer_cleanup() { @@ -32,7 +28,7 @@ trap " echo \"Cleaning up\" racer_cleanup exit 0 -" 2 +" 2 15 cd `dirname $0` for N in `seq 1 $NUM_THREADS`; do diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index dcb4629fa06e71f38938c13bd394a5477907fb8a..556b0484c98a5b935814bd4c385fc95fa3b4f38b 100644 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -92,6 +92,9 @@ init_test_env() { fi export MDSRATE=${MDSRATE:-"$LUSTRE/tests/mdsrate"} [ ! -f "$MDSRATE" ] && export MDSRATE=$(which mdsrate 2> /dev/null) + if ! echo $PATH | grep -q $LUSTRE/test/racer; then + export PATH=$PATH:$LUSTRE/tests/racer + fi export LCTL=${LCTL:-"$LUSTRE/utils/lctl"} export LFS=${LFS:-"$LUSTRE/utils/lfs"} [ ! -f "$LCTL" ] && export LCTL=$(which lctl) @@ -551,8 +554,8 @@ wait_remote_prog () { [ "$PDSH" = "no_dsh" ] && return 0 while [ $WAIT -lt $2 ]; do - running=$(ps uax | grep "$PDSH.*$prog.*$MOUNT" | grep -v grep) - [ -z "${running}" ] && return 0 + running=$(ps uax | grep "$PDSH.*$prog.*$MOUNT" | grep -v grep) || true + [ -z "${running}" ] && return 0 || true echo "waited $WAIT for: " echo "$running" [ $INTERVAL -lt 60 ] && INTERVAL=$((INTERVAL + INTERVAL))