1*49cdfc7eSAndroid Build Coastguard Worker#!/bin/sh 2*49cdfc7eSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0-or-later 3*49cdfc7eSAndroid Build Coastguard Worker# Copyright (c) Linux Test Project, 2013-2019 4*49cdfc7eSAndroid Build Coastguard Worker 5*49cdfc7eSAndroid Build Coastguard Workercd $(dirname $0) 6*49cdfc7eSAndroid Build Coastguard Workerexport LTPROOT=${LTPROOT:-"$PWD"} 7*49cdfc7eSAndroid Build Coastguard Workerecho $LTPROOT | grep -q testscripts 8*49cdfc7eSAndroid Build Coastguard Workerif [ $? -eq 0 ]; then 9*49cdfc7eSAndroid Build Coastguard Worker cd .. 10*49cdfc7eSAndroid Build Coastguard Worker export LTPROOT=${PWD} 11*49cdfc7eSAndroid Build Coastguard Workerfi 12*49cdfc7eSAndroid Build Coastguard Worker 13*49cdfc7eSAndroid Build Coastguard Workerexport TMPDIR=/tmp/netpan-$$ 14*49cdfc7eSAndroid Build Coastguard Workermkdir -p $TMPDIR 15*49cdfc7eSAndroid Build Coastguard WorkerCMDFILE=${TMPDIR}/network.tests 16*49cdfc7eSAndroid Build Coastguard WorkerVERBOSE="no" 17*49cdfc7eSAndroid Build Coastguard WorkerNO_KMSG= 18*49cdfc7eSAndroid Build Coastguard WorkerQUIET_MODE= 19*49cdfc7eSAndroid Build Coastguard WorkerTEST_CASES= 20*49cdfc7eSAndroid Build Coastguard Worker 21*49cdfc7eSAndroid Build Coastguard Workerexport PATH="${PATH}:${LTPROOT}/testcases/bin" 22*49cdfc7eSAndroid Build Coastguard Worker 23*49cdfc7eSAndroid Build Coastguard Workerusage() 24*49cdfc7eSAndroid Build Coastguard Worker{ 25*49cdfc7eSAndroid Build Coastguard Worker echo "Usage: $0 OPTIONS" 26*49cdfc7eSAndroid Build Coastguard Worker echo " -6 IPv6 tests" 27*49cdfc7eSAndroid Build Coastguard Worker echo " -m multicast tests" 28*49cdfc7eSAndroid Build Coastguard Worker echo " -n NFS tests" 29*49cdfc7eSAndroid Build Coastguard Worker echo " -s SCTP tests" 30*49cdfc7eSAndroid Build Coastguard Worker echo " -t TCP/IP command tests" 31*49cdfc7eSAndroid Build Coastguard Worker echo " -c RPC and TI-RPC tests" 32*49cdfc7eSAndroid Build Coastguard Worker echo " -d TS-RPC tests" 33*49cdfc7eSAndroid Build Coastguard Worker echo " -a Application stress tests (HTTP, SSH, DNS)" 34*49cdfc7eSAndroid Build Coastguard Worker echo " -e Interface stress tests" 35*49cdfc7eSAndroid Build Coastguard Worker echo " -b Stress tests with malformed ICMP packets" 36*49cdfc7eSAndroid Build Coastguard Worker echo " -i IPsec ICMP stress tests" 37*49cdfc7eSAndroid Build Coastguard Worker echo " -T IPsec TCP stress tests" 38*49cdfc7eSAndroid Build Coastguard Worker echo " -U IPsec UDP stress tests" 39*49cdfc7eSAndroid Build Coastguard Worker echo " -D IPsec DCCP stress tests" 40*49cdfc7eSAndroid Build Coastguard Worker echo " -S IPsec SCTP stress tests" 41*49cdfc7eSAndroid Build Coastguard Worker echo " -R route stress tests" 42*49cdfc7eSAndroid Build Coastguard Worker echo " -M multicast stress tests" 43*49cdfc7eSAndroid Build Coastguard Worker echo " -F network features tests (TFO, vxlan, etc.)" 44*49cdfc7eSAndroid Build Coastguard Worker echo " -f x where x is a runtest file" 45*49cdfc7eSAndroid Build Coastguard Worker echo " -q quiet mode (this implies not logging start of test" 46*49cdfc7eSAndroid Build Coastguard Worker echo " in kernel log)" 47*49cdfc7eSAndroid Build Coastguard Worker echo " -Q don't log start of test in kernel log" 48*49cdfc7eSAndroid Build Coastguard Worker echo " -V|v verbose" 49*49cdfc7eSAndroid Build Coastguard Worker echo " -h print this help" 50*49cdfc7eSAndroid Build Coastguard Worker} 51*49cdfc7eSAndroid Build Coastguard Worker 52*49cdfc7eSAndroid Build Coastguard Workerwhile getopts 6mnrstaebcdiTUDSRMFf:qQVvh OPTION 53*49cdfc7eSAndroid Build Coastguard Workerdo 54*49cdfc7eSAndroid Build Coastguard Worker case $OPTION in 55*49cdfc7eSAndroid Build Coastguard Worker 6) TEST_CASES="$TEST_CASES net.ipv6 net.ipv6_lib";; 56*49cdfc7eSAndroid Build Coastguard Worker m) TEST_CASES="$TEST_CASES net.multicast";; 57*49cdfc7eSAndroid Build Coastguard Worker n) TEST_CASES="$TEST_CASES net.nfs";; 58*49cdfc7eSAndroid Build Coastguard Worker s) TEST_CASES="$TEST_CASES net.sctp";; 59*49cdfc7eSAndroid Build Coastguard Worker t) TEST_CASES="$TEST_CASES net.tcp_cmds";; 60*49cdfc7eSAndroid Build Coastguard Worker c) TEST_CASES="$TEST_CASES net.rpc_tests";; 61*49cdfc7eSAndroid Build Coastguard Worker d) TEST_CASES="$TEST_CASES net.tirpc_tests";; 62*49cdfc7eSAndroid Build Coastguard Worker a) TEST_CASES="$TEST_CASES net_stress.appl";; 63*49cdfc7eSAndroid Build Coastguard Worker e) TEST_CASES="$TEST_CASES net_stress.interface";; 64*49cdfc7eSAndroid Build Coastguard Worker b) TEST_CASES="$TEST_CASES net_stress.broken_ip";; 65*49cdfc7eSAndroid Build Coastguard Worker i) TEST_CASES="$TEST_CASES net_stress.ipsec_icmp";; 66*49cdfc7eSAndroid Build Coastguard Worker T) TEST_CASES="$TEST_CASES net_stress.ipsec_tcp";; 67*49cdfc7eSAndroid Build Coastguard Worker U) TEST_CASES="$TEST_CASES net_stress.ipsec_udp";; 68*49cdfc7eSAndroid Build Coastguard Worker D) TEST_CASES="$TEST_CASES net_stress.ipsec_dccp";; 69*49cdfc7eSAndroid Build Coastguard Worker S) TEST_CASES="$TEST_CASES net_stress.ipsec_sctp";; 70*49cdfc7eSAndroid Build Coastguard Worker R) TEST_CASES="$TEST_CASES net_stress.route";; 71*49cdfc7eSAndroid Build Coastguard Worker M) TEST_CASES="$TEST_CASES net_stress.multicast";; 72*49cdfc7eSAndroid Build Coastguard Worker F) TEST_CASES="$TEST_CASES net.features";; 73*49cdfc7eSAndroid Build Coastguard Worker f) TEST_CASES=${OPTARG};; 74*49cdfc7eSAndroid Build Coastguard Worker q) QUIET_MODE="-q";; 75*49cdfc7eSAndroid Build Coastguard Worker Q) NO_KMSG="-Q";; 76*49cdfc7eSAndroid Build Coastguard Worker V|v) VERBOSE="yes";; 77*49cdfc7eSAndroid Build Coastguard Worker h) usage; exit 0;; 78*49cdfc7eSAndroid Build Coastguard Worker *) echo "Error: invalid option..."; usage; exit 1;; 79*49cdfc7eSAndroid Build Coastguard Worker esac 80*49cdfc7eSAndroid Build Coastguard Workerdone 81*49cdfc7eSAndroid Build Coastguard Worker 82*49cdfc7eSAndroid Build Coastguard Workerif [ "$OPTIND" -eq 1 ]; then 83*49cdfc7eSAndroid Build Coastguard Worker echo "Error: option is required" 84*49cdfc7eSAndroid Build Coastguard Worker usage 85*49cdfc7eSAndroid Build Coastguard Worker exit 1 86*49cdfc7eSAndroid Build Coastguard Workerfi 87*49cdfc7eSAndroid Build Coastguard Workershift $(($OPTIND - 1)) 88*49cdfc7eSAndroid Build Coastguard Worker 89*49cdfc7eSAndroid Build Coastguard Workerrm -f $CMDFILE 90*49cdfc7eSAndroid Build Coastguard Worker 91*49cdfc7eSAndroid Build Coastguard Workerfor t in $TEST_CASES; do 92*49cdfc7eSAndroid Build Coastguard Worker cat ${LTPROOT}/runtest/$t >> $CMDFILE 93*49cdfc7eSAndroid Build Coastguard Workerdone 94*49cdfc7eSAndroid Build Coastguard Worker 95*49cdfc7eSAndroid Build Coastguard Workercd $TMPDIR 96*49cdfc7eSAndroid Build Coastguard Worker 97*49cdfc7eSAndroid Build Coastguard Workercmd="${LTPROOT}/bin/ltp-pan $QUIET_MODE $NO_KMSG -e -l /tmp/netpan.log -S -a ltpnet -n ltpnet -f $CMDFILE" 98*49cdfc7eSAndroid Build Coastguard Worker 99*49cdfc7eSAndroid Build Coastguard Workerif [ ${VERBOSE} = "yes" ]; then 100*49cdfc7eSAndroid Build Coastguard Worker echo "Network parameters:" 101*49cdfc7eSAndroid Build Coastguard Worker echo " - ${LHOST_IFACES} local interface (MAC address: ${LHOST_HWADDRS})" 102*49cdfc7eSAndroid Build Coastguard Worker echo " - ${RHOST_IFACES} remote interface (MAC address: ${RHOST_HWADDRS})" 103*49cdfc7eSAndroid Build Coastguard Worker 104*49cdfc7eSAndroid Build Coastguard Worker cat $CMDFILE 105*49cdfc7eSAndroid Build Coastguard Worker ${LTPROOT}/ver_linux 106*49cdfc7eSAndroid Build Coastguard Worker echo "" 107*49cdfc7eSAndroid Build Coastguard Worker echo $cmd 108*49cdfc7eSAndroid Build Coastguard Workerfi 109*49cdfc7eSAndroid Build Coastguard Worker 110*49cdfc7eSAndroid Build Coastguard Worker$cmd 111*49cdfc7eSAndroid Build Coastguard Worker 112*49cdfc7eSAndroid Build Coastguard Workerif [ $? -eq "0" ]; then 113*49cdfc7eSAndroid Build Coastguard Worker echo ltp-pan reported PASS 114*49cdfc7eSAndroid Build Coastguard Workerelse 115*49cdfc7eSAndroid Build Coastguard Worker echo ltp-pan reported FAIL 116*49cdfc7eSAndroid Build Coastguard Workerfi 117*49cdfc7eSAndroid Build Coastguard Worker 118*49cdfc7eSAndroid Build Coastguard Workerrm -rf $TMPDIR 119