libsock: add functional tests
Change-Id: I3c86c1b4a9c8ae3f18264f33b15d647e4081a12c Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com> Reviewed-on: https://review.gerrithub.io/421911 Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
e086dba5af
commit
21bd942751
@ -314,12 +314,12 @@ function waitforlisten() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if hash ss; then
|
if hash ss; then
|
||||||
if $ns_cmd ss -lx | egrep -q "\s+$rpc_addr\s+"; then
|
if $ns_cmd ss -ln | egrep -q "\s+$rpc_addr\s+"; then
|
||||||
ret=0
|
ret=0
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# if system doesn't have ss, just assume it has netstat
|
# if system doesn't have ss, just assume it has netstat
|
||||||
if $ns_cmd netstat -an -x | grep -iw LISTENING | egrep -q "\s+$rpc_addr\$"; then
|
if $ns_cmd netstat -an | grep -iw LISTENING | egrep -q "\s+$rpc_addr\$"; then
|
||||||
ret=0
|
ret=0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -31,6 +31,9 @@ function create_veth_interfaces() {
|
|||||||
ip netns add $TARGET_NAMESPACE
|
ip netns add $TARGET_NAMESPACE
|
||||||
ip link set $TARGET_INTERFACE netns $TARGET_NAMESPACE
|
ip link set $TARGET_INTERFACE netns $TARGET_NAMESPACE
|
||||||
|
|
||||||
|
# Accept connections from veth interface
|
||||||
|
iptables -I INPUT 1 -i $INITIATOR_INTERFACE -p tcp --dport $ISCSI_PORT -j ACCEPT
|
||||||
|
|
||||||
$TARGET_NS_CMD ip link set lo up
|
$TARGET_NS_CMD ip link set lo up
|
||||||
$TARGET_NS_CMD ip addr add $TARGET_IP/24 dev $TARGET_INTERFACE
|
$TARGET_NS_CMD ip addr add $TARGET_IP/24 dev $TARGET_INTERFACE
|
||||||
$TARGET_NS_CMD ip link set $TARGET_INTERFACE up
|
$TARGET_NS_CMD ip link set $TARGET_INTERFACE up
|
||||||
|
@ -32,6 +32,7 @@ create_veth_interfaces $TEST_TYPE
|
|||||||
start_stub "-s 2048 -i 0 -m $ISCSI_TEST_CORE_MASK"
|
start_stub "-s 2048 -i 0 -m $ISCSI_TEST_CORE_MASK"
|
||||||
trap "kill_stub; cleanup_veth_interfaces $TEST_TYPE; exit 1" SIGINT SIGTERM EXIT
|
trap "kill_stub; cleanup_veth_interfaces $TEST_TYPE; exit 1" SIGINT SIGTERM EXIT
|
||||||
|
|
||||||
|
run_test suite ./test/iscsi_tgt/sock/sock.sh
|
||||||
run_test suite ./test/iscsi_tgt/calsoft/calsoft.sh
|
run_test suite ./test/iscsi_tgt/calsoft/calsoft.sh
|
||||||
run_test suite ./test/iscsi_tgt/filesystem/filesystem.sh
|
run_test suite ./test/iscsi_tgt/filesystem/filesystem.sh
|
||||||
run_test suite ./test/iscsi_tgt/reset/reset.sh
|
run_test suite ./test/iscsi_tgt/reset/reset.sh
|
||||||
|
62
test/iscsi_tgt/sock/sock.sh
Executable file
62
test/iscsi_tgt/sock/sock.sh
Executable file
@ -0,0 +1,62 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
testdir=$(readlink -f $(dirname $0))
|
||||||
|
rootdir=$(readlink -f $testdir/../../..)
|
||||||
|
source $rootdir/test/common/autotest_common.sh
|
||||||
|
source $rootdir/test/iscsi_tgt/common.sh
|
||||||
|
|
||||||
|
HELLO_SOCK_APP="$TARGET_NS_CMD $rootdir/examples/sock/hello_world/hello_sock"
|
||||||
|
SOCAT_APP="socat"
|
||||||
|
|
||||||
|
# ----------------
|
||||||
|
# Test client path
|
||||||
|
# ----------------
|
||||||
|
timing_enter sock_client
|
||||||
|
echo "Testing client path"
|
||||||
|
|
||||||
|
# start echo server using socat
|
||||||
|
$SOCAT_APP tcp-l:$ISCSI_PORT,fork,bind=$INITIATOR_IP exec:'/bin/cat' & server_pid=$!
|
||||||
|
trap "killprocess $server_pid;exit 1" SIGINT SIGTERM EXIT
|
||||||
|
|
||||||
|
waitforlisten $server_pid $INITIATOR_IP:$ISCSI_PORT
|
||||||
|
|
||||||
|
# send message using hello_sock client
|
||||||
|
message="**MESSAGE:This is a test message from the client**"
|
||||||
|
response=$( echo $message | $HELLO_SOCK_APP -H $INITIATOR_IP -P $ISCSI_PORT )
|
||||||
|
|
||||||
|
if ! echo "$response" | grep -q "$message"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
trap '-' SIGINT SIGTERM EXIT
|
||||||
|
# NOTE: socat returns code 143 on SIGINT
|
||||||
|
killprocess $server_pid || true
|
||||||
|
|
||||||
|
report_test_completion "sock_client"
|
||||||
|
timing_exit sock_client
|
||||||
|
|
||||||
|
# ----------------
|
||||||
|
# Test server path
|
||||||
|
# ----------------
|
||||||
|
|
||||||
|
timing_enter sock_server
|
||||||
|
|
||||||
|
# start echo server using hello_sock echo server
|
||||||
|
$HELLO_SOCK_APP -H $TARGET_IP -P $ISCSI_PORT -S & server_pid=$!
|
||||||
|
trap "killprocess $server_pid;exit 1" SIGINT SIGTERM EXIT
|
||||||
|
waitforlisten $server_pid
|
||||||
|
|
||||||
|
# send message to server using socat
|
||||||
|
message="**MESSAGE:This is a test message to the server**"
|
||||||
|
response=$( echo $message | $SOCAT_APP - tcp:$TARGET_IP:$ISCSI_PORT 2>/dev/null )
|
||||||
|
|
||||||
|
if [ "$message" != "$response" ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
trap - SIGINT SIGTERM EXIT
|
||||||
|
|
||||||
|
killprocess $server_pid
|
||||||
|
|
||||||
|
report_test_completion "sock_server"
|
||||||
|
timing_exit sock_server
|
Loading…
Reference in New Issue
Block a user