f-stack/dpdk/examples/ipsec-secgw/test/pkttest.sh

67 lines
1.3 KiB
Bash
Raw Normal View History

2020-06-18 16:55:50 +00:00
#!/bin/bash
# SPDX-License-Identifier: BSD-3-Clause
DIR=$(dirname $0)
if [ $(id -u) -ne 0 ]; then
echo "Run as root"
exit 1
fi
# check python requirements
python3 ${DIR}/pkttest.py check_reqs
if [ $? -ne 0 ]; then
echo "Requirements for Python not met, exiting"
exit 1
fi
# secgw application parameters setup
CRYPTO_DEV="--vdev=crypto_null0"
SGW_PORT_CFG="--vdev=net_tap0,mac=fixed --vdev=net_tap1,mac=fixed"
SGW_EAL_XPRM="--no-pci"
SGW_CMD_XPRM=-l
SGW_WAIT_DEV="dtap0"
. ${DIR}/common_defs_secgw.sh
echo "Running tests: $*"
for testcase in $*
do
# check test file presence
testfile="${DIR}/${testcase}.py"
if [ ! -f ${testfile} ]; then
echo "Invalid test ${testcase}"
continue
fi
# prepare test config
python3 ${testfile} config > ${SGW_CFG_FILE}
if [ $? -ne 0 ]; then
rm -f ${SGW_CFG_FILE}
echo "Cannot get secgw configuration for test ${testcase}"
exit 1
fi
# start the application
secgw_start
# setup interfaces
ifconfig dtap0 up
ifconfig dtap1 up
# run the test
echo "Running test case: ${testcase}"
python3 ${testfile}
st=$?
# stop the application
secgw_stop
# report test result and exit on failure
if [ $st -eq 0 ]; then
echo "Test case ${testcase} succeeded"
else
echo "Test case ${testcase} failed!"
exit $st
fi
done