5 MAX_FILES=${MAX_FILES:-20}
6 DURATION=${DURATION:-$((60*5))}
8 NUM_THREADS=${NUM_THREADS:-$2}
9 NUM_THREADS=${NUM_THREADS:-3}
11 RACER_MAX_CLEANUP_WAIT=${RACER_MAX_CLEANUP_WAIT:-$DURATION}
15 RACER_PROGS=${RACER_PROGS:-"file_create dir_create file_rm file_rename \
16 file_link file_symlink file_list file_concat file_exec file_chown \
17 file_chmod file_mknod file_truncate file_delxattr file_getxattr \
20 # allow e.g. RACER_EXTRA=dir_create:5,file_link:10 to launch extra tasks
21 for PROG in ${RACER_EXTRA//,/ }; do
24 for ((i = 0; i < count; i++)); do
25 RACER_PROGS+=" ${prog[0]}"
29 if $RACER_ENABLE_REMOTE_DIRS || $RACER_ENABLE_STRIPED_DIRS; then
30 RACER_PROGS+=' dir_remote'
33 if $RACER_ENABLE_MIGRATION; then
34 RACER_PROGS+=' dir_migrate'
40 for P in $RACER_PROGS; do
49 while [[ $TOT_WAIT -le $RACER_MAX_CLEANUP_WAIT ]]; do
51 echo sleeping $SHORT_WAIT sec ...
53 # this only checks whether processes exist
54 for P in $RACER_PROGS; do
56 [[ $? -eq 0 ]] && (( rc+=1 ))
59 # Kill dd processes to speedup cleanup
60 local pids=$(ps uax | grep "$DIR" | grep dd | grep -v grep |
66 if [[ $rc -eq 0 ]]; then
67 echo there should be NO racer processes:
68 ps uww -C "${RACER_PROGS// /.sh,}.sh"
71 (( TOT_WAIT+=SHORT_WAIT ))
72 echo -n "Waited $TOT_WAIT, rc=$rc "
73 (( SHORT_WAIT+=SHORT_WAIT ))
75 ps uww -C "${RACER_PROGS// /.sh,}.sh"
81 echo "Running $0 for $DURATION seconds. CTRL-C to exit"
89 for N in `seq 1 $NUM_THREADS`; do
90 for P in $RACER_PROGS; do
91 ./$P.sh $DIR $MAX_FILES &
96 racer_cleanup || RC=$?
98 # Check our to see whether our test DIR is still available.
101 [ $RC -eq 0 ] && echo "We survived $0 for $DURATION seconds."