#!/bin/sh
cd $(dirname $0)
export LTPROOT=${LTPROOT:-"$PWD"}
echo $LTPROOT | grep -q testscripts
if [ $? -eq 0 ]; then
cd ..
export LTPROOT=${PWD}
fi
export TMPDIR=/tmp/netpan-$$
mkdir -p $TMPDIR
CMDFILE=${TMPDIR}/network.tests
VERBOSE="no"
NO_KMSG=
QUIET_MODE=
TEST_CASES=
export PATH="${PATH}:${LTPROOT}/testcases/bin"
usage()
{
echo "Usage: $0 OPTIONS"
echo " -6 IPv6 tests"
echo " -m multicast tests"
echo " -n NFS tests"
echo " -r RPC tests"
echo " -s SCTP tests"
echo " -t TCP/IP command tests"
echo " -c TI-RPC tests"
echo " -d TS-RPC tests"
echo " -a Application stress tests (HTTP, SSH, DNS)"
echo " -e Interface stress tests"
echo " -b Stress tests with malformed ICMP packets"
echo " -i IPsec ICMP stress tests"
echo " -T IPsec TCP stress tests"
echo " -U IPsec UDP stress tests"
echo " -D IPsec DCCP stress tests"
echo " -S IPsec SCTP stress tests"
echo " -R route stress tests"
echo " -M multicast stress tests"
echo " -F network features tests (TFO, vxlan, etc.)"
echo " -f x where x is a runtest file"
echo " -q quiet mode (this implies not logging start of test"
echo " in kernel log)"
echo " -Q don't log start of test in kernel log"
echo " -V|v verbose"
echo " -h print this help"
}
while getopts 6mnrstaebcdiTUDSRMFf:qQVvh OPTION
do
case $OPTION in
6) TEST_CASES="$TEST_CASES net.ipv6 net.ipv6_lib";;
m) TEST_CASES="$TEST_CASES net.multicast";;
n) TEST_CASES="$TEST_CASES net.nfs";;
r) TEST_CASES="$TEST_CASES net.rpc";;
s) TEST_CASES="$TEST_CASES net.sctp";;
t) TEST_CASES="$TEST_CASES net.tcp_cmds";;
c) TEST_CASES="$TEST_CASES net.rpc_tests";;
d) TEST_CASES="$TEST_CASES net.tirpc_tests";;
a) TEST_CASES="$TEST_CASES net_stress.appl";;
e) TEST_CASES="$TEST_CASES net_stress.interface";;
b) TEST_CASES="$TEST_CASES net_stress.broken_ip";;
i) TEST_CASES="$TEST_CASES net_stress.ipsec_icmp";;
T) TEST_CASES="$TEST_CASES net_stress.ipsec_tcp";;
U) TEST_CASES="$TEST_CASES net_stress.ipsec_udp";;
D) TEST_CASES="$TEST_CASES net_stress.ipsec_dccp";;
S) TEST_CASES="$TEST_CASES net_stress.ipsec_sctp";;
R) TEST_CASES="$TEST_CASES net_stress.route";;
M) TEST_CASES="$TEST_CASES net_stress.multicast";;
F) TEST_CASES="$TEST_CASES net.features";;
f) TEST_CASES=${OPTARG};;
q) QUIET_MODE="-q";;
Q) NO_KMSG="-Q";;
V|v) VERBOSE="yes";;
h) usage; exit 0;;
*) echo "Error: invalid option..."; usage; exit 1;;
esac
done
if [ "$OPTIND" -eq 1 ]; then
echo "Error: option is required"
usage
exit 1
fi
TST_TOTAL=1
TCID="network_settings"
. test_net.sh
# Reset variables.
# Don't break the tests which are using 'testcases/lib/cmdlib.sh'
export TCID=
export TST_LIB_LOADED=
rm -f $CMDFILE
for t in $TEST_CASES; do
cat ${LTPROOT}/runtest/$t >> $CMDFILE
done
cd $TMPDIR
cmd="${LTPROOT}/bin/ltp-pan $QUIET_MODE $NO_KMSG -e -l /tmp/netpan.log -S -a ltpnet -n ltpnet -f $CMDFILE"
if [ ${VERBOSE} = "yes" ]; then
echo "Network parameters:"
echo " - ${LHOST_IFACES} local interface (MAC address: ${LHOST_HWADDRS})"
echo " - ${RHOST_IFACES} remote interface (MAC address: ${RHOST_HWADDRS})"
cat $CMDFILE
${LTPROOT}/ver_linux
echo ""
echo $cmd
fi
$cmd
if [ $? -eq "0" ]; then
echo ltp-pan reported PASS
else
echo ltp-pan reported FAIL
fi