X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Frunracer;h=083a56e5c44b0d0912a536c98e58d6c78b9042e0;hb=87a333f85f29fe989997638ee2b7fd5c3a53608b;hp=b67a819226ae52d2043ca7358f4b48aa44450bb1;hpb=6684e0f1aebdcc09ec19c6f3b18d9f19defb4001;p=fs%2Flustre-release.git diff --git a/lustre/tests/runracer b/lustre/tests/runracer index b67a819..083a56e 100644 --- a/lustre/tests/runracer +++ b/lustre/tests/runracer @@ -2,16 +2,18 @@ #set -vx set -e +ONLY=${ONLY:-"$*"} LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)} . $LUSTRE/tests/test-framework.sh init_test_env $@ . ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} +init_logging -racer=`which racer.sh` +racer=`which racer.sh 2> /dev/null` +echo racer: $racer [ -z "$racer" ] && echo racer is not installed && exit 1 CLIENTS=${CLIENTS:-$HOSTNAME} -RACERDIRS=$@ RACERDIRS=${RACERDIRS:-$DIR} echo RACERDIRS=$RACERDIRS for d in ${RACERDIRS}; do @@ -21,6 +23,7 @@ for d in ${RACERDIRS}; do done DURATION=${DURATION:-120} +PIDFILE=$TMP/racer.$$ assert_env CLIENTS @@ -105,7 +108,7 @@ racer_cleanup () { done else echo "Racer completed before DURATION=$DURATION expired. Cleaning up..." - kill $TIMERPID + kill $TIMERPID || true for dir in $RDIRS; do do_racer_cleanup $dir done @@ -114,36 +117,47 @@ racer_cleanup () { racer_timeout () { timeout="timeout" + RACERPID=$(cat $PIDFILE) + rm -f $PIDFILE racer_cleanup echo "$0: completed $RC" - exit $RC + return $RC } -# run racer -log "Start racer on clients: $CLIENTS DURATION=$DURATION" -RC=0 - +build_test_filter +check_and_setup_lustre trap racer_timeout ALRM -timer_on $((DURATION + 5)) +# run racer +test_1() { + RC=0 + + timer_on $((DURATION + 5)) + + RACERPID="" + for rdir in $RDIRS; do + do_nodes $CLIENTS "DURATION=$DURATION $racer $rdir $NUM_RACER_THREADS" & + pid=$! + RACERPID="$RACERPID $pid" + done + + echo RACERPID=$RACERPID + echo $RACERPID > $PIDFILE + for rpid in $RACERPID; do + wait $rpid + rc=$? + echo "rpid=$rpid rc=$rc" + if [ $rc != 0 ]; then + RC=$((RC + 1)) + fi + done -RACERPID="" -for rdir in $RDIRS; do - do_nodes $CLIENTS "DURATION=$DURATION $racer $rdir $NUM_RACER_THREADS" & - pid=$! - RACERPID="$RACERPID $pid" -done + racer_cleanup -echo RACERPID=$RACERPID -for rpid in $RACERPID; do - wait $rpid - rc=$? - echo "rpid=$rpid rc=$rc" - if [ $rc != 0 ]; then - RC=$((RC + 1)) - fi -done + return $RC +} +run_test 1 "racer on clients: $CLIENTS DURATION=$DURATION" -racer_cleanup -echo "$0: completed $RC" -exit $RC +equals_msg `basename $0`: test complete, cleaning up +check_and_cleanup_lustre +[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true