Whamcloud - gitweb
LU-16027 tests: sanity:test_66: specify blocksize explicitly
[fs/lustre-release.git] / lustre / tests / lnet-selftest.sh
index 6155c8b..dd3ec2b 100755 (executable)
@@ -2,19 +2,10 @@
 
 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
 
@@ -25,14 +16,14 @@ lst_LOOP=${lst_LOOP:-100000}
 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"}
@@ -42,11 +33,16 @@ 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)")}
@@ -93,36 +89,45 @@ if is_mounted $MOUNT2; then
 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" \
@@ -137,23 +142,22 @@ test_smoke_sub () {
                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 () {