test/spdkcli/tcp: use socat for listening for RPC on a TCP port
`-r` command line param in SPDK won't accept a TCP port soon. Instead, we can make SPDK listen on a unix domain socket, then expose the socket on a TCP port using socat. Change-Id: Iea52a5f21d845eac6888d343ce03c7e7caf19617 Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1332 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
5db247abfc
commit
6fa52a2b3e
@ -5,6 +5,13 @@ rootdir=$(readlink -f $testdir/../..)
|
||||
source $rootdir/test/common/autotest_common.sh
|
||||
source $rootdir/test/spdkcli/common.sh
|
||||
|
||||
function err_cleanup() {
|
||||
if [ -n "$socat_pid" ]; then
|
||||
killprocess $socat_pid || true
|
||||
fi
|
||||
killprocess $spdk_tgt_pid
|
||||
}
|
||||
|
||||
function waitfortcplisten() {
|
||||
# $1 = process pid
|
||||
if [ -z "$1" ]; then
|
||||
@ -46,12 +53,18 @@ function waitfortcplisten() {
|
||||
IP_ADDRESS="127.0.0.1"
|
||||
PORT="9998"
|
||||
|
||||
trap 'killprocess $spdk_tgt_pid; exit 1' SIGINT SIGTERM EXIT
|
||||
trap 'err_cleanup; exit 1' SIGINT SIGTERM EXIT
|
||||
|
||||
timing_enter run_spdk_tgt_tcp
|
||||
$rootdir/app/spdk_tgt/spdk_tgt -m 0x3 -p 0 -s 2048 -r $IP_ADDRESS:$PORT &
|
||||
$rootdir/app/spdk_tgt/spdk_tgt -m 0x3 -p 0 -s 2048 &
|
||||
spdk_tgt_pid=$!
|
||||
|
||||
waitforlisten $spdk_tgt_pid
|
||||
|
||||
# socat will terminate automatically after the connection is closed
|
||||
socat TCP-LISTEN:$PORT UNIX-CONNECT:$DEFAULT_RPC_ADDR &
|
||||
socat_pid=$!
|
||||
|
||||
# This will issue a rpc request to the spdk target thus validating tcp
|
||||
waitfortcplisten $spdk_tgt_pid $IP_ADDRESS $PORT
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user