19a18283aSMarcin Smoczynski#!/bin/bash 2*1dc48bceSStephen Hemminger# SPDX-License-Identifier: BSD-3-Clause 39a18283aSMarcin Smoczynski 49a18283aSMarcin SmoczynskiDIR=$(dirname $0) 59a18283aSMarcin Smoczynski 69a18283aSMarcin Smoczynskiif [ $(id -u) -ne 0 ]; then 79a18283aSMarcin Smoczynski echo "Run as root" 89a18283aSMarcin Smoczynski exit 1 99a18283aSMarcin Smoczynskifi 109a18283aSMarcin Smoczynski 119a18283aSMarcin Smoczynski# check python requirements 129a18283aSMarcin Smoczynskipython3 ${DIR}/pkttest.py check_reqs 139a18283aSMarcin Smoczynskiif [ $? -ne 0 ]; then 149a18283aSMarcin Smoczynski echo "Requirements for Python not met, exiting" 159a18283aSMarcin Smoczynski exit 1 169a18283aSMarcin Smoczynskifi 179a18283aSMarcin Smoczynski 189a18283aSMarcin Smoczynski# secgw application parameters setup 199a18283aSMarcin SmoczynskiCRYPTO_DEV="--vdev=crypto_null0" 209a18283aSMarcin SmoczynskiSGW_PORT_CFG="--vdev=net_tap0,mac=fixed --vdev=net_tap1,mac=fixed" 219a18283aSMarcin SmoczynskiSGW_EAL_XPRM="--no-pci" 229a18283aSMarcin SmoczynskiSGW_CMD_XPRM=-l 239a18283aSMarcin SmoczynskiSGW_WAIT_DEV="dtap0" 249a18283aSMarcin Smoczynski. ${DIR}/common_defs_secgw.sh 259a18283aSMarcin Smoczynski 269a18283aSMarcin Smoczynskiecho "Running tests: $*" 279a18283aSMarcin Smoczynskifor testcase in $* 289a18283aSMarcin Smoczynskido 299a18283aSMarcin Smoczynski # check test file presence 309a18283aSMarcin Smoczynski testfile="${DIR}/${testcase}.py" 319a18283aSMarcin Smoczynski if [ ! -f ${testfile} ]; then 329a18283aSMarcin Smoczynski echo "Invalid test ${testcase}" 339a18283aSMarcin Smoczynski continue 349a18283aSMarcin Smoczynski fi 359a18283aSMarcin Smoczynski 369a18283aSMarcin Smoczynski # prepare test config 379a18283aSMarcin Smoczynski python3 ${testfile} config > ${SGW_CFG_FILE} 389a18283aSMarcin Smoczynski if [ $? -ne 0 ]; then 399a18283aSMarcin Smoczynski rm -f ${SGW_CFG_FILE} 409a18283aSMarcin Smoczynski echo "Cannot get secgw configuration for test ${testcase}" 419a18283aSMarcin Smoczynski exit 1 429a18283aSMarcin Smoczynski fi 439a18283aSMarcin Smoczynski 449a18283aSMarcin Smoczynski # start the application 459a18283aSMarcin Smoczynski secgw_start 469a18283aSMarcin Smoczynski 479a18283aSMarcin Smoczynski # setup interfaces 489a18283aSMarcin Smoczynski ifconfig dtap0 up 499a18283aSMarcin Smoczynski ifconfig dtap1 up 509a18283aSMarcin Smoczynski 519a18283aSMarcin Smoczynski # run the test 529a18283aSMarcin Smoczynski echo "Running test case: ${testcase}" 539a18283aSMarcin Smoczynski python3 ${testfile} 549a18283aSMarcin Smoczynski st=$? 559a18283aSMarcin Smoczynski 569a18283aSMarcin Smoczynski # stop the application 579a18283aSMarcin Smoczynski secgw_stop 589a18283aSMarcin Smoczynski 599a18283aSMarcin Smoczynski # report test result and exit on failure 609a18283aSMarcin Smoczynski if [ $st -eq 0 ]; then 619a18283aSMarcin Smoczynski echo "Test case ${testcase} succeeded" 629a18283aSMarcin Smoczynski else 639a18283aSMarcin Smoczynski echo "Test case ${testcase} failed!" 649a18283aSMarcin Smoczynski exit $st 659a18283aSMarcin Smoczynski fi 669a18283aSMarcin Smoczynskidone 67