X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Ftests%2Fracer%2Fracer.sh;h=efd3bcd757b49649019c4c7c596d542f8e6cbe76;hp=1274d026b37ca492f232f6ac3d5e676190920848;hb=dc64eb8e2f3e8e9abbaab2762babcdd5c8446c4c;hpb=e296c2d9f5d8ff8a7efdcef75bc3e8d379307440 diff --git a/lustre/tests/racer/racer.sh b/lustre/tests/racer/racer.sh index 1274d02..efd3bcd 100755 --- a/lustre/tests/racer/racer.sh +++ b/lustre/tests/racer/racer.sh @@ -1,4 +1,5 @@ #!/bin/bash +#set -x MAX_FILES=${MAX_FILES:-20} DIR=${DIR:-$1} @@ -10,23 +11,52 @@ NUM_THREADS=${NUM_THREADS:-3} mkdir -p $DIR -RACER_PROGS="file_create dir_create file_rm file_rename file_link file_symlink +RACER_PROGS="file_create dir_create file_rm file_rename file_link file_symlink \ file_list file_concat" racer_cleanup() { + echo "racer cleanup" for P in $RACER_PROGS; do killall $P.sh done trap 0 + + local TOT_WAIT=0 + local MAX_WAIT=$DURATION + local SHORT_WAIT=5 + + local rc + while [[ $TOT_WAIT -le $MAX_WAIT ]]; do + rc=0 + echo sleeping $SHORT_WAIT sec ... + sleep $SHORT_WAIT + # this only checks whether processes exist + for P in $RACER_PROGS; do + killall -0 $P.sh + [[ $? -eq 0 ]] && (( rc+=1 )) + done + if [[ $rc -eq 0 ]]; then + echo there should be NO racer processes: + ps aux | grep -E "${RACER_PROGS// /|}" + return 0 + fi + echo -n "Waited $(( TOT_WAIT + SHORT_WAIT)), rc=$rc " + (( SHORT_WAIT+=SHORT_WAIT )) + (( TOT_WAIT+=SHORT_WAIT )) + done + ps aux | grep -E "${RACER_PROGS// /|}" + return 1 } +RC=0 + echo "Running $0 for $DURATION seconds. CTRL-C to exit" trap " echo \"Cleaning up\" racer_cleanup exit 0 -" 2 15 +" INT TERM cd `dirname $0` for N in `seq 1 $NUM_THREADS`; do @@ -36,11 +66,11 @@ for N in `seq 1 $NUM_THREADS`; do done sleep $DURATION -racer_cleanup +racer_cleanup || RC=$? # Check our to see whether our test DIR is still available. df $DIR -RC=$? +(( RC+=$? )) if [ $RC -eq 0 ]; then echo "We survived $0 for $DURATION seconds." fi