Whamcloud - gitweb
LU-2430 mdd: add lfs mv to migrate inode.
[fs/lustre-release.git] / lustre / tests / racer / racer.sh
1 #!/bin/bash
2 #set -x
3
4 MAX_FILES=${MAX_FILES:-20}
5 DIR=${DIR:-$1}
6 DIR=${DIR:-"/mnt/lustre/racer"}
7 DURATION=${DURATION:-$((60*5))}
8 MDSCOUNT=${MDSCOUNT:-1}
9
10 NUM_THREADS=${NUM_THREADS:-$2}
11 NUM_THREADS=${NUM_THREADS:-3}
12
13 mkdir -p $DIR
14
15 RACER_PROGS="file_create dir_create file_rm file_rename file_link file_symlink \
16 file_list file_concat file_exec"
17
18 if [ $MDSCOUNT -gt 1 ]; then
19         RACER_PROGS="${RACER_PROGS} dir_remote dir_migrate"
20 fi
21
22 racer_cleanup()
23 {
24         echo "racer cleanup"
25         for P in $RACER_PROGS; do
26                 killall $P.sh
27         done
28         trap 0
29
30         local TOT_WAIT=0
31         local MAX_WAIT=$DURATION
32         local SHORT_WAIT=5
33
34         local rc
35         while [[ $TOT_WAIT -le $MAX_WAIT ]]; do
36                 rc=0
37                 echo sleeping $SHORT_WAIT sec ...
38                 sleep $SHORT_WAIT
39                 # this only checks whether processes exist
40                 for P in $RACER_PROGS; do
41                         killall -0 $P.sh
42                         [[ $? -eq 0 ]] && (( rc+=1 ))
43                 done
44                 if [[ $rc -eq 0 ]]; then
45                         echo there should be NO racer processes:
46                         ps aux | grep -E "${RACER_PROGS// /|}"
47                         return 0
48                 fi
49                 echo -n "Waited $(( TOT_WAIT + SHORT_WAIT)), rc=$rc "
50                 (( SHORT_WAIT+=SHORT_WAIT ))
51                 (( TOT_WAIT+=SHORT_WAIT ))
52         done
53         ps aux | grep -E "${RACER_PROGS// /|}"
54         return 1
55 }
56
57 RC=0
58
59 echo "Running $0 for $DURATION seconds. CTRL-C to exit"
60 trap "
61         echo \"Cleaning up\" 
62         racer_cleanup
63         exit 0
64 " INT TERM
65
66 cd `dirname $0`
67 for N in `seq 1 $NUM_THREADS`; do
68         for P in $RACER_PROGS; do
69                 ./$P.sh $DIR $MAX_FILES &
70         done
71 done
72
73 sleep $DURATION
74 racer_cleanup || RC=$?
75
76 # Check our to see whether our test DIR is still available.
77 df $DIR
78 (( RC+=$? ))
79 if [ $RC -eq 0 ]; then
80     echo "We survived $0 for $DURATION seconds."
81 fi
82 exit $RC