From 97660c1adbd56aaf211848ad1c19ea3cb9740087 Mon Sep 17 00:00:00 2001 From: Ziye Yang Date: Wed, 8 Mar 2017 10:32:39 +0800 Subject: [PATCH] nvmf,test: Add frequent nvmf subsystem add/delete test This patch creates a new test case: use rpc to frequently add/delete a same subsystem to verify the correctness of our code. Change-Id: Ib582061f9fa909f271bea4865df29a3f432f807c Signed-off-by: Ziye Yang --- autotest.sh | 1 + test/nvmf/rpc/rpc.sh | 56 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100755 test/nvmf/rpc/rpc.sh diff --git a/autotest.sh b/autotest.sh index 2483ba20a..c2d89ff39 100755 --- a/autotest.sh +++ b/autotest.sh @@ -119,6 +119,7 @@ run_test test/nvmf/filesystem/filesystem.sh run_test test/nvmf/discovery/discovery.sh run_test test/nvmf/nvme_cli/nvme_cli.sh run_test test/nvmf/shutdown/shutdown.sh +run_test test/nvmf/rpc/rpc.sh if [ $RUN_NIGHTLY -eq 1 ]; then run_test test/nvmf/multiconnection/multiconnection.sh diff --git a/test/nvmf/rpc/rpc.sh b/test/nvmf/rpc/rpc.sh new file mode 100755 index 000000000..0c267f1e3 --- /dev/null +++ b/test/nvmf/rpc/rpc.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +testdir=$(readlink -f $(dirname $0)) +rootdir=$(readlink -f $testdir/../../..) +source $rootdir/scripts/autotest_common.sh +source $rootdir/test/nvmf/common.sh + +rpc_py="python $rootdir/scripts/rpc.py" + +set -e + +if ! rdma_nic_available; then + echo "no NIC for nvmf test" + exit 0 +fi + +timing_enter rpc + +# Start up the NVMf target in another process +$rootdir/app/nvmf_tgt/nvmf_tgt -c $testdir/../nvmf.conf & +pid=$! + +trap "killprocess $pid; exit 1" SIGINT SIGTERM EXIT + +waitforlisten $pid ${RPC_PORT} + +# set times for subsystem construct/delete +if [ $RUN_NIGHTLY -eq 1 ]; then + times=50 +else + times=3 +fi + +# get all available nvme bdf info. +bdfs=$(lspci -mm -n | grep 0108 | tr -d '"' | awk -F " " '{print "0000:"$1}') + +# do frequent add delete. +for i in `seq 1 $times` +do + j=0 + for bdf in $bdfs; do + let j=j+1 + $rpc_py construct_nvmf_subsystem Direct nqn.2016-06.io.spdk:cnode$j 'transport:RDMA traddr:192.168.100.8 trsvcid:4420' '' -p "$bdf" + done + + n=$j + for j in `seq 1 $n` + do + $rpc_py delete_nvmf_subsystem nqn.2016-06.io.spdk:cnode$j + done +done + +trap - SIGINT SIGTERM EXIT + +killprocess $pid +timing_exit rpc