From: grev Date: Fri, 4 Sep 2009 12:56:58 +0000 (+0000) Subject: b=17873 X-Git-Tag: v1_9_260~30 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=b4015a80d09b7181a28253ce83b4b6d62411afa7;hp=02e966562db2781c7ee5b033ea104cd38f83dced;p=fs%2Flustre-release.git b=17873 i=Robert.Read new skip_env t-f fn: exit with error if FAIL_ON_SKIP_ENV=true --- diff --git a/lustre/tests/parallel-scale.sh b/lustre/tests/parallel-scale.sh index 17e2cc6..550eb62 100644 --- a/lustre/tests/parallel-scale.sh +++ b/lustre/tests/parallel-scale.sh @@ -112,16 +112,16 @@ test_compilebench() { print_opts cbench_DIR cbench_IDIRS cbench_RUNS [ x$cbench_DIR = x ] && - { skip "compilebench not found" && return; } + { skip_env "compilebench not found" && return; } [ -e $cbench_DIR/compilebench ] || \ - { skip "No compilebench build" && return; } + { skip_env "No compilebench build" && return; } local space=$(df -P $DIR | tail -n 1 | awk '{ print $4 }') if [ $space -le $((680 * 1024 * cbench_IDIRS)) ]; then cbench_IDIRS=$(( space / 680 / 1024)) [ $cbench_IDIRS = 0 ] && \ - skip "Need free space atleast 680 Mb, have $space" && return + skip_env "Need free space atleast 680 Mb, have $space" && return log free space=$space, reducing initial dirs to $cbench_IDIRS fi @@ -150,7 +150,7 @@ run_test compilebench "compilebench" test_metabench() { [ x$METABENCH = x ] && - { skip "metabench not found" && return; } + { skip_env "metabench not found" && return; } local clients=$CLIENTS [ -z $clients ] && clients=$(hostname) @@ -187,7 +187,7 @@ run_test metabench "metabench" test_simul() { [ x$SIMUL = x ] && - { skip "simul not found" && return; } + { skip_env "simul not found" && return; } local clients=$CLIENTS [ -z $clients ] && clients=$(hostname) @@ -227,10 +227,10 @@ test_connectathon() { print_opts cnt_DIR cnt_NRUN [ x$cnt_DIR = x ] && - { skip "connectathon dir not found" && return; } + { skip_env "connectathon dir not found" && return; } [ -e $cnt_DIR/runtests ] || \ - { skip "No connectathon runtests found" && return; } + { skip_env "No connectathon runtests found" && return; } local testdir=$DIR/d0.connectathon mkdir -p $testdir @@ -260,7 +260,7 @@ run_test connectathon "connectathon" test_ior() { [ x$IOR = x ] && - { skip "IOR not found" && return; } + { skip_env "IOR not found" && return; } local clients=$CLIENTS [ -z $clients ] && clients=$(hostname) @@ -273,7 +273,7 @@ test_ior() { echo "+ $space * 9/10 / 1024 / 1024 / $num_clients / $ior_THREADS" ior_blockSize=$(( space /2 /1024 /1024 / num_clients / ior_THREADS )) [ $ior_blockSize = 0 ] && \ - skip "Need free space more than ($num_clients * $ior_THREADS )Gb: $((num_clients*ior_THREADS *1024 *1024*2)), have $space" && return + skip_env "Need free space more than ($num_clients * $ior_THREADS )Gb: $((num_clients*ior_THREADS *1024 *1024*2)), have $space" && return echo "free space=$space, Need: $num_clients x $ior_THREADS x $ior_blockSize Gb (blockSize reduced to $ior_blockSize Gb)" fi @@ -311,7 +311,7 @@ run_test ior "ior" test_cascading_rw() { [ x$CASC_RW = x ] && - { skip "cascading_rw not found" && return; } + { skip_env "cascading_rw not found" && return; } local clients=$CLIENTS [ -z $clients ] && clients=$(hostname) @@ -350,7 +350,7 @@ run_test cascading_rw "cascading_rw" test_write_append_truncate() { # location is lustre/tests dir if ! which write_append_truncate > /dev/null 2>&1 ; then - skip "write_append_truncate not found" + skip_env "write_append_truncate not found" return fi @@ -390,7 +390,7 @@ run_test write_append_truncate "write_append_truncate" test_write_disjoint() { [ x$WRITE_DISJOINT = x ] && - { skip "write_disjoint not found" && return; } + { skip_env "write_disjoint not found" && return; } local clients=$CLIENTS [ -z $clients ] && clients=$(hostname) diff --git a/lustre/tests/rundbench b/lustre/tests/rundbench index d4d6963..ad938da 100755 --- a/lustre/tests/rundbench +++ b/lustre/tests/rundbench @@ -29,7 +29,7 @@ CLIENT_PREFIX="${DBENCH_LIB} /usr/share/dbench /usr/local/share /usr/lib/dbench" CLIENT_FILE="client.txt client_plain.txt dbench_client" if ! which dbench > /dev/null 2>&1 ; then [ "$MISSING_DBENCH_OK" ] || { error "$0 : $(hostname) dbench is not installed !" && exit 3; } - skip "$0 : $(hostname) dbench is not installed" + skip_env "$0 : $(hostname) dbench is not installed" exit 0 fi CLIENT="" @@ -49,7 +49,7 @@ if [ -n "$SRC" -a -s "$SRC" ]; then fi [ ! -s "$CLIENT" ] && \ - skip "$0 : $(hostname) no client file found for dbench DBENCH_LIB=$DBENCH_LIB SRC=$SRC" && \ + skip_env "$0 : $(hostname) no client file found for dbench DBENCH_LIB=$DBENCH_LIB SRC=$SRC" && \ exit 0 [ ! -s "$TGT" ] && echo "copying $CLIENT to $TGT" && cp $CLIENT $TGT diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index 1825891..40b8b16 100644 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -42,6 +42,7 @@ usage() { } print_summary () { + trap 0 [ "$TESTSUITE" == "lfscktest" ] && return 0 [ -n "$ONLY" ] && echo "WARNING: ONLY is set to ${ONLY}." local form="%-13s %-17s %s\n" @@ -63,8 +64,16 @@ print_summary () { done for O in $TESTSUITE_LIST; do - [ "${!O}" = "no" ] && \ - printf "$form" "Skipped" "$O" "" + if [ "${!O}" = "no" ]; then + # FIXME. + # only for those tests suits which are run directly from acc-sm script: + # bonnie, iozone, etc. + if [ -f "$TESTSUITELOG" ] && grep FAIL $TESTSUITELOG | grep -q ' '$O ; then + printf "$form" "UNFINISHED" "$O" "" + else + printf "$form" "Skipped" "$O" "" + fi + fi done for O in $TESTSUITE_LIST; do @@ -77,6 +86,7 @@ init_test_env() { export LUSTRE=`absolute_path $LUSTRE` export TESTSUITE=`basename $0 .sh` export TEST_FAILED=false + export FAIL_ON_SKIP_ENV=${FAIL_ON_SKIP_ENV:-false} export MKE2FS=${MKE2FS:-mke2fs} export DEBUGFS=${DEBUGFS:-debugfs} @@ -2198,11 +2208,22 @@ error_noexit() { local TYPE=${TYPE:-"FAIL"} local ERRLOG lctl set_param fail_loc=0 2>/dev/null || true + + local dump=true + # do not dump logs if $1=false + if [ "x$1" = "xfalse" ]; then + shift + dump=false + fi + log " ${TESTSUITE} ${TESTNAME}: @@@@@@ ${TYPE}: $@ " - ERRLOG=$TMP/lustre_${TESTSUITE}_${TESTNAME}.$(date +%s) - echo "Dumping lctl log to $ERRLOG" - # We need to dump the logs on all nodes - do_nodes $(comma_list $(nodes_list)) $NODE $LCTL dk $ERRLOG + + if $dump; then + ERRLOG=$TMP/lustre_${TESTSUITE}_${TESTNAME}.$(date +%s) + echo "Dumping lctl log to $ERRLOG" + # We need to dump the logs on all nodes + do_nodes $(comma_list $(nodes_list)) $NODE $LCTL dk $ERRLOG + fi debugrestore [ "$TESTSUITELOG" ] && echo "$0: ${TYPE}: $TESTNAME $@" >> $TESTSUITELOG TEST_FAILED=true @@ -2227,6 +2248,10 @@ error_ignore() { error_noexit "$@" } +skip_env () { + $FAIL_ON_SKIP_ENV && error false $@ || skip $@ +} + skip () { echo log " SKIP: ${TESTSUITE} ${TESTNAME} $@"