Whamcloud - gitweb
b=17873
authorgrev <grev>
Fri, 4 Sep 2009 12:56:58 +0000 (12:56 +0000)
committergrev <grev>
Fri, 4 Sep 2009 12:56:58 +0000 (12:56 +0000)
i=Robert.Read
new skip_env t-f fn: exit with error if FAIL_ON_SKIP_ENV=true

lustre/tests/parallel-scale.sh
lustre/tests/rundbench
lustre/tests/test-framework.sh

index 17e2cc6..550eb62 100644 (file)
@@ -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)
index d4d6963..ad938da 100755 (executable)
@@ -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
index 1825891..40b8b16 100644 (file)
@@ -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} $@"