That test used to call an inexistent function in its ERR trap. That's for one. Second, none of the SPDK tests should set the ERR trap themselves - it's set once in autotest_common.sh and prints the backtrace. What test scripts should do is setting SIGINT/EXIT traps - fix it now. Change-Id: I46c82651be78eeaec16ac52396c5e80a0405e5ff Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1331 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Michal Berger <michalx.berger@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
62 lines
1.4 KiB
Bash
Executable File
62 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
testdir=$(readlink -f $(dirname $0))
|
|
rootdir=$(readlink -f $testdir/../..)
|
|
source $rootdir/test/common/autotest_common.sh
|
|
source $rootdir/test/spdkcli/common.sh
|
|
|
|
function waitfortcplisten() {
|
|
# $1 = process pid
|
|
if [ -z "$1" ]; then
|
|
exit 1
|
|
fi
|
|
|
|
local ipaddr=$2
|
|
local port=$3
|
|
|
|
echo "Waiting for process to start up and listen on TCP/IP Socket $ipaddr:$port..."
|
|
# turn off trace for this loop
|
|
xtrace_disable
|
|
local ret=0
|
|
local i
|
|
for (( i = 40; i != 0; i-- )); do
|
|
# if the process is no longer running, then exit the script
|
|
# since it means the application crashed
|
|
if ! kill -s 0 $1; then
|
|
echo "ERROR: process (pid: $1) is no longer running"
|
|
ret=1
|
|
break
|
|
fi
|
|
|
|
if $rootdir/scripts/rpc.py -t 1 -s "$ipaddr" -p $port rpc_get_methods &>/dev/null; then
|
|
break
|
|
fi
|
|
|
|
sleep 0.5
|
|
done
|
|
|
|
xtrace_restore
|
|
if (( i == 0 )); then
|
|
echo "ERROR: timeout while waiting for process (pid: $1) to start listening on '$ipaddr:$port'"
|
|
ret=1
|
|
fi
|
|
return $ret
|
|
}
|
|
|
|
IP_ADDRESS="127.0.0.1"
|
|
PORT="9998"
|
|
|
|
trap 'killprocess $spdk_tgt_pid; 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 &
|
|
spdk_tgt_pid=$!
|
|
|
|
# This will issue a rpc request to the spdk target thus validating tcp
|
|
waitfortcplisten $spdk_tgt_pid $IP_ADDRESS $PORT
|
|
|
|
timing_exit run_spdk_tgt_tcp
|
|
|
|
trap - SIGINT SIGTERM EXIT
|
|
killprocess $spdk_tgt_pid
|