X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Ftests%2Fauster;h=7e2d61cc6674c41a4fa5f27a2c2bcd7a6771ff58;hp=7cf7bd32c22e5b78336e10392a237e4707a858e5;hb=a50eaae974ee04364c9fbbb4625dd3d581a8c986;hpb=f8fd0958e05c443487ed55932a9711296c72b663 diff --git a/lustre/tests/auster b/lustre/tests/auster index 7cf7bd3..7e2d61c 100755 --- a/lustre/tests/auster +++ b/lustre/tests/auster @@ -11,10 +11,11 @@ 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 + -H Honor the EXCEPT and ALWAYS_EXCEPT list when --only is used -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 @@ -31,6 +33,8 @@ Run Lustre regression tests suites. -v Verbose mode -l Send logs to the Maloo database after run (can be done later by running maloo_upload.sh) + -L Script language of test suite. Default: bash + -N No setup. Do not setup Lustre prior to executing test suite. -h This help. Suite options @@ -52,10 +56,10 @@ the default "local" configuration. Run all tests in the regression group 5 times using large config. - auster -f large -g test-groups/regression -r 5 + auster -f large -g test-groups/regression -i 5 EOF - exit + exit } dry_run=false @@ -64,28 +68,34 @@ verbose=false repeat_count=1 upload_logs=false reformat=false +script_lang=bash test_logs_dir=/tmp/test_logs/$(date +%Y-%m-%d)/$(date +%H%M%S) +export HONOR_EXCEPT= +do_setup=true export ${SLOW:=no} export ${NAME:=local} -while getopts "c:d:D:nkf:S:g:i:rRslhv" opt +while getopts "c:d:D:nkf:S:g:Hi:rRslL:Nhv" 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=:;; - i) repeat_count=$OPTARG;; - f) NAME=$OPTARG;; - R) do_reset=:;; - r) reformat=:;; - s) SLOW=yes;; - l) upload_logs=true;; - h|\?) usage;; - esac + case "$opt" in + c) export 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=:;; + H) export HONOR_EXCEPT="y";; + i) repeat_count=$OPTARG;; + f) NAME=$OPTARG;; + R) do_reset=:;; + r) reformat=:;; + s) export SLOW=yes;; + l) upload_logs=true;; + L) script_lang=$OPTARG;; + N) do_setup=false;; + h|\?) usage;; + esac done # If a test_group_file is specified, then ignore rest of command line @@ -96,17 +106,6 @@ else shift $((OPTIND -1)) fi -# -# Various paramters for the tests scripts -# -#: ${SIZE:=$((RAMKB * 2))} -#: ${RSIZE:=512} -#: ${UID:=1000} -#: ${MOUNT=/mnt/lustre} -#: ${MOUNT2:=${MOUNT}2} -#: ${COUNT:=1000} -#: ${TMP:=/tmp} - reset_lustre() { if $do_reset; then stopall @@ -130,33 +129,34 @@ print_summary () { setup_if_needed() { - nfs_client_mode && return - auster_cleanup=false - - local MOUNTED=$(mounted_lustre_filesystems) - if $(echo $MOUNTED' ' | grep -w -q $MOUNT' '); then - check_config_clients $MOUNT - # init_facets_vars - # init_param_vars - return - fi - - echo "Lustre is not mounted, trying to do setup ... " - $reformat && formatall - setupall - - MOUNTED=$(mounted_lustre_filesystems) - if ! $(echo $MOUNTED' ' | grep -w -q $MOUNT' '); then - echo "Lustre is not mounted after setup! " - exit 1 - fi - auster_cleanup=true + ! ${do_setup} && return + nfs_client_mode && return + AUSTER_CLEANUP=false + + local MOUNTED=$(mounted_lustre_filesystems) + if $(echo $MOUNTED' ' | grep -w -q $MOUNT' '); then + check_config_clients $MOUNT + # init_facets_vars + # init_param_vars + return + fi + + echo "Lustre is not mounted, trying to do setup ... " + $reformat && CLEANUP_DM_DEV=true formatall + setupall + + MOUNTED=$(mounted_lustre_filesystems) + if ! $(echo $MOUNTED' ' | grep -w -q $MOUNT' '); then + echo "Lustre is not mounted after setup! " + exit 1 + fi + AUSTER_CLEANUP=true } cleanup_if_needed() { - if $auster_cleanup; then - cleanupall - fi + if $AUSTER_CLEANUP; then + cleanupall + fi } find_script_in_path() { @@ -192,24 +192,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 $script_lang $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() { @@ -268,6 +272,14 @@ run_suites() { shift; export ONLY=$(split_commas $1) opts+="ONLY=$ONLY ";; + --suite) + shift; + export SUITE=$(split_commas $1) + opts+="SUITE=$SUITE ";; + --pattern) + shift; + export PATTERN=$(split_commas $1) + opts+="PATTERN=$PATTERN ";; --except) shift; export EXCEPT=$(split_commas $1)