Rewriting network tests into new shell API
v3 cover Rewriting network tests into new shell API
Hi,
changes v2->v3:
* Place underscore in the end of a function names in tst_test.sh (requested by Alexey).
* Two new commits (second depend on previous):
tst_test.sh: Introduce TST_NO_DEFAULT_RUN
network.sh: Migrate to new shell API
* Rename files (test_net.sh => tst_net.sh, test_net_stress.sh => tst_net_stress.sh)
Using TST_NO_DEFAULT_RUN was indeed the easiest solution to migrate network.sh script. Now it should be possible to migrate the rest of network tests into new API, they will not be blocker for deleting the old API. Commits are bisectable (no break introduced).
Although I tested LTP over netns and SSH (RSH not tested as it's deprecated) on both these few using new API (net_stress.interface and net_stress.multicast runtests) and some of these using legacy API, testing and comments are much appreciated.
Kind regards,
Petr
Petr Vorel (5):
tst_net.sh: Support both old and new shell APIs + rename it tst_test.sh: Introduce TST_NO_DEFAULT_RUN
network.sh: Migrate to new shell API
network/interface: Cleanup if4-addr-change
net: Migrate test_net_stress.sh and it's dependencies to new shell API
testcases/lib/{test_net.sh => tst_net.sh} | 135 +++++++++++++--------
testcases/lib/tst_test.sh | 101 +++++++--------
testcases/network/README.md | 4 +-
testcases/network/busy_poll/busy_poll01.sh | 3 +-
testcases/network/busy_poll/busy_poll02.sh | 3 +-
testcases/network/busy_poll/busy_poll03.sh | 3 +-
testcases/network/dccp/dccp01.sh | 3 +-
testcases/network/dctcp/dctcp01.sh | 3 +-
testcases/network/dhcp/dhcpd_tests.sh | 3 +-
testcases/network/dhcp/dnsmasq_tests.sh | 3 +-
testcases/network/iproute/ip_tests.sh | 3 +-
testcases/network/multicast/mc_cmds/mc_cmds | 3 +-
testcases/network/multicast/mc_commo/mc_commo | 3 +-
testcases/network/multicast/mc_member/mc_member | 3 +-
testcases/network/multicast/mc_opts/mc_opts | 3 +-
testcases/network/nfs/fsx-linux/fsx.sh | 3 +-
testcases/network/nfs/nfs_stress/nfs01 | 3 +-
testcases/network/nfs/nfs_stress/nfs02 | 3 +-
testcases/network/nfs/nfs_stress/nfs03 | 3 +-
testcases/network/nfs/nfs_stress/nfs04 | 3 +-
testcases/network/nfs/nfs_stress/nfs05 | 3 +-
testcases/network/nfs/nfs_stress/nfs06 | 3 +-
testcases/network/nfs/nfslock01/nfslock01 | 3 +-
testcases/network/nfs/nfsstat01/nfsstat01 | 3 +-
testcases/network/rpc/basic_tests/rpc01/rpc01 | 3 +-
.../network/rpc/basic_tests/rpcinfo/rpcinfo01 | 3 +-
testcases/network/rpc/basic_tests/rup/rup01 | 3 +-
testcases/network/rpc/basic_tests/rusers/rusers01 | 3 +-
testcases/network/rpc/rpc-tirpc/rpc_test.sh | 3 +-
testcases/network/sctp/sctp01.sh | 3 +-
testcases/network/sockets/bind_noport01.sh | 3 +-
.../network/stress/broken_ip/broken_ip4-checksum | 3 +-
.../network/stress/broken_ip/broken_ip4-dstaddr | 3 +-
.../network/stress/broken_ip/broken_ip4-fragment | 3 +-
testcases/network/stress/broken_ip/broken_ip4-ihl | 3 +-
.../network/stress/broken_ip/broken_ip4-protcol | 3 +-
.../network/stress/broken_ip/broken_ip4-totlen | 3 +-
.../network/stress/broken_ip/broken_ip4-version | 3 +-
.../network/stress/broken_ip/broken_ip6-dstaddr | 3 +-
.../network/stress/broken_ip/broken_ip6-nexthdr | 3 +-
testcases/network/stress/broken_ip/broken_ip6-plen | 3 +-
.../network/stress/broken_ip/broken_ip6-version | 3 +-
testcases/network/stress/dns/dns-stress | 3 +-
testcases/network/stress/ftp/ftp-download-stress | 3 +-
testcases/network/stress/ftp/ftp-upload-stress | 3 +-
testcases/network/stress/http/http-stress | 3 +-
testcases/network/stress/interface/if-addr-adddel | 33 +++--
.../network/stress/interface/if-addr-addlarge | 39 +++---
testcases/network/stress/interface/if-mtu-change | 26 ++--
testcases/network/stress/interface/if-route-adddel | 29 ++---
.../network/stress/interface/if-route-addlarge | 31 ++---
testcases/network/stress/interface/if-updown | 29 ++---
testcases/network/stress/interface/if4-addr-change | 76 +++++++-----
testcases/network/stress/ipsec/ipsec_lib.sh | 3 +-
.../grp-operation/mcast-group-multiple-socket | 16 +--
.../multicast/grp-operation/mcast-group-same-group | 17 ++-
.../grp-operation/mcast-group-single-socket | 17 ++-
.../grp-operation/mcast-group-source-filter | 17 ++-
.../stress/multicast/grp-operation/mcast-lib.sh | 17 +--
.../{test_net_stress.sh => tst_net_stress.sh} | 28 ++++-
testcases/network/stress/ssh/ssh-stress | 3 +-
testcases/network/tcp_cmds/arping/arping01.sh | 3 +-
.../network/tcp_cmds/clockdiff/clockdiff01.sh | 3 +-
testcases/network/tcp_cmds/ipneigh/ipneigh01.sh | 3 +-
testcases/network/tcp_cmds/ping/ping01.sh | 3 +-
testcases/network/tcp_cmds/ping/ping02.sh | 3 +-
testcases/network/tcp_cmds/rlogin/rlogin01 | 3 +-
testcases/network/tcp_cmds/sendfile/sendfile01 | 3 +-
testcases/network/tcp_cmds/tcpdump/tcpdump01 | 3 +-
testcases/network/tcp_cmds/telnet/telnet01 | 3 +-
.../network/tcp_cmds/tracepath/tracepath01.sh | 3 +-
testcases/network/tcp_fastopen/tcp_fastopen_run.sh | 3 +-
testcases/network/traceroute/traceroute01.sh | 3 +-
testcases/network/virt/geneve01.sh | 3 +-
testcases/network/virt/gre01.sh | 3 +-
testcases/network/virt/ipvlan01.sh | 3 +-
testcases/network/virt/macvlan01.sh | 3 +-
testcases/network/virt/macvtap01.sh | 3 +-
testcases/network/virt/vlan01.sh | 3 +-
testcases/network/virt/vlan02.sh | 3 +-
testcases/network/virt/vlan03.sh | 3 +-
testcases/network/virt/vxlan01.sh | 3 +-
testcases/network/virt/vxlan02.sh | 3 +-
testcases/network/virt/vxlan03.sh | 3 +-
testcases/network/xinetd/xinetd_tests.sh | 3 +-
testscripts/network.sh | 6 +-
86 files changed, 476 insertions(+), 352 deletions(-)
rename testcases/lib/{test_net.sh => tst_net.sh} (87%)
rename testcases/network/stress/ns-tools/{test_net_stress.sh => tst_net_stress.sh} (88%)Signature · 1 line
2.16.2
RFC PATCH v3 1/5 tst_net.sh: Support both old and new shell APIs + rename it
The new name states that library supports new API.
This is temporary solution, after migrating all tests to new SHELL API the compatibility layer and old SHELL API support should be removed.
Add TST_USE_LEGACY_API=1 to all scripts using tst_net.sh (including testscripts/network.sh).
Filter out TST_IPV6 variable in tst_test.sh.
---
testcases/lib/{test_net.sh => tst_net.sh} | 135 +++++++++++++--------
testcases/lib/tst_test.sh | 1 +
testcases/network/README.md | 4 +-
testcases/network/busy_poll/busy_poll01.sh | 3 +-
testcases/network/busy_poll/busy_poll02.sh | 3 +-
testcases/network/busy_poll/busy_poll03.sh | 3 +-
testcases/network/dccp/dccp01.sh | 3 +-
testcases/network/dctcp/dctcp01.sh | 3 +-
testcases/network/dhcp/dhcpd_tests.sh | 3 +-
testcases/network/dhcp/dnsmasq_tests.sh | 3 +-
testcases/network/iproute/ip_tests.sh | 3 +-
testcases/network/multicast/mc_cmds/mc_cmds | 3 +-
testcases/network/multicast/mc_commo/mc_commo | 3 +-
testcases/network/multicast/mc_member/mc_member | 3 +-
testcases/network/multicast/mc_opts/mc_opts | 3 +-
testcases/network/nfs/fsx-linux/fsx.sh | 3 +-
testcases/network/nfs/nfs_stress/nfs01 | 3 +-
testcases/network/nfs/nfs_stress/nfs02 | 3 +-
testcases/network/nfs/nfs_stress/nfs03 | 3 +-
testcases/network/nfs/nfs_stress/nfs04 | 3 +-
testcases/network/nfs/nfs_stress/nfs05 | 3 +-
testcases/network/nfs/nfs_stress/nfs06 | 3 +-
testcases/network/nfs/nfslock01/nfslock01 | 3 +-
testcases/network/nfs/nfsstat01/nfsstat01 | 3 +-
testcases/network/rpc/basic_tests/rpc01/rpc01 | 3 +-
.../network/rpc/basic_tests/rpcinfo/rpcinfo01 | 3 +-
testcases/network/rpc/basic_tests/rup/rup01 | 3 +-
testcases/network/rpc/basic_tests/rusers/rusers01 | 3 +-
testcases/network/rpc/rpc-tirpc/rpc_test.sh | 3 +-
testcases/network/sctp/sctp01.sh | 3 +-
testcases/network/sockets/bind_noport01.sh | 3 +-
.../network/stress/broken_ip/broken_ip4-checksum | 3 +-
.../network/stress/broken_ip/broken_ip4-dstaddr | 3 +-
.../network/stress/broken_ip/broken_ip4-fragment | 3 +-
testcases/network/stress/broken_ip/broken_ip4-ihl | 3 +-
.../network/stress/broken_ip/broken_ip4-protcol | 3 +-
.../network/stress/broken_ip/broken_ip4-totlen | 3 +-
.../network/stress/broken_ip/broken_ip4-version | 3 +-
.../network/stress/broken_ip/broken_ip6-dstaddr | 3 +-
.../network/stress/broken_ip/broken_ip6-nexthdr | 3 +-
testcases/network/stress/broken_ip/broken_ip6-plen | 3 +-
.../network/stress/broken_ip/broken_ip6-version | 3 +-
testcases/network/stress/dns/dns-stress | 3 +-
testcases/network/stress/ftp/ftp-download-stress | 3 +-
testcases/network/stress/ftp/ftp-upload-stress | 3 +-
testcases/network/stress/http/http-stress | 3 +-
testcases/network/stress/interface/if4-addr-change | 3 +-
testcases/network/stress/ipsec/ipsec_lib.sh | 3 +-
.../network/stress/ns-tools/test_net_stress.sh | 5 +-
testcases/network/stress/ssh/ssh-stress | 3 +-
testcases/network/tcp_cmds/arping/arping01.sh | 3 +-
.../network/tcp_cmds/clockdiff/clockdiff01.sh | 3 +-
testcases/network/tcp_cmds/ipneigh/ipneigh01.sh | 3 +-
testcases/network/tcp_cmds/ping/ping01.sh | 3 +-
testcases/network/tcp_cmds/ping/ping02.sh | 3 +-
testcases/network/tcp_cmds/rlogin/rlogin01 | 3 +-
testcases/network/tcp_cmds/sendfile/sendfile01 | 3 +-
testcases/network/tcp_cmds/tcpdump/tcpdump01 | 3 +-
testcases/network/tcp_cmds/telnet/telnet01 | 3 +-
.../network/tcp_cmds/tracepath/tracepath01.sh | 3 +-
testcases/network/tcp_fastopen/tcp_fastopen_run.sh | 3 +-
testcases/network/traceroute/traceroute01.sh | 3 +-
testcases/network/virt/geneve01.sh | 3 +-
testcases/network/virt/gre01.sh | 3 +-
testcases/network/virt/ipvlan01.sh | 3 +-
testcases/network/virt/macvlan01.sh | 3 +-
testcases/network/virt/macvtap01.sh | 3 +-
testcases/network/virt/vlan01.sh | 3 +-
testcases/network/virt/vlan02.sh | 3 +-
testcases/network/virt/vlan03.sh | 3 +-
testcases/network/virt/vxlan01.sh | 3 +-
testcases/network/virt/vxlan02.sh | 3 +-
testcases/network/virt/vxlan03.sh | 3 +-
testcases/network/xinetd/xinetd_tests.sh | 3 +-
testscripts/network.sh | 6 +-
75 files changed, 233 insertions(+), 128 deletions(-)
rename testcases/lib/{test_net.sh => tst_net.sh} (87%)testcases/lib/tst_net.sh renamed from testcases/lib/test_net.sh +84 -51
@@ -1,6 +1,6 @@ #!/bin/sh # Copyright (c) 2014-2017 Oracle and/or its affiliates. All Rights Reserved. -# Copyright (c) 2016-2017 Petr Vorel <[email protected]> +# Copyright (c) 2016-2018 Petr Vorel <[email protected]> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as
@@ -19,12 +19,62 @@ # Author: Alexey Kodanev <[email protected]> # -[ -z "$TST_LIB_LOADED" ] && . test.sh +TST_OPTS=":6" +TST_PARSE_ARGS=parse_args +TST_USAGE=usage + +# Blank for an IPV4 test; 6 for an IPV6 test. +TST_IPV6= + +parse_args() +{ + case $1 in + 6) TST_IPV6=6;; + esac +} + +tst_read_opts() +{ + local OPTIND + while getopts "$TST_OPTS" opt; do + $TST_PARSE_ARGS "$opt" + done +} + +usage() +{ + cat << EOF +usage: $0 [-6] + +OPTIONS +-6 Use IPv6 +EOF +} + +if [ -z "$TST_LIB_LOADED" ]; then + [ -n "$TST_USE_LEGACY_API" ] && . test.sh || . tst_test.sh +fi + +[ -n "$TST_USE_LEGACY_API" ] && tst_read_opts $* + +# old vs. new API compatibility layer +tst_res_() +{ + [ -z "$TST_USE_LEGACY_API" ] && tst_res $@ || tst_resm $@ +} +tst_brk_() +{ + [ -z "$TST_USE_LEGACY_API" ] && tst_brk $@ || tst_brkm $@ +} +tst_require_root_() +{ + [ -z "$TST_USE_LEGACY_API" ] && TST_NEEDS_ROOT=1 || tst_require_root +} init_ltp_netspace() { tst_check_cmds ip - tst_require_root + tst_require_root_ local pid=
@@ -81,7 +131,7 @@ tst_rhost_run() s) safe=1 ;; c) cmd="$OPTARG" ;; u) user="$OPTARG" ;; - *) tst_brkm TBROK "tst_rhost_run: unknown option: $OPTARG" ;; + *) tst_brk_ TBROK "tst_rhost_run: unknown option: $OPTARG" ;; esac done
@@ -89,8 +139,8 @@ tst_rhost_run() if [ -z "$cmd" ]; then [ "$safe" -eq 1 ] && \ - tst_brkm TBROK "tst_rhost_run: command not defined" - tst_resm TWARN "tst_rhost_run: command not defined" + tst_brk_ TBROK "tst_rhost_run: command not defined" + tst_res_ TWARN "tst_rhost_run: command not defined" return 1 fi
@@ -110,7 +160,7 @@ tst_rhost_run() if [ $ret -eq 1 ]; then output=$(echo "$output" | sed 's/RTERR//') [ "$safe" -eq 1 ] && \ - tst_brkm TBROK "'$cmd' failed on '$RHOST': '$output'" + tst_brk_ TBROK "'$cmd' failed on '$RHOST': '$output'" fi [ -z "$out" -a -n "$output" ] && echo "$output"
@@ -122,9 +172,9 @@ EXPECT_RHOST_PASS() { tst_rhost_run -c "$*" > /dev/null if [ $? -eq 0 ]; then - tst_resm TPASS "$* passed as expected" + tst_res_ TPASS "$* passed as expected" else - tst_resm TFAIL "$* failed unexpectedly" + tst_res_ TFAIL "$* failed unexpectedly" fi }
@@ -132,9 +182,9 @@ EXPECT_RHOST_FAIL() { tst_rhost_run -c "$* 2> /dev/null" if [ $? -ne 0 ]; then - tst_resm TPASS "$* failed as expected" + tst_res_ TPASS "$* failed as expected" else - tst_resm TFAIL "$* passed unexpectedly" + tst_res_ TFAIL "$* passed unexpectedly" fi }
@@ -200,23 +250,6 @@ tst_iface() echo "$(tst_get_ifaces $type)" | awk '{ print $'"$link_num"' }' } -# Blank for an IPV4 test; 6 for an IPV6 test. -TST_IPV6= - -tst_read_opts() -{ - OPTIND=0 - while getopts ":6" opt; do - case "$opt" in - 6) - TST_IPV6=6;; - esac - done - OPTIND=0 -} - -tst_read_opts $* - # Get IP address # tst_ipaddr [TYPE] # TYPE: { lhost | rhost }; Default value is 'lhost'.
@@ -302,7 +335,7 @@ tst_init_iface() local type="${1:-lhost}" local link_num="${2:-0}" local iface="$(tst_iface $type $link_num)" - tst_resm TINFO "initialize '$type' '$iface' interface" + tst_res_ TINFO "initialize '$type' '$iface' interface" if [ "$type" = "lhost" ]; then ip xfrm policy flush || return $?
@@ -340,12 +373,12 @@ tst_add_ipaddr() local iface=$(tst_iface $type $link_num) if [ $type = "lhost" ]; then - tst_resm TINFO "set local addr $(tst_ipaddr)/$mask" + tst_res_ TINFO "set local addr $(tst_ipaddr)/$mask" ip addr add $(tst_ipaddr)/$mask dev $iface return $? fi - tst_resm TINFO "set remote addr $(tst_ipaddr rhost)/$mask" + tst_res_ TINFO "set remote addr $(tst_ipaddr rhost)/$mask" tst_rhost_run -c "ip addr add $(tst_ipaddr rhost)/$mask dev $iface" }
@@ -356,7 +389,7 @@ tst_add_ipaddr() tst_restore_ipaddr() { tst_check_cmds ip - tst_require_root + tst_require_root_ local type="${1:-lhost}" local link_num="${2:-0}"
@@ -390,7 +423,7 @@ tst_wait_ipv6_dad() [ $ret -ne 0 -a $? -ne 0 ] && return [ $(($i % 10)) -eq 0 ] && \ - tst_resm TINFO "wait for IPv6 DAD completion $((i / 10))/5 sec" + tst_res_ TINFO "wait for IPv6 DAD completion $((i / 10))/5 sec" tst_sleep 100ms done
@@ -443,7 +476,7 @@ tst_netload() f) cs_opts="${cs_opts}-f " ;; F) cs_opts="${cs_opts}-F " ;; e) expect_res="$OPTARG" ;; - *) tst_brkm TBROK "tst_netload: unknown option: $OPTARG" ;; + *) tst_brk_ TBROK "tst_netload: unknown option: $OPTARG" ;; esac done OPTIND=0
@@ -455,37 +488,37 @@ tst_netload() tst_rhost_run -c "pkill -9 netstress\$" s_opts="${cs_opts}${s_opts}-R $s_replies -B $TST_TMPDIR" - tst_resm TINFO "run server 'netstress $s_opts'" + tst_res_ TINFO "run server 'netstress $s_opts'" tst_rhost_run -c "netstress $s_opts" > tst_netload.log 2>&1 if [ $? -ne 0 ]; then cat tst_netload.log local ttype="TFAIL" grep -e 'CONF:' tst_netload.log && ttype="TCONF" - tst_brkm $ttype "server failed" + tst_brk_ $ttype "server failed" fi local port=$(tst_rhost_run -s -c "cat $TST_TMPDIR/netstress_port") c_opts="${cs_opts}${c_opts}-a $c_num -r $c_requests -d $rfile -g $port" - tst_resm TINFO "run client 'netstress -l $c_opts'" + tst_res_ TINFO "run client 'netstress -l $c_opts'" netstress -l $c_opts > tst_netload.log 2>&1 || ret=1 tst_rhost_run -c "pkill -9 netstress\$" if [ "$expect_ret" -ne "$ret" ]; then tst_dump_rhost_cmd cat tst_netload.log - tst_brkm TFAIL "expected '$expect_res' but ret: '$ret'" + tst_brk_ TFAIL "expected '$expect_res' but ret: '$ret'" fi if [ "$ret" -eq 0 ]; then if [ ! -f $rfile ]; then tst_dump_rhost_cmd cat tst_netload.log - tst_brkm TFAIL "can't read $rfile" + tst_brk_ TFAIL "can't read $rfile" fi - tst_resm TPASS "netstress passed, time spent '$(cat $rfile)' ms" + tst_res_ TPASS "netstress passed, time spent '$(cat $rfile)' ms" else - tst_resm TPASS "netstress failed as expected" + tst_res_ TPASS "netstress failed as expected" fi return $ret
@@ -516,9 +549,9 @@ tst_ping() -s $size -i 0 > /dev/null 2>&1 ret=$? if [ $ret -eq 0 ]; then - tst_resm TPASS "$msg $size: pass" + tst_res_ TPASS "$msg $size: pass" else - tst_resm TFAIL "$msg $size: fail" + tst_res_ TFAIL "$msg $size: fail" break fi done
@@ -558,9 +591,9 @@ tst_icmp() ns-icmpv${ver}_sender -s $size $opts ret=$? if [ $ret -eq 0 ]; then - tst_resm TPASS "'ns-icmpv${ver}_sender -s $size $opts' pass" + tst_res_ TPASS "'ns-icmpv${ver}_sender -s $size $opts' pass" else - tst_resm TFAIL "'ns-icmpv${ver}_sender -s $size $opts' fail" + tst_res_ TFAIL "'ns-icmpv${ver}_sender -s $size $opts' fail" break fi done
@@ -597,7 +630,7 @@ tst_cleanup_rhost() [ -z "$RHOST" ] && TST_USE_NETNS="yes" export RHOST="$RHOST" export PASSWD="${PASSWD:-}" -# Don't use it in new tests, use tst_rhost_run() from test_net.sh instead. +# Don't use it in new tests, use tst_rhost_run() from tst_net.sh instead. export LTP_RSH="${LTP_RSH:-rsh -n}" # Test Links
@@ -644,10 +677,10 @@ if [ -z "$TST_PARSE_VARIABLES" ]; then eval $(tst_net_vars $IPV6_LHOST/$IPV6_LPREFIX \ $IPV6_RHOST/$IPV6_RPREFIX || echo "exit $?") - tst_resm TINFO "Network config (local -- remote):" - tst_resm TINFO "$LHOST_IFACES -- $RHOST_IFACES" - tst_resm TINFO "$IPV4_LHOST/$IPV4_LPREFIX -- $IPV4_RHOST/$IPV4_RPREFIX" - tst_resm TINFO "$IPV6_LHOST/$IPV6_LPREFIX -- $IPV6_RHOST/$IPV6_RPREFIX" + tst_res_ TINFO "Network config (local -- remote):" + tst_res_ TINFO "$LHOST_IFACES -- $RHOST_IFACES" + tst_res_ TINFO "$IPV4_LHOST/$IPV4_LPREFIX -- $IPV4_RHOST/$IPV4_RPREFIX" + tst_res_ TINFO "$IPV6_LHOST/$IPV6_LPREFIX -- $IPV6_RHOST/$IPV6_RPREFIX" export TST_PARSE_VARIABLES="yes" fi
@@ -687,7 +720,7 @@ export RHOST_HWADDRS="${RHOST_HWADDRS:-$(tst_get_hwaddrs rhost)}" # in the following document: testcases/network/stress/README if [ "$TST_NEEDS_TMPDIR" = 1 ]; then - tst_tmpdir + [ -n "$TST_USE_LEGACY_API" ] && tst_tmpdir tst_rhost_run -c "mkdir -p $TST_TMPDIR" tst_rhost_run -c "chmod 777 $TST_TMPDIR" export TST_TMPDIR_RHOST=1
testcases/lib/tst_test.sh +1 -0
@@ -255,6 +255,7 @@ tst_run() OPTS|USAGE|PARSE_ARGS|POS_ARGS);; NEEDS_ROOT|NEEDS_TMPDIR|NEEDS_DEVICE|DEVICE);; NEEDS_CMDS|NEEDS_MODULE|MODPATH|DATAROOT);; + IPV6);; *) tst_res TWARN "Reserved variable TST_$tst_i used!";; esac done
testcases/network/README.md +2 -2
@@ -68,7 +68,7 @@ Testcases and network tools must be in PATH, e.g.: ```sh export PATH=/opt/ltp/testcases/bin:/usr/bin:$PATH ``` -Default values for all LTP network variables are set in testcases/lib/test_net.sh. +Default values for all LTP network variables are set in testcases/lib/tst_net.sh. If you need to override some parameters please export them before test run or specify them when running ltp-pan or testscripts/network.sh.
@@ -79,7 +79,7 @@ To run the test type the following: TEST_VARS ./network.sh OPTIONS ``` Where -* TEST_VARS - non-default network parameters (see testcases/lib/test_net.sh), they +* TEST_VARS - non-default network parameters (see testcases/lib/tst_net.sh), they could be exported before test run; * OPTIONS - test group(s), use '-h' to see available ones.
testcases/network/busy_poll/busy_poll01.sh +2 -1
@@ -21,7 +21,8 @@ TST_TOTAL=1 TCID="busy_poll01" TST_NEEDS_TMPDIR=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . busy_poll_lib.sh cleanup()
testcases/network/busy_poll/busy_poll02.sh +2 -1
@@ -21,7 +21,8 @@ TST_TOTAL=1 TCID="busy_poll02" TST_NEEDS_TMPDIR=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . busy_poll_lib.sh cleanup()
testcases/network/busy_poll/busy_poll03.sh +2 -1
@@ -21,7 +21,8 @@ TST_TOTAL=2 TCID="busy_poll03" TST_NEEDS_TMPDIR=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . busy_poll_lib.sh cleanup()
testcases/network/dccp/dccp01.sh +2 -1
@@ -21,7 +21,8 @@ TST_TOTAL=3 TST_CLEANUP="cleanup" TST_NEEDS_TMPDIR=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh cleanup() {
testcases/network/dctcp/dctcp01.sh +2 -1
@@ -23,7 +23,8 @@ TST_NEEDS_TMPDIR=1 def_alg="cubic" prev_alg= -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh set_cong_alg() {
testcases/network/dhcp/dhcpd_tests.sh +2 -1
@@ -24,7 +24,8 @@ TST_TOTAL=1 TCID="dhcpd" dhcp_name="dhcpd" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . dhcp_lib.sh setup_dhcpd_conf()
testcases/network/dhcp/dnsmasq_tests.sh +2 -1
@@ -22,7 +22,8 @@ TST_TOTAL=1 TCID="dnsmasq" dhcp_name="dnsmasq" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . dhcp_lib.sh start_dhcp()
testcases/network/iproute/ip_tests.sh +2 -1
@@ -24,7 +24,8 @@ TST_CLEANUP=cleanup TST_TOTAL=6 TCID="ip_tests" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh rm_dummy=
testcases/network/multicast/mc_cmds/mc_cmds +2 -1
@@ -29,7 +29,8 @@ TCID=mc_cmds TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh knob="net.ipv4.icmp_echo_ignore_broadcasts" knob_changed=
testcases/network/multicast/mc_commo/mc_commo +2 -1
@@ -31,7 +31,8 @@ OUTFILE=mc_commo_out TCID=mc_commo TST_TOTAL=2 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_setup() {
testcases/network/multicast/mc_member/mc_member +2 -1
@@ -33,7 +33,8 @@ TCID=mc_member TST_TOTAL=1 TST_COUNT=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh setup() {
testcases/network/multicast/mc_opts/mc_opts +2 -1
@@ -32,7 +32,8 @@ EXECUTABLES=${EXECUTABLES:-"mc_verify_opts mc_verify_opts_error"} TCID=mc_opts TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh COUNT=1 while [ $COUNT -le 10 ]; do
testcases/network/nfs/fsx-linux/fsx.sh +2 -1
@@ -26,7 +26,8 @@ TST_TOTAL=1 TST_CLEANUP="nfs_cleanup" . nfs_lib.sh -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_test() {
testcases/network/nfs/nfs_stress/nfs01 +2 -1
@@ -25,7 +25,8 @@ TST_TOTAL=1 TST_CLEANUP="nfs_cleanup" . nfs_lib.sh -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_test() {
testcases/network/nfs/nfs_stress/nfs02 +2 -1
@@ -25,7 +25,8 @@ TST_TOTAL=3 TST_CLEANUP="nfs_cleanup" . nfs_lib.sh -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_test1() {
testcases/network/nfs/nfs_stress/nfs03 +2 -1
@@ -25,7 +25,8 @@ TST_TOTAL=1 TST_CLEANUP="nfs03_cleanup" . nfs_lib.sh -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh DIR_NUM=${DIR_NUM:-"100"} FILE_NUM=${FILE_NUM:-"100"}
testcases/network/nfs/nfs_stress/nfs04 +2 -1
@@ -28,7 +28,8 @@ TST_TOTAL=1 TST_CLEANUP="nfs_cleanup" . nfs_lib.sh -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh nfs_setup
testcases/network/nfs/nfs_stress/nfs05 +2 -1
@@ -29,7 +29,8 @@ FILE_NUM=${FILE_NUM:-"50"} THREAD_NUM=${THREAD_NUM:-"8"} . nfs_lib.sh -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_check_cmds make gcc
testcases/network/nfs/nfs_stress/nfs06 +2 -1
@@ -25,7 +25,8 @@ TST_TOTAL=1 TST_CLEANUP="nfs_cleanup" . nfs_lib.sh -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_test() {
testcases/network/nfs/nfslock01/nfslock01 +2 -1
@@ -26,7 +26,8 @@ TST_TOTAL=1 TST_CLEANUP="nfs_cleanup" . nfs_lib.sh -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh LUSER=${LUSER:=root}
testcases/network/nfs/nfsstat01/nfsstat01 +2 -1
@@ -22,7 +22,8 @@ TST_TOTAL=4 TST_CLEANUP="nfs_cleanup" . nfs_lib.sh -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh setup() {
testcases/network/rpc/basic_tests/rpc01/rpc01 +2 -1
@@ -19,7 +19,8 @@ TCID="rpc01" TST_TOTAL=6 TST_CLEANUP=do_cleanup -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh NUMLOOPS=${NUMLOOPS:=3} DATAFILES=${DATAFILES:="file.1 file.2"}
testcases/network/rpc/basic_tests/rpcinfo/rpcinfo01 +2 -1
@@ -19,7 +19,8 @@ TCID="rpcinfo01" TST_TOTAL=16 TST_CLEANUP=tst_rmdir -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_setup() {
testcases/network/rpc/basic_tests/rup/rup01 +2 -1
@@ -18,7 +18,8 @@ TCID="rup01" TST_TOTAL=7 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_setup() {
testcases/network/rpc/basic_tests/rusers/rusers01 +2 -1
@@ -18,7 +18,8 @@ TCID="rusers01" TST_TOTAL=5 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_setup() {
testcases/network/rpc/rpc-tirpc/rpc_test.sh +2 -1
@@ -82,7 +82,8 @@ TST_TOTAL=1 TST_COUNT=1 TST_CLEANUP=cleanup -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh if [ ! -z "$SERVER" ]; then $SERVER $PROGNUMNOSVC &
testcases/network/sctp/sctp01.sh +2 -1
@@ -21,7 +21,8 @@ TST_TOTAL=4 TST_CLEANUP="cleanup" TST_NEEDS_TMPDIR=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh cleanup() {
testcases/network/sockets/bind_noport01.sh +2 -1
@@ -18,7 +18,8 @@ TST_TOTAL=1 TCID="bind_noport" TST_NEEDS_TMPDIR=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh cleanup() {
testcases/network/stress/broken_ip/broken_ip4-checksum +2 -1
@@ -21,7 +21,8 @@ TCID=broken_ip4-checksum01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_resm TINFO "Sending ICMPv4 with wrong chksum field for $NS_DURATION sec"
testcases/network/stress/broken_ip/broken_ip4-dstaddr +2 -1
@@ -21,7 +21,8 @@ TCID=broken_ip4-dstaddr01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_resm TINFO "Sending ICMPv4 with wrong dst address for $NS_DURATION sec"
testcases/network/stress/broken_ip/broken_ip4-fragment +2 -1
@@ -21,7 +21,8 @@ TCID=broken_ip4-fragment01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_resm TINFO "Sending ICMPv4 with wrong frag. info for $NS_DURATION sec"
testcases/network/stress/broken_ip/broken_ip4-ihl +2 -1
@@ -21,7 +21,8 @@ TCID=broken_ip4-ihl01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_resm TINFO "Sending ICMPv4 with wrong header len field for $NS_DURATION sec"
testcases/network/stress/broken_ip/broken_ip4-protcol +2 -1
@@ -21,7 +21,8 @@ TCID=broken_ip4-protocol01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_resm TINFO "Sending ICMPv4 with wrong proto field for $NS_DURATION sec"
testcases/network/stress/broken_ip/broken_ip4-totlen +2 -1
@@ -21,7 +21,8 @@ TCID=broken_ip4-totlen01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_resm TINFO "Sending ICMPv4 with wrong total len field for $NS_DURATION sec"
testcases/network/stress/broken_ip/broken_ip4-version +2 -1
@@ -21,7 +21,8 @@ TCID=broken_ip4-version01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_resm TINFO "Sending ICMPv4 with wrong version field for $NS_DURATION sec"
testcases/network/stress/broken_ip/broken_ip6-dstaddr +2 -1
@@ -21,7 +21,8 @@ TCID=broken_ip6-dstaddr01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_resm TINFO "Sending ICMPv6 with wrong dst address for $NS_DURATION sec"
testcases/network/stress/broken_ip/broken_ip6-nexthdr +2 -1
@@ -21,7 +21,8 @@ TCID=broken_ip6-nexthdr01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_resm TINFO "Sending ICMPv4 with wrong next header for $NS_DURATION sec"
testcases/network/stress/broken_ip/broken_ip6-plen +2 -1
@@ -21,7 +21,8 @@ TCID=broken_ip6-plen01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_resm TINFO "Sending ICMPv4 with wrong payload len for $NS_DURATION sec"
testcases/network/stress/broken_ip/broken_ip6-version +2 -1
@@ -21,7 +21,8 @@ TCID=broken_ip6-version01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_resm TINFO "Sending ICMPv6 with wrong version field for $NS_DURATION sec"
testcases/network/stress/dns/dns-stress +2 -1
@@ -22,7 +22,8 @@ TCID=dns-stress TST_TOTAL=2 TST_CLEANUP="cleanup" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh # Minimum host ID in the zone file. # The ID is used as the host portion of the address
testcases/network/stress/ftp/ftp-download-stress +2 -1
@@ -23,7 +23,8 @@ TCID=ftp-download-stress TST_TOTAL=2 TST_CLEANUP="cleanup" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh # Big file size to upload/download in ftp tests (byte) DOWNLOAD_BIGFILESIZE=${DOWNLOAD_BIGFILESIZE:-2147483647}
testcases/network/stress/ftp/ftp-upload-stress +2 -1
@@ -23,7 +23,8 @@ TCID=ftp-upload-stress TST_TOTAL=2 TST_CLEANUP="cleanup" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh # Big file size to upload (byte) UPLOAD_BIGFILESIZE=${UPLOAD_BIGFILESIZE:-2147483647} # 2GB - 1
testcases/network/stress/http/http-stress +2 -1
@@ -23,7 +23,8 @@ TCID=http-stress TST_TOTAL=2 TST_CLEANUP="cleanup" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh cleanup() {
testcases/network/stress/interface/if4-addr-change +2 -1
@@ -21,7 +21,8 @@ TST_TOTAL=1 TCID=if4-addr-change TST_CLEANUP="do_cleanup" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh CHECK_INTERVAL=${CHECK_INTERVAL:-$(($NS_TIMES / 20))} # Maximum host portion of the IPv4 address on the local host
testcases/network/stress/ipsec/ipsec_lib.sh +2 -1
@@ -19,7 +19,8 @@ # ####################################################################### -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh # Authenticated encryption with associated data AEALGO="rfc4106_128"
testcases/network/stress/ns-tools/test_net_stress.sh +3 -2
@@ -21,11 +21,12 @@ # # Library for all network/stress/ tests. # NOTE: More information about network variables can be found -# in test_net.sh and testcases/network/stress/README. +# in tst_net.sh and testcases/network/stress/README. export TCID="${TCID:-$(basename $0)}" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh ipver=${TST_IPV6:-4}
testcases/network/stress/ssh/ssh-stress +2 -1
@@ -24,7 +24,8 @@ TCID=ssh-stress TST_TOTAL=3 TST_CLEANUP="cleanup" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh # Temporary directory to store sshd setting or ssh key # Note: ssh doesn't work when those directory is under /tmp.
testcases/network/tcp_cmds/arping/arping01.sh +2 -1
@@ -18,7 +18,8 @@ TCID=arping01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_require_root tst_check_cmds arping
testcases/network/tcp_cmds/clockdiff/clockdiff01.sh +2 -1
@@ -18,7 +18,8 @@ TCID=clockdiff01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh tst_require_root tst_check_cmds cut clockdiff
testcases/network/tcp_cmds/ipneigh/ipneigh01.sh +2 -1
@@ -19,7 +19,8 @@ TCID=ipneigh01 NUMLOOPS=${NUMLOOPS:-50} TST_TOTAL=2 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_setup() {
testcases/network/tcp_cmds/ping/ping01.sh +2 -1
@@ -28,7 +28,8 @@ TST_TOTAL=10 TCID="ping01" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_setup() {
testcases/network/tcp_cmds/ping/ping02.sh +2 -1
@@ -17,7 +17,8 @@ TST_TOTAL=10 TCID="ping02" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_setup() {
testcases/network/tcp_cmds/rlogin/rlogin01 +2 -1
@@ -20,7 +20,8 @@ TCID="rlogin01" TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh setup() {
testcases/network/tcp_cmds/sendfile/sendfile01 +2 -1
@@ -102,7 +102,8 @@ do_cleanup() tst_rmdir } -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_setup do_test
testcases/network/tcp_cmds/tcpdump/tcpdump01 +2 -1
@@ -64,7 +64,8 @@ do_cleanup() tst_rmdir } -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh do_setup do_test
testcases/network/tcp_cmds/telnet/telnet01 +2 -1
@@ -20,7 +20,8 @@ TCID="telnet01" TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh setup() {
testcases/network/tcp_cmds/tracepath/tracepath01.sh +2 -1
@@ -18,7 +18,8 @@ TCID=tracepath01 TST_TOTAL=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh test_tracepath() {
testcases/network/tcp_fastopen/tcp_fastopen_run.sh +2 -1
@@ -23,7 +23,8 @@ TST_TOTAL=1 TCID="tcp_fastopen" TST_NEEDS_TMPDIR=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh while getopts :hr:n:R:6 opt; do case "$opt" in
testcases/network/traceroute/traceroute01.sh +2 -1
@@ -19,7 +19,8 @@ TST_TOTAL=6 TCID="traceroute01" TST_CLEANUP="cleanup" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh cleanup() {
testcases/network/virt/geneve01.sh +2 -1
@@ -27,7 +27,8 @@ start_id=16700000 # that is why using here 'vxlan_*' library functions. vxlan_dst_addr="uni" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . virt_lib.sh VIRT_PERF_THRESHOLD=${VIRT_PERF_THRESHOLD:-160}
testcases/network/virt/gre01.sh +2 -1
@@ -24,7 +24,8 @@ TCID=gre01 TST_TOTAL=1 TST_NEEDS_TMPDIR=1 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh virt_type="gre" [ "$TST_IPV6" ] && virt_type="ip6gre"
testcases/network/virt/ipvlan01.sh +2 -1
@@ -24,7 +24,8 @@ TST_TOTAL=2 virt_type="ipvlan" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . virt_lib.sh options="mode l2,mode l3"
testcases/network/virt/macvlan01.sh +2 -1
@@ -24,7 +24,8 @@ TST_TOTAL=4 virt_type="macvlan" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . virt_lib.sh options="mode private,mode vepa,mode bridge,mode passthru"
testcases/network/virt/macvtap01.sh +2 -1
@@ -24,7 +24,8 @@ TST_TOTAL=4 virt_type="macvtap" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . virt_lib.sh options="mode private,mode vepa,mode bridge,mode passthru"
testcases/network/virt/vlan01.sh +2 -1
@@ -24,7 +24,8 @@ TST_TOTAL=9 virt_type="vlan" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . virt_lib.sh p0="protocol 802.1Q"
testcases/network/virt/vlan02.sh +2 -1
@@ -25,7 +25,8 @@ TST_TOTAL=1 virt_type="vlan" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . virt_lib.sh virt_add_delete_test "id 4094"
testcases/network/virt/vlan03.sh +2 -1
@@ -29,7 +29,8 @@ TST_NEEDS_TMPDIR=1 virt_type="vlan" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . virt_lib.sh TST_CLEANUP="virt_cleanup"
testcases/network/virt/vxlan01.sh +2 -1
@@ -25,7 +25,8 @@ TST_TOTAL=5 virt_type="vxlan" start_id=16700000 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . virt_lib.sh options="l2miss l3miss,norsc nolearning noproxy,\
testcases/network/virt/vxlan02.sh +2 -1
@@ -26,7 +26,8 @@ TST_TOTAL=1 virt_type="vxlan" start_id=16700000 -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . virt_lib.sh [ "$TST_IPV6" ] && mult_addr="ff02::abc" || mult_addr="239.1.1.1"
testcases/network/virt/vxlan03.sh +2 -1
@@ -33,7 +33,8 @@ start_id=16700000 # Destination address, can be unicast or multicast address vxlan_dst_addr="uni" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh . virt_lib.sh # In average cases (with small packets less then 150 bytes) VxLAN slower
testcases/network/xinetd/xinetd_tests.sh +2 -1
@@ -20,7 +20,8 @@ TST_TOTAL=2 TST_CLEANUP="cleanup" . daemonlib.sh -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh setup() {
testscripts/network.sh +3 -3
@@ -88,12 +88,12 @@ fi TST_TOTAL=1 TCID="network_settings" -. test_net.sh +TST_USE_LEGACY_API=1 +. tst_net.sh # Reset variables. # Don't break the tests which are using 'testcases/lib/cmdlib.sh' -export TCID= -export TST_LIB_LOADED= +unset TCID TST_LIB_LOADED TST_USE_LEGACY_API rm -f $CMDFILE
Signature · 1 line
2.16.2
RFC PATCH v3 1/5 tst_net.sh: Support both old and new shell APIs + rename it
Quoted 4 lines · Petr Vorel
The new name states that library supports new API.
This is temporary solution, after migrating all tests to new SHELL API the compatibility layer and old SHELL API support should be removed.
...
Quoted 22 lines
-[ -z "$TST_LIB_LOADED" ] && .
test.shtestcases/lib/tst_net.sh renamed from testcases/lib/test_net.sh +21
-0+TST_OPTS=":6" +TST_PARSE_ARGS=parse_args +TST_USAGE=usage + +# Blank for an IPV4 test; 6 for an IPV6 test. +TST_IPV6= + +parse_args() +{ + case $1 in + 6) TST_IPV6=6;; + esac +} + +tst_read_opts() +{ + local OPTIND + while getopts "$TST_OPTS" opt; do + $TST_PARSE_ARGS "$opt" + done +}
testcases/lib/tst_net.sh line 52
Quoted 10 lines
testcases/lib/tst_net.sh renamed from testcases/lib/test_net.sh +10
-0+ +usage() +{ + cat << EOF +usage: $0 [-6] + +OPTIONS +-6 Use IPv6 +EOF +}
Could we rename it to tst_net_usage() or similar (for parse_arg() as well) since it is a library, and use the indent with echo, that way it would be more readable.
Otherwise the patch looks good!
RFC PATCH v3 2/5 tst_test.sh: Introduce TST_NO_DEFAULT_RUN
In reply to Petr VorelTST_NO_DEFAULT_RUN is somehow similar to TST_NO_DEFAULT_MAIN. It's meant to be used for libraries and tools using tst_test.sh. It helps to use part of test framework functionality without wanting to run test.
--- testcases/lib/tst_test.sh | 100 +++++++++++++++++++++++----------------------- 1 file changed, 51 insertions(+), 49 deletions(-)
testcases/lib/tst_test.sh +51 -49
@@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (c) Linux Test Project, 2014-2017 +# Copyright (c) Linux Test Project, 2014-2018 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by
@@ -371,67 +371,69 @@ tst_run() tst_do_exit } -if TST_TEST_PATH=$(which $0) 2>/dev/null; then - if ! grep -q tst_run "$TST_TEST_PATH"; then - tst_brk TBROK "Test $0 must call tst_run!" +if [ -z "$TST_NO_DEFAULT_RUN" ]; then + if TST_TEST_PATH=$(which $0) 2>/dev/null; then + if ! grep -q tst_run "$TST_TEST_PATH"; then + tst_brk TBROK "Test $0 must call tst_run!" + fi fi -fi - -if [ -z "$TST_ID" ]; then - filename=$(basename $0) - TST_ID=${filename%%.*} -fi -export TST_ID="$TST_ID" - -if [ -z "$TST_TESTFUNC" ]; then - tst_brk TBROK "TST_TESTFUNC is not defined" -fi -if [ -n "$TST_CNT" ]; then - if ! tst_is_int "$TST_CNT"; then - tst_brk TBROK "TST_CNT must be integer" + if [ -z "$TST_ID" ]; then + filename=$(basename $0) + TST_ID=${filename%%.*} fi + export TST_ID="$TST_ID" - if [ "$TST_CNT" -le 0 ]; then - tst_brk TBROK "TST_CNT must be > 0" + if [ -z "$TST_TESTFUNC" ]; then + tst_brk TBROK "TST_TESTFUNC is not defined" fi -fi -if [ -n "$TST_POS_ARGS" ]; then - if ! tst_is_int "$TST_POS_ARGS"; then - tst_brk TBROK "TST_POS_ARGS must be integer" + if [ -n "$TST_CNT" ]; then + if ! tst_is_int "$TST_CNT"; then + tst_brk TBROK "TST_CNT must be integer" + fi + + if [ "$TST_CNT" -le 0 ]; then + tst_brk TBROK "TST_CNT must be > 0" + fi fi - if [ "$TST_POS_ARGS" -le 0 ]; then - tst_brk TBROK "TST_POS_ARGS must be > 0" + if [ -n "$TST_POS_ARGS" ]; then + if ! tst_is_int "$TST_POS_ARGS"; then + tst_brk TBROK "TST_POS_ARGS must be integer" + fi + + if [ "$TST_POS_ARGS" -le 0 ]; then + tst_brk TBROK "TST_POS_ARGS must be > 0" + fi fi -fi -if [ -z "$LTPROOT" ]; then - export LTPROOT="$PWD" - export TST_DATAROOT="$LTPROOT/datafiles" -else - export TST_DATAROOT="$LTPROOT/testcases/data/$TST_ID" -fi + if [ -z "$LTPROOT" ]; then + export LTPROOT="$PWD" + export TST_DATAROOT="$LTPROOT/datafiles" + else + export TST_DATAROOT="$LTPROOT/testcases/data/$TST_ID" + fi -TST_ARGS="$@" + TST_ARGS="$@" -while getopts ":hi:$TST_OPTS" tst_name; do - case $tst_name in - 'h') TST_PRINT_HELP=1;; - *);; - esac -done + while getopts ":hi:$TST_OPTS" tst_name; do + case $tst_name in + 'h') TST_PRINT_HELP=1;; + *);; + esac + done -shift $((OPTIND - 1)) + shift $((OPTIND - 1)) -if [ -n "$TST_POS_ARGS" ]; then - if [ -z "$TST_PRINT_HELP" -a $# -ne "$TST_POS_ARGS" ]; then - tst_brk TBROK "Invalid number of positional paramters:"\ - "have ($@) $#, expected ${TST_POS_ARGS}" - fi -else - if [ -z "$TST_PRINT_HELP" -a $# -ne 0 ]; then - tst_brk TBROK "Unexpected positional arguments '$@'" + if [ -n "$TST_POS_ARGS" ]; then + if [ -z "$TST_PRINT_HELP" -a $# -ne "$TST_POS_ARGS" ]; then + tst_brk TBROK "Invalid number of positional paramters:"\ + "have ($@) $#, expected ${TST_POS_ARGS}" + fi + else + if [ -z "$TST_PRINT_HELP" -a $# -ne 0 ]; then + tst_brk TBROK "Unexpected positional arguments '$@'" + fi fi fi
Signature · 1 line
2.16.2
RFC PATCH v3 2/5 tst_test.sh: Introduce TST_NO_DEFAULT_RUN
Hi!
Quoted 90 lines
TST_NO_DEFAULT_RUNis somehow similar toTST_NO_DEFAULT_MAIN. It's meant to be used for libraries and tools usingtst_test.sh. It helps to use part of test framework functionality without wanting to run test.Signed-off-by Petr Vorel <[email protected]>--- testcases/lib/tst_test.sh | 100 +++++++++++++++++++++++----------------------- 1 file changed, 51 insertions(+), 49 deletions(-)testcases/lib/tst_test.sh +28
-29@@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (c) Linux Test Project, 2014-2017 +# Copyright (c) Linux Test Project, 2014-2018 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by@@ -371,67 +371,69 @@ tst_run() tst_do_exit } -if TST_TEST_PATH=$(which $0) 2>/dev/null; then - if ! grep -q tst_run "$TST_TEST_PATH"; then - tst_brk TBROK "Test $0 must call tst_run!" +if [ -z "$TST_NO_DEFAULT_RUN" ]; then + if TST_TEST_PATH=$(which $0) 2>/dev/null; then + if ! grep -q tst_run "$TST_TEST_PATH"; then + tst_brk TBROK "Test $0 must call tst_run!" + fi fi -fi - -if [ -z "$TST_ID" ]; then - filename=$(basename $0) - TST_ID=${filename%%.*} -fi -export TST_ID="$TST_ID" - -if [ -z "$TST_TESTFUNC" ]; then - tst_brk TBROK "TST_TESTFUNC is not defined" -fi -if [ -n "$TST_CNT" ]; then - if ! tst_is_int "$TST_CNT"; then - tst_brk TBROK "TST_CNT must be integer" + if [ -z "$TST_ID" ]; then + filename=$(basename $0) + TST_ID=${filename%%.*} fi + export TST_ID="$TST_ID" - if [ "$TST_CNT" -le 0 ]; then - tst_brk TBROK "TST_CNT must be > 0" + if [ -z "$TST_TESTFUNC" ]; then + tst_brk TBROK "TST_TESTFUNC is not defined" fi -fi -if [ -n "$TST_POS_ARGS" ]; then - if ! tst_is_int "$TST_POS_ARGS"; then - tst_brk TBROK "TST_POS_ARGS must be integer" + if [ -n "$TST_CNT" ]; then + if ! tst_is_int "$TST_CNT"; then + tst_brk TBROK "TST_CNT must be integer" + fi + + if [ "$TST_CNT" -le 0 ]; then + tst_brk TBROK "TST_CNT must be > 0" + fi fi - if [ "$TST_POS_ARGS" -le 0 ]; then - tst_brk TBROK "TST_POS_ARGS must be > 0" + if [ -n "$TST_POS_ARGS" ]; then + if ! tst_is_int "$TST_POS_ARGS"; then + tst_brk TBROK "TST_POS_ARGS must be integer" + fi + + if [ "$TST_POS_ARGS" -le 0 ]; then + tst_brk TBROK "TST_POS_ARGS must be > 0" + fi fi -fi -if [ -z "$LTPROOT" ]; then - export LTPROOT="$PWD"
testcases/lib/tst_test.sh tst_run() · line 416
Quoted 10 lines
testcases/lib/tst_test.sh +6
-4- export TST_DATAROOT="$LTPROOT/datafiles" -else - export TST_DATAROOT="$LTPROOT/testcases/data/$TST_ID" -fi + if [ -z "$LTPROOT" ]; then + export LTPROOT="$PWD" + export TST_DATAROOT="$LTPROOT/datafiles" + else + export TST_DATAROOT="$LTPROOT/testcases/data/$TST_ID" + fi
I guess that we may want to initialize the TST_ID, LTPROOT and TST_DATAROOT regardless, otherwise this looks pretty much straighforward and okay.
Signature · 2 lines
Cyril Hrubis [email protected]
RFC PATCH v3 2/5 tst_test.sh: Introduce TST_NO_DEFAULT_RUN
Hi,
Quoted 8 lines
Quoted 8 lines
testcases/lib/tst_test.sh +2
-6-if [ -z "$LTPROOT" ]; then - export LTPROOT="$PWD" - export TST_DATAROOT="$LTPROOT/datafiles" -else - export TST_DATAROOT="$LTPROOT/testcases/data/$TST_ID" -fi + if [ -z "$LTPROOT" ]; then + export LTPROOT="$PWD"
Quoted 8 lines
testcases/lib/tst_test.sh tst_run() · line 416
Quoted 4 lines
testcases/lib/tst_test.sh +4
-0+ export TST_DATAROOT="$LTPROOT/datafiles" + else + export TST_DATAROOT="$LTPROOT/testcases/data/$TST_ID" + fiI guess that we may want to initialize the
TST_ID, LTPROOT andTST_DATAROOTregardless, otherwise this looks pretty much straighforward and okay.
Thanks for feedback, Cyril!
I'll change it in v4.
Kind regards,
Petr
RFC PATCH v3 3/5 network.sh: Migrate to new shell API
In reply to Petr Vorel--- testscripts/network.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
testscripts/network.sh +1 -1
@@ -88,7 +88,7 @@ fi TST_TOTAL=1 TCID="network_settings" -TST_USE_LEGACY_API=1 +TST_NO_DEFAULT_RUN=1 . tst_net.sh # Reset variables.
Signature · 1 line
2.16.2
RFC PATCH v3 4/5 network/interface: Cleanup if4-addr-change
In reply to Petr VorelWrap test code into function.
This is preparation for next commit.
--- testcases/network/stress/interface/if4-addr-change | 61 ++++++++++++---------- 1 file changed, 34 insertions(+), 27 deletions(-)
testcases/network/stress/interface/if4-addr-change +34 -27
@@ -1,5 +1,6 @@ #!/bin/sh # Copyright (c) 2015-2016 Oracle and/or its affiliates. All Rights Reserved. +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # Copyright (c) International Business Machines Corp., 2005 # # This program is free software; you can redistribute it and/or
@@ -36,42 +37,48 @@ do_cleanup() trap "tst_brkm TBROK 'test interrupted'" INT -tst_check_cmds ifconfig +test_body() +{ + local cnt=0 + local num=1 + local add_to_net= + + tst_resm TINFO "ifconfig changes IPv4 address $NS_TIMES times" -tst_resm TINFO "ifconfig changes IPv4 address $NS_TIMES times" + while [ $cnt -lt $NS_TIMES ]; do + # Define the network portion + num=$(($num + 1)) + [ $num -gt $LHOST_IPV4_HOST_MAX ] && num=1 -cnt=0 -num=1 -while [ $cnt -lt $NS_TIMES ]; do - # Define the network portion - num=$(($num + 1)) - [ $num -gt $LHOST_IPV4_HOST_MAX ] && num=1 + [ $num -eq $RHOST_IPV4_HOST ] && continue - [ $num -eq $RHOST_IPV4_HOST ] && continue + # check prefix and fix values for prefix != 24 + add_to_net= + if [ $IPV4_LPREFIX -lt 8 -o $IPV4_LPREFIX -ge 32 ] ; then + tst_brkm TCONF "test must be with prefix >= 8 and prefix < 32 ($IPV4_LPREFIX)" + elif [ $IPV4_LPREFIX -lt 16 ]; then # N.x.x.num + add_to_net=".0.1" + elif [ $IPV4_LPREFIX -lt 24 ]; then # N.N.x.num + add_to_net=".1" + fi - # check prefix and fix values for prefix != 24 - add_to_net= - if [ $IPV4_LPREFIX -lt 8 -o $IPV4_LPREFIX -ge 32 ] ; then - tst_brkm TCONF "test must be with prefix >= 8 and prefix < 32 ($IPV4_LPREFIX)" - elif [ $IPV4_LPREFIX -lt 16 ]; then # N.x.x.num - add_to_net=".0.1" - elif [ $IPV4_LPREFIX -lt 24 ]; then # N.N.x.num - add_to_net=".1" - fi + # Change IPv4 address + ROD ifconfig $(tst_iface) ${IPV4_LNETWORK}${add_to_net}.${num} netmask \ + $IPV4_LNETMASK broadcast $IPV4_LBROADCAST - # Change IPv4 address - ROD ifconfig $(tst_iface) ${IPV4_LNETWORK}${add_to_net}.${num} netmask \ - $IPV4_LNETMASK broadcast $IPV4_LBROADCAST + cnt=$(($cnt + 1)) - cnt=$(($cnt + 1)) + [ $CHECK_INTERVAL -eq 0 ] && continue + [ $(($cnt % $CHECK_INTERVAL)) -ne 0 ] && continue - [ $CHECK_INTERVAL -eq 0 ] && continue - [ $(($cnt % $CHECK_INTERVAL)) -ne 0 ] && continue + tst_resm TINFO "ping $(tst_ipaddr):$(tst_ipaddr rhost) ${cnt}/$NS_TIMES" + tst_ping + done - tst_resm TINFO "ping $(tst_ipaddr):$(tst_ipaddr rhost) ${cnt}/$NS_TIMES" tst_ping -done +} -tst_ping +tst_check_cmds ifconfig +test_body tst_exit
Signature · 1 line
2.16.2
RFC PATCH v3 5/5 net: Migrate test_net_stress.sh and it's dependencies to new shell API
In reply to Petr Vorel+ rename it to tst_net_stress.sh, The new name states that library supports new API.
---
testcases/network/stress/interface/if-addr-adddel | 33 ++++++++----------
.../network/stress/interface/if-addr-addlarge | 39 ++++++++++------------
testcases/network/stress/interface/if-mtu-change | 26 ++++++---------
testcases/network/stress/interface/if-route-adddel | 29 +++++++---------
.../network/stress/interface/if-route-addlarge | 31 ++++++++---------
testcases/network/stress/interface/if-updown | 29 +++++++---------
testcases/network/stress/interface/if4-addr-change | 24 +++++++------
.../grp-operation/mcast-group-multiple-socket | 16 +++++----
.../multicast/grp-operation/mcast-group-same-group | 17 +++++++---
.../grp-operation/mcast-group-single-socket | 17 +++++++---
.../grp-operation/mcast-group-source-filter | 17 +++++++---
.../stress/multicast/grp-operation/mcast-lib.sh | 17 +++++-----
.../{test_net_stress.sh => tst_net_stress.sh} | 25 +++++++++++---
13 files changed, 165 insertions(+), 155 deletions(-)
rename testcases/network/stress/ns-tools/{test_net_stress.sh => tst_net_stress.sh} (90%)testcases/network/stress/interface/if-addr-adddel +14 -19
@@ -1,5 +1,6 @@ #!/bin/sh # Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved. +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # Copyright (c) International Business Machines Corp., 2005 # # This program is free software; you can redistribute it and/or
@@ -17,11 +18,11 @@ # # Author: Mitsuru Chinen <[email protected]> -TST_TOTAL=2 - +TST_CNT=2 +TST_SETUP="netstress_setup" TST_CLEANUP="netstress_cleanup" - -. test_net_stress.sh +TST_TESTFUNC="test_if_ip" +. tst_net_stress.sh # The interval of the check interface activity CHECK_INTERVAL=${CHECK_INTERVAL:-$(($NS_TIMES / 20))}
@@ -33,7 +34,7 @@ test_body() case $cmd_type in if_cmd) local cmd_name='ifconfig' ;; ip_cmd) local cmd_name='ip' ;; - *) tst_brkm TBROK "Unknown test parameter '$cmd_type'" + *) tst_brk TBROK "Unknown test parameter '$cmd_type'" esac local num=$(($(od -A n -t u1 -N 1 /dev/random) * 253 / 255 + 2 ))
@@ -46,10 +47,10 @@ test_body() local netmask=24 fi - tst_resm TINFO "'$cmd_name' add/del IPv$ipver '$new_ip' $NS_TIMES times" + tst_res TINFO "'$cmd_name' add/del IPv$ipver '$new_ip' $NS_TIMES times" if ! restore_ipaddr; then - tst_resm TBROK "Failed to set default IP addresses" + tst_res TBROK "Failed to set default IP addresses" return fi
@@ -69,14 +70,14 @@ test_body() esac if [ $? -ne 0 ]; then - tst_resm TFAIL "command failed to add $new_ip to $iface" + tst_res TFAIL "command failed to add $new_ip to $iface" return fi ip addr show $iface | grep -q $new_ip if [ $? -ne 0 ]; then ip addr show $iface - tst_resm TFAIL "$new_ip not configured" + tst_res TFAIL "$new_ip not configured" return fi
@@ -96,26 +97,20 @@ test_body() esac if [ $? -ne 0 ]; then - tst_resm TFAIL " delete command failed". + tst_res TFAIL " delete command failed". return fi ip addr show $iface | grep -q $new_ip if [ $? -eq 0 ]; then ip addr show $iface - tst_resm TFAIL "Failed to remove '$new_ip' address" + tst_res TFAIL "Failed to remove '$new_ip' address" return fi done - tst_resm TPASS "Test is finished correctly" + tst_res TPASS "Test is finished correctly" } -netstress_setup - tst_check_cmds ifconfig - -test_body 'if_cmd' -test_body 'ip_cmd' - -tst_exit +tst_run
testcases/network/stress/interface/if-addr-addlarge +17 -22
@@ -1,5 +1,6 @@ #!/bin/sh # Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved. +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # Copyright (c) International Business Machines Corp., 2005 # # This program is free software; you can redistribute it and/or
@@ -17,11 +18,11 @@ # # Author: Mitsuru Chinen <[email protected]> -TST_TOTAL=2 - +TST_CNT=2 +TST_SETUP="netstress_setup" TST_CLEANUP="netstress_cleanup" - -. test_net_stress.sh +TST_TESTFUNC="test_if_ip" +. tst_net_stress.sh # The interval of the check interface activity CHECK_INTERVAL=${CHECK_INTERVAL:-$(($IP_TOTAL / 20))}
@@ -33,17 +34,17 @@ test_body() case $cmd_type in if_cmd) local cmd_name='ifconfig' ;; ip_cmd) local cmd_name='ip' ;; - *) tst_brkm TBROK "Unknown test parameter '$cmd_type'" + *) tst_brk TBROK "Unknown test parameter '$cmd_type'" esac local iface=$(tst_iface) [ "$TST_IPV6" ] && local netmask=64 || local netmask=16 - tst_resm TINFO "'$cmd_name' add $IP_TOTAL IPv$ipver addresses" - tst_resm TINFO "check interval that $iface is working: $CHECK_INTERVAL" + tst_res TINFO "'$cmd_name' add $IP_TOTAL IPv$ipver addresses" + tst_res TINFO "check interval that $iface is working: $CHECK_INTERVAL" if ! restore_ipaddr; then - tst_resm TBROK "Failed to set default IP addresses" + tst_res TBROK "Failed to set default IP addresses" return fi
@@ -54,7 +55,7 @@ test_body() [ "$TST_IPV6" ] && local xymax=65535 || xymax=254 if [ $IP_TOTAL -gt $((xymax * xymax)) ]; then - tst_resm TWARN "set IP_TOTAL to $xymax * $xymax" + tst_res TWARN "set IP_TOTAL to $xymax * $xymax" IP_TOTAL=$((xymax * xymax)) fi
@@ -81,14 +82,14 @@ test_body() esac if [ $? -ne 0 ]; then - tst_resm TFAIL "command failed to add $new_ip to $iface" + tst_res TFAIL "command failed to add $new_ip to $iface" return fi ip addr show $iface | grep -q $new_ip if [ $? -ne 0 ]; then ip addr show $iface - tst_resm TFAIL "$new_ip not configured" + tst_res TFAIL "$new_ip not configured" return fi
@@ -106,14 +107,14 @@ test_body() esac if [ $? -ne 0 ]; then - tst_resm TFAIL " delete command failed". + tst_res TFAIL " delete command failed". return fi ip addr show $iface | grep -q $new_ip if [ $? -eq 0 ]; then ip addr show $iface - tst_resm TFAIL "Failed to remove '$new_ip' address" + tst_res TFAIL "Failed to remove '$new_ip' address" return fi
@@ -123,19 +124,13 @@ test_body() y=1 x=$(($x + 1)) if [ $x -gt $xymax ]; then - tst_brkm TBROK "Too large $IP_TOTAL" + tst_brk TBROK "Too large $IP_TOTAL" fi fi done - tst_resm TPASS "Test is finished correctly" + tst_res TPASS "Test is finished correctly" } -netstress_setup - tst_check_cmds ifconfig - -test_body 'if_cmd' -test_body 'ip_cmd' - -tst_exit +tst_run
testcases/network/stress/interface/if-mtu-change +10 -16
@@ -1,5 +1,6 @@ #!/bin/sh # Copyright (c) 2015-2017 Oracle and/or its affiliates. All Rights Reserved. +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # Copyright (c) International Business Machines Corp., 2005 # # This program is free software; you can redistribute it and/or
@@ -17,11 +18,11 @@ # # Author: Mitsuru Chinen <[email protected]> -TST_TOTAL=2 - +TST_CNT=2 +TST_SETUP="netstress_setup" TST_CLEANUP="do_cleanup" - -. test_net_stress.sh +TST_TESTFUNC="test_if_ip" +. tst_net_stress.sh # The interval of the mtu change [second] CHANGE_INTERVAL=${CHANGE_INTERVAL:-5}
@@ -52,14 +53,14 @@ test_body() case $cmd_type in if_cmd) local cmd_name='ifconfig' ;; ip_cmd) local cmd_name='ip' ;; - *) tst_brkm TBROK "Unknown test parameter '$cmd_type'" + *) tst_brk TBROK "Unknown test parameter '$cmd_type'" esac local iface=$(tst_iface) local iface_rmt=$(tst_iface rhost) [ "$TST_IPV6" ] && local netmask=64 || local netmask=16 - tst_resm TINFO "'$cmd_name changes MTU $MTU_CHANGE_TIMES times" \ + tst_res TINFO "'$cmd_name changes MTU $MTU_CHANGE_TIMES times" \ "every $CHANGE_INTERVAL seconds" mtu_array_len=$(echo $CHANGE_VALUES | wc -w)
@@ -73,7 +74,7 @@ test_body() make_background_tcp_traffic - tst_resm TINFO "set MTU to $mtu $cnt/$MTU_CHANGE_TIMES" + tst_res TINFO "set MTU to $mtu $cnt/$MTU_CHANGE_TIMES" local ret=0 case $cmd_type in if_cmd) ifconfig $iface mtu $mtu || ret=1
@@ -85,7 +86,7 @@ test_body() esac if [ $? -ne 0 -o $ret -ne 0 ]; then - tst_resm TFAIL "Failed to change the mtu at $cnt time" + tst_res TFAIL "Failed to change the mtu at $cnt time" return fi
@@ -95,13 +96,6 @@ test_body() done } -netstress_setup - tst_check_cmds ifconfig - saved_mtu="$(cat /sys/class/net/$(tst_iface)/mtu)" - -test_body 'if_cmd' -test_body 'ip_cmd' - -tst_exit +tst_run
testcases/network/stress/interface/if-route-adddel +12 -17
@@ -1,5 +1,6 @@ #!/bin/sh # Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved. +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # Copyright (c) International Business Machines Corp., 2005 # # This program is free software; you can redistribute it and/or
@@ -17,11 +18,11 @@ # # Author: Mitsuru Chinen <[email protected]> -TST_TOTAL=2 - +TST_CNT=2 +TST_SETUP="netstress_setup" TST_CLEANUP="netstress_cleanup" - -. test_net_stress.sh +TST_TESTFUNC="test_rt_ip" +. tst_net_stress.sh CHECK_INTERVAL=${CHECK_INTERVAL:-$(($NS_TIMES / 20))}
@@ -32,7 +33,7 @@ test_body() case $cmd_type in rt_cmd) local cmd_name='route' ;; ip_cmd) local cmd_name='ip' ;; - *) tst_brkm TBROK "Unknown test parameter '$cmd_type'" + *) tst_brk TBROK "Unknown test parameter '$cmd_type'" esac local iface=$(tst_iface)
@@ -50,10 +51,10 @@ test_body() esac fi - tst_resm TINFO "'$cmd_name' add/del ${new_rt}${opt_rt} $NS_TIMES times" + tst_res TINFO "'$cmd_name' add/del ${new_rt}${opt_rt} $NS_TIMES times" if ! restore_ipaddr; then - tst_resm TBROK "Failed to set default IP addresses" + tst_res TBROK "Failed to set default IP addresses" return fi
@@ -66,7 +67,7 @@ test_body() ip_cmd) ip route add ${new_rt}${opt_rt} dev $iface ;; esac if [ $? -ne 0 ]; then - tst_resm TFAIL "Can't add route $new_rt to $iface" + tst_res TFAIL "Can't add route $new_rt to $iface" return fi
@@ -75,7 +76,7 @@ test_body() ip_cmd) ip route del ${new_rt}${opt_rt} dev $iface ;; esac if [ $? -ne 0 ]; then - tst_resm TFAIL "Can't del route $new_rt from $iface" + tst_res TFAIL "Can't del route $new_rt from $iface" return fi
@@ -84,14 +85,8 @@ test_body() cnt=$(($cnt + 1)) done - tst_resm TPASS "Test is finished correctly" + tst_res TPASS "Test is finished correctly" } -netstress_setup - tst_check_cmds route - -test_body 'rt_cmd' -test_body 'ip_cmd' - -tst_exit +tst_run
testcases/network/stress/interface/if-route-addlarge +13 -18
@@ -1,5 +1,6 @@ #!/bin/sh # Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved. +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # Copyright (c) International Business Machines Corp., 2005 # # This program is free software; you can redistribute it and/or
@@ -17,11 +18,11 @@ # # Author: Mitsuru Chinen <[email protected]> -TST_TOTAL=2 - +TST_CNT=2 +TST_SETUP="netstress_setup" TST_CLEANUP="netstress_cleanup" - -. test_net_stress.sh +TST_TESTFUNC="test_rt_ip" +. tst_net_stress.sh CHECK_INTERVAL=${CHECK_INTERVAL:-$(($ROUTE_TOTAL / 20))}
@@ -32,7 +33,7 @@ test_body() case $cmd_type in rt_cmd) local cmd_name='route' ;; ip_cmd) local cmd_name='ip' ;; - *) tst_brkm TBROK "Unknown test parameter '$cmd_type'" + *) tst_brk TBROK "Unknown test parameter '$cmd_type'" esac local iface=$(tst_iface)
@@ -47,10 +48,10 @@ test_body() esac fi - tst_resm TINFO "'$cmd_name' add IPv$ipver $ROUTE_TOTAL routes" + tst_res TINFO "'$cmd_name' add IPv$ipver $ROUTE_TOTAL routes" if ! restore_ipaddr; then - tst_resm TBROK "Failed to set default IP addresses" + tst_res TBROK "Failed to set default IP addresses" return fi
@@ -61,7 +62,7 @@ test_body() [ "$TST_IPV6" ] && local xymax=65535 || xymax=254 if [ $ROUTE_TOTAL -gt $((xymax * xymax)) ]; then - tst_resm TWARN "set ROUTE_TOTAL to $xymax * $xymax" + tst_res TWARN "set ROUTE_TOTAL to $xymax * $xymax" ROUTE_TOTAL=$((xymax * xymax)) fi
@@ -81,7 +82,7 @@ test_body() ip_cmd) ip route add ${new_rt}${opt_rt} dev $iface ;; esac if [ $? -ne 0 ]; then - tst_resm TFAIL "Can't add route $new_rt to $iface" + tst_res TFAIL "Can't add route $new_rt to $iface" return fi
@@ -93,19 +94,13 @@ test_body() y=1 x=$(($x + 1)) if [ $x -gt $xymax ]; then - tst_brkm TBROK "Too large $ROUTE_TOTAL" + tst_brk TBROK "Too large $ROUTE_TOTAL" fi fi done - tst_resm TPASS "Test is finished correctly" + tst_res TPASS "Test is finished correctly" } -netstress_setup - tst_check_cmds route - -test_body 'rt_cmd' -test_body 'ip_cmd' - -tst_exit +tst_run
testcases/network/stress/interface/if-updown +12 -17
@@ -1,5 +1,6 @@ #!/bin/sh # Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved. +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # Copyright (c) International Business Machines Corp., 2005 # # This program is free software; you can redistribute it and/or
@@ -17,11 +18,11 @@ # # Author: Mitsuru Chinen <[email protected]> -TST_TOTAL=2 - +TST_CNT=2 +TST_SETUP="netstress_setup" TST_CLEANUP="netstress_cleanup" - -. test_net_stress.sh +TST_TESTFUNC="test_if_ip" +. tst_net_stress.sh CHECK_INTERVAL=${CHECK_INTERVAL:-$(($IF_UPDOWN_TIMES / 20))}
@@ -32,13 +33,13 @@ test_body() case $cmd_type in if_cmd) local cmd_name='ifconfig' ;; ip_cmd) local cmd_name='ip' ;; - *) tst_brkm TBROK "Unknown test parameter '$cmd_type'" + *) tst_brk TBROK "Unknown test parameter '$cmd_type'" esac local iface=$(tst_iface) - tst_resm TINFO "'$cmd_name ups/downs $iface $IF_UPDOWN_TIMES times" - tst_resm TINFO "check connectivity interval is $CHECK_INTERVAL" + tst_res TINFO "'$cmd_name ups/downs $iface $IF_UPDOWN_TIMES times" + tst_res TINFO "check connectivity interval is $CHECK_INTERVAL" local cnt=1 while [ $cnt -le $IF_UPDOWN_TIMES ]; do
@@ -47,7 +48,7 @@ test_body() ip_cmd) ip link set $iface down ;; esac if [ $? -ne 0 ]; then - tst_resm TFAIL "Failed to down $iface" + tst_res TFAIL "Failed to down $iface" return fi
@@ -56,7 +57,7 @@ test_body() ip_cmd) ip link set $iface up ;; esac if [ $? -ne 0 ]; then - tst_resm TFAIL "Failed to up $iface" + tst_res TFAIL "Failed to up $iface" return fi
@@ -65,14 +66,8 @@ test_body() cnt=$(($cnt + 1)) done - tst_resm TPASS "Test is finished correctly" + tst_res TPASS "Test is finished correctly" } -netstress_setup - tst_check_cmds ifconfig - -test_body 'if_cmd' -test_body 'ip_cmd' - -tst_exit +tst_run
testcases/network/stress/interface/if4-addr-change +13 -11
@@ -18,24 +18,29 @@ # # Author: Mitsuru Chinen <[email protected]> -TST_TOTAL=1 +TST_CNT=1 TCID=if4-addr-change +TST_SETUP="do_setup" TST_CLEANUP="do_cleanup" - -TST_USE_LEGACY_API=1 +TST_TESTFUNC="test_body" . tst_net.sh CHECK_INTERVAL=${CHECK_INTERVAL:-$(($NS_TIMES / 20))} # Maximum host portion of the IPv4 address on the local host LHOST_IPV4_HOST_MAX="254" +do_setup() +{ + tst_check_cmds ifconfig +} + do_cleanup() { tst_restore_ipaddr tst_wait_ipv6_dad } -trap "tst_brkm TBROK 'test interrupted'" INT +trap "tst_brk TBROK 'test interrupted'" INT test_body() {
@@ -43,7 +48,7 @@ test_body() local num=1 local add_to_net= - tst_resm TINFO "ifconfig changes IPv4 address $NS_TIMES times" + tst_res TINFO "ifconfig changes IPv4 address $NS_TIMES times" while [ $cnt -lt $NS_TIMES ]; do # Define the network portion
@@ -55,7 +60,7 @@ test_body() # check prefix and fix values for prefix != 24 add_to_net= if [ $IPV4_LPREFIX -lt 8 -o $IPV4_LPREFIX -ge 32 ] ; then - tst_brkm TCONF "test must be with prefix >= 8 and prefix < 32 ($IPV4_LPREFIX)" + tst_brk TCONF "test must be with prefix >= 8 and prefix < 32 ($IPV4_LPREFIX)" elif [ $IPV4_LPREFIX -lt 16 ]; then # N.x.x.num add_to_net=".0.1" elif [ $IPV4_LPREFIX -lt 24 ]; then # N.N.x.num
@@ -71,14 +76,11 @@ test_body() [ $CHECK_INTERVAL -eq 0 ] && continue [ $(($cnt % $CHECK_INTERVAL)) -ne 0 ] && continue - tst_resm TINFO "ping $(tst_ipaddr):$(tst_ipaddr rhost) ${cnt}/$NS_TIMES" + tst_res TINFO "ping $(tst_ipaddr):$(tst_ipaddr rhost) ${cnt}/$NS_TIMES" tst_ping done tst_ping } -tst_check_cmds ifconfig -test_body - -tst_exit +tst_run
testcases/network/stress/multicast/grp-operation/mcast-group-multiple-socket +9 -7
@@ -1,6 +1,6 @@ #!/bin/sh # Copyright (c) International Business Machines Corp., 2006 -# Copyright (c) 2017 Petr Vorel <[email protected]> +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as
@@ -21,19 +21,21 @@ . mcast-lib.sh -tst_resm TINFO "joining $MCASTNUM_HEAVY IPv$ipver multicast groups on multiple sockets" - do_setup() { # Increase the maximum number of open file descriptors if [ $(ulimit -n) -lt $MCASTNUM_HEAVY ]; then - ulimit -n $MCASTNUM_HEAVY || tst_brkm TCONF \ + ulimit -n $MCASTNUM_HEAVY || tst_brk TCONF \ "Failed to set the maximum number of open file descriptors to $MCASTNUM_HEAVY" fi mcast_setup $MCASTNUM_HEAVY } -do_setup -do_multicast_test_multiple_join $MCASTNUM_HEAVY true -tst_exit +do_test() +{ + tst_res TINFO "joining $MCASTNUM_HEAVY IPv$ipver multicast groups on multiple sockets" + do_multicast_test_multiple_join $MCASTNUM_HEAVY true +} + +tst_run
testcases/network/stress/multicast/grp-operation/mcast-group-same-group +12 -5
@@ -1,6 +1,6 @@ #!/bin/sh # Copyright (c) International Business Machines Corp., 2006 -# Copyright (c) 2017 Petr Vorel <[email protected]> +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as
@@ -21,8 +21,15 @@ . mcast-lib.sh -tst_resm TINFO "joining and leaving the same IPv$ipver multicast group on $MCASTNUM_NORMAL sockets in $NS_TIMES times" +do_setup() +{ + mcast_setup $MCASTNUM_NORMAL +} -mcast_setup $MCASTNUM_NORMAL -do_multicast_test_join_leave $MCASTNUM_NORMAL -tst_exit +do_test() +{ + tst_res TINFO "joining and leaving the same IPv$ipver multicast group on $MCASTNUM_NORMAL sockets in $NS_TIMES times" + do_multicast_test_join_leave $MCASTNUM_NORMAL +} + +tst_run
testcases/network/stress/multicast/grp-operation/mcast-group-single-socket +12 -5
@@ -1,6 +1,6 @@ #!/bin/sh # Copyright (c) International Business Machines Corp., 2006 -# Copyright (c) 2017 Petr Vorel <[email protected]> +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as
@@ -21,8 +21,15 @@ . mcast-lib.sh -tst_resm TINFO "joining $MCASTNUM_HEAVY IPv$ipver multicast groups on a single socket" +do_setup() +{ + mcast_setup $MCASTNUM_HEAVY +} -mcast_setup $MCASTNUM_HEAVY -do_multicast_test_multiple_join $MCASTNUM_HEAVY -tst_exit +do_test() +{ + tst_res TINFO "joining $MCASTNUM_HEAVY IPv$ipver multicast groups on a single socket" + do_multicast_test_multiple_join $MCASTNUM_HEAVY +} + +tst_run
testcases/network/stress/multicast/grp-operation/mcast-group-source-filter +12 -5
@@ -1,6 +1,6 @@ #!/bin/sh # Copyright (c) International Business Machines Corp., 2006 -# Copyright (c) 2017 Petr Vorel <[email protected]> +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as
@@ -21,8 +21,15 @@ . mcast-lib.sh -tst_resm TINFO "joining and leaving the same IPv$ipver multicast group with a different source filters on $MCASTNUM_NORMAL sockets in $NS_TIMES times" +do_setup() +{ + mcast_setup $MCASTNUM_NORMAL +} -mcast_setup $MCASTNUM_NORMAL -do_multicast_test_join_leave $MCASTNUM_NORMAL true -tst_exit +do_test() +{ + tst_res TINFO "joining and leaving the same IPv$ipver multicast group with a different source filters on $MCASTNUM_NORMAL sockets in $NS_TIMES times" + do_multicast_test_join_leave $MCASTNUM_NORMAL true +} + +tst_run
testcases/network/stress/multicast/grp-operation/mcast-lib.sh +9 -8
@@ -1,6 +1,6 @@ #!/bin/sh # Copyright (c) International Business Machines Corp., 2006 -# Copyright (c) 2017 Petr Vorel <[email protected]> +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as
@@ -19,10 +19,12 @@ # # Setup script for multicast stress tests. -TST_TOTAL=1 +TST_CNT=1 +TST_SETUP="do_setup" TST_CLEANUP="mcast_cleanup" - -. test_net_stress.sh +TST_TESTFUNC="do_test" +TST_NEEDS_TMPDIR=1 +. tst_net_stress.sh MCAST_LCMD="ns-mcast_join -f $ipver -I $(tst_iface)"
@@ -39,7 +41,7 @@ mcast_setup4() SYSFS_FORCE_IGMP_VERSION=$(sysctl -b net.ipv4.conf.$(tst_iface).force_igmp_version) SYSFS_ALL_FORCE_IGMP_VERSION=$(sysctl -b net.ipv4.conf.all.force_igmp_version) - [ "$igmp_max_memberships" -gt 5459 ] && tst_resm TWARN \ + [ "$igmp_max_memberships" -gt 5459 ] && tst_res TWARN \ "\$1 shouldn't be set higher than 5459 as it's used to set /proc/sys/net/ipv4/igmp_max_memberships" ROD sysctl -qw net.ipv4.igmp_max_memberships=$igmp_max_memberships
@@ -67,7 +69,6 @@ mcast_setup() local max="$1" netstress_setup - tst_tmpdir [ "$TST_IPV6" ] && mcast_setup6 || mcast_setup4 $max }
@@ -110,7 +111,7 @@ do_multicast_test_multiple_join() # Run a multicast join tool tmpfile=$$ EXPECT_PASS $MCAST_LCMD $param_multi_socket -n $num -p $mprefix \> $tmpfile - tst_resm TINFO "joined $(grep groups $tmpfile)" + tst_res TINFO "joined $(grep groups $tmpfile)" # Send MLD / IGMP General Query from the remote host if [ "$TST_IPV6" ]; then
@@ -150,5 +151,5 @@ do_multicast_test_join_leave() wait - tst_resm TPASS "test is finished successfully" + tst_res TPASS "test is finished successfully" }
testcases/network/stress/ns-tools/tst_net_stress.sh renamed from testcases/network/stress/ns-tools/test_net_stress.sh +20 -5
@@ -1,7 +1,7 @@ #!/bin/sh # Copyright (c) International Business Machines Corp., 2006 # Copyright (c) 2015-2017 Oracle and/or its affiliates. All Rights Reserved. -# Copyright (c) 2017 Petr Vorel <[email protected]> +# Copyright (c) 2017-2018 Petr Vorel <[email protected]> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as
@@ -25,7 +25,6 @@ export TCID="${TCID:-$(basename $0)}" -TST_USE_LEGACY_API=1 . tst_net.sh ipver=${TST_IPV6:-4}
@@ -43,9 +42,9 @@ MCAST_IPV6_ADDR="${MCAST_IPV6_ADDR_PREFIX}:1" # Setup for tests using netstress. netstress_setup() { - tst_require_root + TST_NEEDS_ROOT=1 tst_check_cmds pgrep pkill - trap "tst_brkm TBROK 'test interrupted'" INT + trap "tst_brk TBROK 'test interrupted'" INT } # Cleanup for tests using netstress.
@@ -86,7 +85,7 @@ check_connectivity() [ -n "$cnt" ] && cnt_msg=" (step $cnt)" - tst_resm TINFO "ping through $src_iface iface to ${dst_addr}$cnt_msg" + tst_res TINFO "ping through $src_iface iface to ${dst_addr}$cnt_msg" tst_ping $src_iface $dst_addr }
@@ -125,3 +124,19 @@ make_background_tcp_traffic() netstress -R 3 -g $port > /dev/null 2>&1 & tst_rhost_run -b -c "netstress -l -H $ip -g $port" } + +test_if_ip() +{ + case $1 in + 1) test_body 'if_cmd';; + 2) test_body 'ip_cmd';; + esac +} + +test_rt_ip() +{ + case $1 in + 1) test_body 'rt_cmd';; + 2) test_body 'ip_cmd';; + esac +}
Signature · 1 line
2.16.2
RFC PATCH v3 5/5 net: Migrate test_net_stress.sh and it's dependencies to new shell API
Quoted 2 lines · Petr Vorel
+ rename it to
tst_net_stress.sh, The new name states that library supports new API.
And we should also rename it in stress/ns-tools/Makefile.
Thanks,
Alexey
RFC PATCH v3 5/5 net: Migrate test_net_stress.sh and it's dependencies to new shell API
Hi Alexey,
Quoted 1 line
And we should also rename it in stress/ns-tools/Makefile.
Good catch, thx! I forget to check it with make install.
Quoted 2 lines
Thanks,
Alexey
Kind regards,
Petr