From 563e1cf8d6a07180622a73f1c3cb141890ffe41e Mon Sep 17 00:00:00 2001 From: Robert Read Date: Mon, 28 Feb 2011 16:46:16 -0800 Subject: [PATCH] LU-103 Add support for test groups. Added an -g GROUP_FILE option to auster. The tests listed in the group file will be used instead of any passed on the command line. I also added a couple of test-groups to get things started, although I'm sure we'll want to refine these. Took care of a few cleanups in run_suite as well. Signed-off-by: Robert Read Change-Id: I5000c2b95a6eb1a49f5305637d4b55de5edc6d5c Reviewed-on: http://review.whamcloud.com/278 Tested-by: Hudson Reviewed-by: Chris Gearing Reviewed-by: Wei Liu Reviewed-by: Oleg Drokin --- lustre/tests/Makefile.am | 1 + lustre/tests/auster | 29 +++++++++++++++++++---------- lustre/tests/maloo_upload.sh | 0 lustre/tests/test-groups/regression | 23 +++++++++++++++++++++++ lustre/tests/test-groups/regression-mpi | 3 +++ 5 files changed, 46 insertions(+), 10 deletions(-) mode change 100644 => 100755 lustre/tests/maloo_upload.sh create mode 100644 lustre/tests/test-groups/regression create mode 100644 lustre/tests/test-groups/regression-mpi diff --git a/lustre/tests/Makefile.am b/lustre/tests/Makefile.am index c6cdc50..6ed4b5b 100644 --- a/lustre/tests/Makefile.am +++ b/lustre/tests/Makefile.am @@ -27,6 +27,7 @@ noinst_SCRIPTS += lustre-rsync-test.sh ost-pools.sh rpc.sh yaml.sh liblustre.sh noinst_SCRIPTS += lnet-selftest.sh obdfilter-survey.sh mmp.sh noinst_SCRIPTS += sgpdd-survey.sh maloo_upload.sh auster nobase_noinst_SCRIPTS = cfg/local.sh +nobase_noinst_SCRIPTS += test-groups/regression test-groups/regression-mpi nobase_noinst_SCRIPTS += acl/make-tree acl/run cfg/ncli.sh nobase_noinst_SCRIPTS += racer/dir_create.sh racer/file_create.sh racer/file_list.sh nobase_noinst_SCRIPTS += racer/file_rm.sh racer/racer.sh racer/file_concat.sh diff --git a/lustre/tests/auster b/lustre/tests/auster index 21087e0..a59c6f4 100755 --- a/lustre/tests/auster +++ b/lustre/tests/auster @@ -20,6 +20,7 @@ Run Lustre regression tests suites. -d LOGDIR Top level directory for logs -D FULLLOGDIR Full directory for logs -f STR Config name (cfg/.sh) + -g GROUP Test group file (Overrides tests listed on command line) -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 @@ -48,9 +49,9 @@ the default "local" configuration. auster -s sanity replay-single --except 70b -Run test listed in batch-list 5 times using large config. +Run all tests in the regression group 5 times using large config. - auster -f large -r 5 -b batch-list + auster -f large -g test-groups/regression -r 5 EOF exit @@ -65,12 +66,13 @@ reformat=false test_logs_dir=/tmp/test_logs/$(date +%Y-%m-%d)/$(date +%H%M%S) export SLOW=no export ${NAME:=local} -while getopts "c:d:D:nkf:i:rRslhv" opt +while getopts "c:d:D:nkf: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;; k) export FAIL_ON_ERROR=false;; n) dry_run=:;; v) verbose=:;; @@ -83,7 +85,14 @@ do h|\?) usage;; esac done -shift $((OPTIND -1)) + +# If a test_group_file is specified, then ignore rest of command line +if [[ $test_group_file ]]; then + export TEST_GROUP=$(basename $test_group_file) + set $(sed 's/#.*$//' $test_group_file) +else + shift $((OPTIND -1)) +fi # # Various paramters for the tests scripts @@ -183,12 +192,12 @@ doit() { run_suite() { suite_name=$1 suite_script=$2 - only=$3 title $suite_name log_test $suite_name + rm -f $TF_FAIL local start_ts=$(date +%s) - doit bash $suite_script $only + doit bash $suite_script rc=$? duration=$(($(date +%s) - $start_ts)) if [ -f $TF_FAIL -o $rc -ne 0 ]; then @@ -204,7 +213,6 @@ run_suite() { run_suite_logged() { local suite_name=${1%.sh} local suite=$(echo ${suite_name} | tr "[:lower:]-" "[:upper:]_") - local suite_only=${suite}_ONLY suite_script=$(find_script_in_path $suite_name $PATH:$LUSTRE/tests) @@ -213,12 +221,12 @@ run_suite_logged() { return 1 fi - echo "run_suite $suite_name $suite_script ${!suite_only}" + echo "run_suite $suite_name $suite_script" local log_name=${suite_name}.suite_log.$(hostname).log if $verbose; then - run_suite $suite_name $suite_script "${!suite_only}" 2>&1 |tee $LOGDIR/$log_name + run_suite $suite_name $suite_script 2>&1 |tee $LOGDIR/$log_name else - run_suite $suite_name $suite_script "${!suite_only}" > $LOGDIR/$log_name 2>&1 + run_suite $suite_name $suite_script > $LOGDIR/$log_name 2>&1 fi } @@ -309,6 +317,7 @@ assert_env mds_HOST MDS_MKFS_OPTS assert_env ost_HOST OST_MKFS_OPTS OSTCOUNT assert_env FSNAME MOUNT MOUNT2 +echo "Started at `date`" setup_if_needed run_suites "$@" diff --git a/lustre/tests/maloo_upload.sh b/lustre/tests/maloo_upload.sh old mode 100644 new mode 100755 diff --git a/lustre/tests/test-groups/regression b/lustre/tests/test-groups/regression new file mode 100644 index 0000000..849ee8a --- /dev/null +++ b/lustre/tests/test-groups/regression @@ -0,0 +1,23 @@ +sanity +metadata-updates +sanity-benchmark +sanityn +lfsck +liblustre +runracer +replay-single +conf-sanity +recovery-small +replay-ost-single +replay-dual +replay-vbr +insanity +sanity-quota +sanity-sec +sanity-gss +lustre_rsync-test +ost-pools +lnet-selftest +mmp +obdfilter-survey +sgpdd-survey diff --git a/lustre/tests/test-groups/regression-mpi b/lustre/tests/test-groups/regression-mpi new file mode 100644 index 0000000..fd44302 --- /dev/null +++ b/lustre/tests/test-groups/regression-mpi @@ -0,0 +1,3 @@ +performance-sanity +large-scale +parallel-scale -- 1.8.3.1