LUSTRE=${LUSTRE:-$(dirname $0)/..}
. $LUSTRE/tests/test-framework.sh
-init_test_env $@
+init_test_env "$@"
init_logging
ALWAYS_EXCEPT="$LNET_SELFTEST_EXCEPT"
-if (( $LINUX_VERSION_CODE >= $(version_code 4.4.0) )); then
- # bug number for skipped test: LU-10073
- ALWAYS_EXCEPT+=" smoke "
-fi
-
-if [[ $(uname -m) = ppc64 ]]; then
- # bug number for skipped test: LU-10073
- ALWAYS_EXCEPT+=" smoke "
-fi
build_test_filter
lst_CONCR=${lst_CONCR:-"1 2 4 8"}
lst_SIZES=${lst_SIZES:-"4k 8k 256k 1M"}
if [ "$SLOW" = no ]; then
- lst_CONCR="1 8"
- lst_SIZES="4k 1M"
- lst_LOOP=1000
+ lst_CONCR="1 8"
+ lst_SIZES="4k 1M"
+ lst_LOOP=1000
fi
smoke_DURATION=${smoke_DURATION:-1800}
if [ "$SLOW" = no ]; then
- [ $smoke_DURATION -le 300 ] || smoke_DURATION=300
+ [ $smoke_DURATION -le 300 ] || smoke_DURATION=300
fi
lst_TESTS=${lst_TESTS:-"write read ping"}
# "simple" -> LST_BRW_CHECK_SIMPLE
lst_CHECK=${lst_CHECK:-"full"}
+lst_FROM=${lst_FROM:-"cs"}
+
case $lst_CHECK in
full|simple) check="check=$lst_CHECK";;
none) check="";;
*) error Unknown flag $lst_CHECK;;
esac
+
+LOAD_MODULES_REMOTE=true load_modules
+
nodes=$(comma_list "$(osts_nodes) $(mdts_nodes)")
lst_SERVERS=${lst_SERVERS:-$(comma_list "$(host_nids_address $nodes $NETTYPE)")}
lst_CLIENTS=${lst_CLIENTS:-$(comma_list "$(host_nids_address $CLIENTS $NETTYPE)")}
fi
lst_prepare () {
- # Workaround for bug 15619
- lst_cleanup_all
- lst_setup_all
+ # Workaround for bug 15619
+ lst_cleanup_all
+ lst_setup_all
}
# make batch
test_smoke_sub () {
- local servers=$1
- local clients=$2
+ local servers=$1
+ local clients=$2
+
+ local nc=$(echo ${clients//,/ } | wc -w)
+ local ns=$(echo ${servers//,/ } | wc -w)
+ echo '#!/bin/bash'
+ echo 'set -e'
+
+ echo 'cleanup () { trap 0; echo killing $1 ... ; kill -9 $1 || true; }'
- local nc=$(echo ${clients//,/ } | wc -w)
- local ns=$(echo ${servers//,/ } | wc -w)
- echo '#!/bin/bash'
- echo 'set -e'
+ echo "$LST new_session --timeo 100000 hh"
+ echo "$LST add_group c $(nids_list $clients)"
+ echo "$LST add_group s $(nids_list $servers)"
+ echo "$LST add_batch b"
- echo 'cleanup () { trap 0; echo killing $1 ... ; kill -9 $1 || true; }'
+ declare -a tests
- echo "$LST new_session --timeo 100000 hh"
- echo "$LST add_group c $(nids_list $clients)"
- echo "$LST add_group s $(nids_list $servers)"
- echo "$LST add_batch b"
+ case $lst_FROM in
+ c) tests[0]="${nc}:${ns} --from c --to s";;
+ s) tests[0]="${ns}:${nc} --from s --to c";;
+ cs)tests[0]="${nc}:${ns} --from c --to s"
+ tests[1]="${ns}:${nc} --from s --to c";;
+ *) error Unknown flag $lst_FROM;;
+ esac
pre="$LST add_test --batch b --loop $lst_LOOP "
for t in $lst_TESTS; do
for s in $lst_SIZES; do
for c in $lst_CONCR; do
- for d in "${nc}:${ns} --from c --to s" \
- "${ns}:${nc} --from s --to c"; do
+ for ((i=0; i<${#tests[@]}; i++)); do
echo -n "$pre --concurrency $c"\
- " --distribute $d "
+ " --distribute ${tests[i]} "
case $t in
read|write)
echo -n "brw $t" \
done
done
- echo $LST run b
- echo sleep 1
- echo "$LST stat --delay 10 --timeout 10 c s &"
- echo 'pid=$!'
- echo 'trap "cleanup $pid" INT TERM'
- echo sleep $smoke_DURATION
- echo 'cleanup $pid'
-
+ echo $LST run b
+ echo sleep 1
+ echo "$LST stat --delay 10 --timeout 10 c s &"
+ echo 'pid=$!'
+ echo 'trap "cleanup $pid" INT TERM'
+ echo sleep $smoke_DURATION
+ echo 'cleanup $pid'
}
run_lst () {
- local file=$1
+ local file=$1
- export LST_SESSION=$$
+ export LST_SESSION=$$
- # start lst
- sh $file
+ # start lst
+ bash $file
}
check_lst_err () {