xref: /dpdk/examples/ipsec-secgw/test/pkttest.sh (revision 1dc48bce518de1d8cb73f961404a47311c4a248d)
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