2 # script which _must_ complete successfully (at minimum) before checkins to
3 # the CVS HEAD are allowed.
10 # This is the default set of tests to run.
11 DEFAULT_SUITES="runtests sanity sanity-benchmark sanityn lfsck liblustre
12 racer replay-single conf-sanity recovery-small
13 replay-ost-single replay-dual replay-vbr insanity sanity-quota
14 sanity-sec sanity-gss performance-sanity large-scale
15 recovery-mds-scale recovery-double-scale recovery-random-scale
16 parallel-scale lustre_rsync-test metadata-updates ost-pools
17 lnet-selftest mmp obdfilter-survey sgpdd-survey"
20 ACC_SM_ONLY="${ACC_SM_ONLY} $@"
23 [ "$SIZE" ] || SIZE=$((RAMKB * 2))
24 [ "$RSIZE" ] || RSIZE=512
25 [ "$UID" ] || UID=1000
26 [ "$MOUNT" ] || MOUNT=/mnt/lustre
27 [ "$MOUNT2" ] || MOUNT2=${MOUNT}2
28 [ "$TMP" ] || TMP=/tmp
29 [ "$COUNT" ] || COUNT=1000
30 [ "$DEBUG_LVL" ] || DEBUG_LVL=0
31 [ "$DEBUG_OFF" ] || DEBUG_OFF="eval lctl set_param debug=\"$DEBUG_LVL\""
32 [ "$DEBUG_ON" ] || DEBUG_ON="eval lctl set_param debug=0x33f0484"
34 export TF_FAIL=$TMP/tf.fail
36 if [ "$ACC_SM_ONLY" ]; then
37 for O in $DEFAULT_SUITES; do
38 O=$(echo $O | tr "-" "_" | tr "[:lower:]" "[:upper:]")
41 for O in $ACC_SM_ONLY; do
42 O=`echo ${O%.sh} | tr "-" "_"`
43 O=`echo $O | tr "[:lower:]" "[:upper:]"`
50 LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)}
51 . $LUSTRE/tests/test-framework.sh
55 # liblustre doesn't support GSS
58 export SANITY_GSS="no"
61 SETUP=${SETUP:-setupall}
62 FORMAT=${FORMAT:-formatall}
63 CLEANUP=${CLEANUP:-stopall}
66 nfs_client_mode && return
68 local MOUNTED=$(mounted_lustre_filesystems)
69 if $(echo $MOUNTED | grep -w -q $MOUNT); then
70 check_config_clients $MOUNT
76 echo "Lustre is not mounted, trying to do setup SETUP=$SETUP ... "
77 [ "$REFORMAT" ] && $FORMAT
80 MOUNTED=$(mounted_lustre_filesystems)
81 if ! $(echo $MOUNTED | grep -w -q $MOUNT); then
82 echo "Lustre is not mounted after setup! SETUP=$SETUP"
89 for dir in $(tr : " " <<< $PATH); do
90 if [ -e $dir/$target ]; then
91 echo "$dir/$target found in PATH"
99 # update titlebar if stdin is attaached to an xterm
100 if ${UPDATE_TITLEBAR:-false}; then
104 echo -ne "\033]2; acceptance-small: $* \007" >&0
109 log "-----============= acceptance-small: "$*" ============----- $(date)"
113 local suite_name=$(echo ${1%.sh} | tr "[:upper:]_" "[:lower:]-" )
114 local suite=$(echo ${suite_name} | tr "[:lower:]-" "[:upper:]_")
115 local suite_only=ONLY # Change to ${suite}_ONLY after fixing YALA
117 if is_sanity_benchmark ${suite_name}; then
118 suite_only=suite_name
119 suite_script=$LUSTRE/tests/sanity-benchmark.sh
120 elif [ -e $LUSTRE/tests/${suite_name}.sh ]; then
121 suite_script=$LUSTRE/tests/${suite_name}.sh
122 elif [ -e $LUSTRE/tests/$suite_name ]; then
123 suite_script=$LUSTRE/tests/$suite_name
124 elif find_in_path $suite_name; then
125 suite_script=${suite_name}
126 elif find_in_path ${suite_name}.sh; then
127 suite_script=${suite_name}.sh
129 echo "Can't find test script for $suite_name"
133 echo "$suite_script located."
134 if [[ ${!suite} != no ]]; then
138 local start_ts=$(date +%s)
142 bash $suite_script ${!suite_only}
144 duration=$(($(date +%s) - $start_ts))
145 if [ -f $TF_FAIL -o $rc -ne 0 ]; then
150 echo "Script: $status"
151 log_test_status $duration $status
154 [ x$suite = xSGPDD_SURVEY ] || $SETUP
158 echo "Skipping $suite_name"
168 export NAME MOUNT START CLEAN
169 . $LUSTRE/tests/cfg/$NAME.sh
171 assert_env mds_HOST MDS_MKFS_OPTS
172 assert_env ost_HOST OST_MKFS_OPTS OSTCOUNT
173 assert_env FSNAME MOUNT MOUNT2
178 run_suites ${ACC_SM_ONLY:-$DEFAULT_SUITES}
182 echo "Finished at `date` in $((`date +%s` - $STARTTIME))s"
184 [ "$MSKIPPED" = 1 ] && log "FAIL: remote MDS tests skipped" && RC=1
185 [ "$OSKIPPED" = 1 ] && log "FAIL: remote OST tests skipped" && RC=1
186 echo "$0: completed with rc $RC" && exit $RC