Whamcloud - gitweb
LU-4304 tests: fix auster to detect "SKIP" test status
[fs/lustre-release.git] / lustre / tests / auster
index 07e6f43..d8570cc 100755 (executable)
 set -e
 
 export TF_FAIL=/tmp/tf.fail
+export TF_SKIP=/tmp/tf.skip
 
 usage() {
     less -F <<EOF
-Usage ${0##*/} [options]  suite [suite optoins] [suite [suite options]]
+Usage ${0##*/} [options]  suite [suite options] [suite [suite options]]
 Run Lustre regression tests suites.
       -c CONFIG Test environment config file
       -d LOGDIR Top level directory for logs
@@ -65,7 +66,7 @@ repeat_count=1
 upload_logs=false
 reformat=false
 test_logs_dir=/tmp/test_logs/$(date +%Y-%m-%d)/$(date +%H%M%S)
-export SLOW=no
+export ${SLOW:=no}
 export ${NAME:=local}
 while getopts "c:d:D:nkf:S:g:i:rRslhv" opt
 do
@@ -82,7 +83,7 @@ do
         f) NAME=$OPTARG;;
         R) do_reset=:;;
         r) reformat=:;;
-        s) SLOW=yes;;
+       s) export SLOW=yes;;
         l) upload_logs=true;;
         h|\?) usage;;
     esac
@@ -192,24 +193,28 @@ doit() {
 
 
 run_suite() {
-    suite_name=$1
-    suite_script=$2
-    title $suite_name
-    log_test $suite_name
-
-    rm -f $TF_FAIL
-    local start_ts=$(date +%s)
-    doit bash $suite_script
-    rc=$?
-    duration=$(($(date +%s) - $start_ts))
-    if [ -f $TF_FAIL -o $rc -ne 0 ]; then
-        status="FAIL"
-    else
-        status="PASS"
-    fi
-    log_test_status $duration $status
-
-    reset_lustre
+       local suite_name=$1
+       local suite_script=$2
+       title $suite_name
+       log_test $suite_name
+
+       rm -f $TF_FAIL
+       touch $TF_SKIP
+       local start_ts=$(date +%s)
+       doit bash $suite_script
+       local rc=$?
+       local duration=$(($(date +%s) - $start_ts))
+
+       local status="PASS"
+       if [[ $rc -ne 0 || -f $TF_FAIL ]]; then
+               status="FAIL"
+       elif [[ -f $TF_SKIP ]]; then
+               status="SKIP"
+       fi
+       log_test_status $duration $status
+       [[ ! -f $TF_SKIP ]] || rm -f $TF_SKIP
+
+       reset_lustre
 }
 
 run_suite_logged() {