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
test_metabench() {
[ x$METABENCH = x ] &&
- { skip "metabench not found" && return; }
+ { skip_env "metabench not found" && return; }
local clients=$CLIENTS
[ -z $clients ] && clients=$(hostname)
test_simul() {
[ x$SIMUL = x ] &&
- { skip "simul not found" && return; }
+ { skip_env "simul not found" && return; }
local clients=$CLIENTS
[ -z $clients ] && clients=$(hostname)
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
test_ior() {
[ x$IOR = x ] &&
- { skip "IOR not found" && return; }
+ { skip_env "IOR not found" && return; }
local clients=$CLIENTS
[ -z $clients ] && clients=$(hostname)
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
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)
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
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)
}
print_summary () {
+ trap 0
[ "$TESTSUITE" == "lfscktest" ] && return 0
[ -n "$ONLY" ] && echo "WARNING: ONLY is set to ${ONLY}."
local form="%-13s %-17s %s\n"
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
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}
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
error_noexit "$@"
}
+skip_env () {
+ $FAIL_ON_SKIP_ENV && error false $@ || skip $@
+}
+
skip () {
echo
log " SKIP: ${TESTSUITE} ${TESTNAME} $@"