X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fauster;h=d8570cc26d1180e840dd1b9985b3ef0fc933de1b;hb=a8347b4796303fb50b2b34f53d0b172bad94583e;hp=877e35e65044d8942068e670033b2389f62f40b4;hpb=0a79b541ad736bb296ea051e58b667c6195731a1;p=fs%2Flustre-release.git diff --git a/lustre/tests/auster b/lustre/tests/auster index 877e35e..d8570cc 100755 --- a/lustre/tests/auster +++ b/lustre/tests/auster @@ -11,16 +11,18 @@ set -e export TF_FAIL=/tmp/tf.fail +export TF_SKIP=/tmp/tf.skip usage() { less -F <.sh) -g GROUP Test group file (Overrides tests listed on command line) + -S TESTSUITE First test suite to run allows for restarts -i N Repeat tests N times (default 1). A new directory will be created under LOGDIR for each iteration. -k Don't stop when subtests fail @@ -64,15 +66,16 @@ 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:g:i:rRslhv" opt +while getopts "c:d:D:nkf:S:g:i:rRslhv" opt do case "$opt" in c) CONFIG=$OPTARG;; d) test_logs_dir=$OPTARG/$(date +%Y-%m-%d)/$(date +%H%M%S);; D) test_logs_dir=$OPTARG;; g) test_group_file=$OPTARG;; + S) FIRST_SUITE=$OPTARG;; k) export FAIL_ON_ERROR=false;; n) dry_run=:;; v) verbose=:;; @@ -80,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 @@ -132,7 +135,7 @@ setup_if_needed() { auster_cleanup=false local MOUNTED=$(mounted_lustre_filesystems) - if $(echo $MOUNTED | grep -w -q $MOUNT); then + if $(echo $MOUNTED' ' | grep -w -q $MOUNT' '); then check_config_clients $MOUNT # init_facets_vars # init_param_vars @@ -144,7 +147,7 @@ setup_if_needed() { setupall MOUNTED=$(mounted_lustre_filesystems) - if ! $(echo $MOUNTED | grep -w -q $MOUNT); then + if ! $(echo $MOUNTED' ' | grep -w -q $MOUNT' '); then echo "Lustre is not mounted after setup! " exit 1 fi @@ -190,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() { @@ -249,6 +256,7 @@ run_suites() { while ((n < repeat_count)); do local RC=0 local logdir=${test_logs_dir} + local first_suite=$FIRST_SUITE ((repeat_count > 1)) && logdir="$logdir/$n" reset_logging $logdir set -- "${argv[@]}" @@ -285,9 +293,12 @@ run_suites() { esac shift done - echo "running: $suite $opts" - run_suite_logged $suite || RC=$? - echo $suite returned $RC + if [ "x"$first_suite == "x" ] || [ $first_suite == $suite ]; then # If first_suite not set or this is the first suite + echo "running: $suite $opts" + run_suite_logged $suite || RC=$? + unset first_suite + echo $suite returned $RC + fi done if $upload_logs; then $upload_script $LOGDIR @@ -313,8 +324,8 @@ fi export NAME MOUNT START CLEAN . ${CONFIG:-$LUSTRE/tests/cfg/$NAME.sh} -assert_env mds_HOST MDS_MKFS_OPTS -assert_env ost_HOST OST_MKFS_OPTS OSTCOUNT +assert_env mds_HOST +assert_env ost_HOST OSTCOUNT assert_env FSNAME MOUNT MOUNT2 echo "Started at `date`"