All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hangbin Liu <liuhangbin@gmail.com>
To: netdev@vger.kernel.org
Cc: "David S. Miller" <davem@davemloft.net>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Eric Dumazet" <edumazet@google.com>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Shuah Khan" <shuah@kernel.org>,
	"David Ahern" <dsahern@kernel.org>,
	linux-kselftest@vger.kernel.org,
	"Po-Hsu Lin" <po-hsu.lin@canonical.com>,
	"Guillaume Nault" <gnault@redhat.com>,
	"Björn Töpel" <bjorn@rivosinc.com>,
	"Ryan Roberts" <ryan.roberts@arm.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Mark Brown" <broonie@kernel.org>,
	"Luis Chamberlain" <mcgrof@kernel.org>,
	"Hangbin Liu" <liuhangbin@gmail.com>
Subject: [PATCH net-next 32/38] selftests/net: convert unicast_extensions.sh to run it in unique namespace
Date: Fri, 24 Nov 2023 17:27:30 +0800	[thread overview]
Message-ID: <20231124092736.3673263-33-liuhangbin@gmail.com> (raw)
In-Reply-To: <20231124092736.3673263-1-liuhangbin@gmail.com>

Here is the test result after conversion.

 # ./unicast_extensions.sh
 /usr/bin/which: no nettest in (/root/.local/bin:/root/bin:/usr/share/Modules/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
 ###########################################################################
 Unicast address extensions tests (behavior of reserved IPv4 addresses)
 ###########################################################################
 TEST: assign and ping within 240/4 (1 of 2) (is allowed)            [ OK ]
 TEST: assign and ping within 240/4 (2 of 2) (is allowed)            [ OK ]
 TEST: assign and ping within 0/8 (1 of 2) (is allowed)              [ OK ]

 ...

 TEST: assign and ping class D address (is forbidden)                [ OK ]
 TEST: routing using class D (is forbidden)                          [ OK ]
 TEST: routing using 127/8 (is forbidden)                            [ OK ]

Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
---
 .../selftests/net/unicast_extensions.sh       | 99 +++++++++----------
 1 file changed, 46 insertions(+), 53 deletions(-)

diff --git a/tools/testing/selftests/net/unicast_extensions.sh b/tools/testing/selftests/net/unicast_extensions.sh
index 2d10ccac898a..b7a2cb9e7477 100755
--- a/tools/testing/selftests/net/unicast_extensions.sh
+++ b/tools/testing/selftests/net/unicast_extensions.sh
@@ -28,8 +28,7 @@
 # These tests provide an easy way to flip the expected result of any
 # of these behaviors for testing kernel patches that change them.
 
-# Kselftest framework requirement - SKIP code is 4.
-ksft_skip=4
+source ./lib.sh
 
 # nettest can be run from PATH or from same directory as this selftest
 if ! which nettest >/dev/null; then
@@ -61,20 +60,20 @@ _do_segmenttest(){
 	# foo --- bar
 	# Arguments: ip_a ip_b prefix_length test_description
 	#
-	# Caller must set up foo-ns and bar-ns namespaces
+	# Caller must set up $foo_ns and $bar_ns namespaces
 	# containing linked veth devices foo and bar,
 	# respectively.
 
-	ip -n foo-ns address add $1/$3 dev foo || return 1
-	ip -n foo-ns link set foo up || return 1
-	ip -n bar-ns address add $2/$3 dev bar || return 1
-	ip -n bar-ns link set bar up || return 1
+	ip -n $foo_ns address add $1/$3 dev foo || return 1
+	ip -n $foo_ns link set foo up || return 1
+	ip -n $bar_ns address add $2/$3 dev bar || return 1
+	ip -n $bar_ns link set bar up || return 1
 
-	ip netns exec foo-ns timeout 2 ping -c 1 $2 || return 1
-	ip netns exec bar-ns timeout 2 ping -c 1 $1 || return 1
+	ip netns exec $foo_ns timeout 2 ping -c 1 $2 || return 1
+	ip netns exec $bar_ns timeout 2 ping -c 1 $1 || return 1
 
-	nettest -B -N bar-ns -O foo-ns -r $1 || return 1
-	nettest -B -N foo-ns -O bar-ns -r $2 || return 1
+	nettest -B -N $bar_ns -O $foo_ns -r $1 || return 1
+	nettest -B -N $foo_ns -O $bar_ns -r $2 || return 1
 
 	return 0
 }
@@ -88,31 +87,31 @@ _do_route_test(){
 	# Arguments: foo_ip foo1_ip bar1_ip bar_ip prefix_len test_description
 	# Displays test result and returns success or failure.
 
-	# Caller must set up foo-ns, bar-ns, and router-ns
+	# Caller must set up $foo_ns, $bar_ns, and $router_ns
 	# containing linked veth devices foo-foo1, bar1-bar
-	# (foo in foo-ns, foo1 and bar1 in router-ns, and
-	# bar in bar-ns).
-
-	ip -n foo-ns address add $1/$5 dev foo || return 1
-	ip -n foo-ns link set foo up || return 1
-	ip -n foo-ns route add default via $2 || return 1
-	ip -n bar-ns address add $4/$5 dev bar || return 1
-	ip -n bar-ns link set bar up || return 1
-	ip -n bar-ns route add default via $3 || return 1
-	ip -n router-ns address add $2/$5 dev foo1 || return 1
-	ip -n router-ns link set foo1 up || return 1
-	ip -n router-ns address add $3/$5 dev bar1 || return 1
-	ip -n router-ns link set bar1 up || return 1
-
-	echo 1 | ip netns exec router-ns tee /proc/sys/net/ipv4/ip_forward
-
-	ip netns exec foo-ns timeout 2 ping -c 1 $2 || return 1
-	ip netns exec foo-ns timeout 2 ping -c 1 $4 || return 1
-	ip netns exec bar-ns timeout 2 ping -c 1 $3 || return 1
-	ip netns exec bar-ns timeout 2 ping -c 1 $1 || return 1
-
-	nettest -B -N bar-ns -O foo-ns -r $1 || return 1
-	nettest -B -N foo-ns -O bar-ns -r $4 || return 1
+	# (foo in $foo_ns, foo1 and bar1 in $router_ns, and
+	# bar in $bar_ns).
+
+	ip -n $foo_ns address add $1/$5 dev foo || return 1
+	ip -n $foo_ns link set foo up || return 1
+	ip -n $foo_ns route add default via $2 || return 1
+	ip -n $bar_ns address add $4/$5 dev bar || return 1
+	ip -n $bar_ns link set bar up || return 1
+	ip -n $bar_ns route add default via $3 || return 1
+	ip -n $router_ns address add $2/$5 dev foo1 || return 1
+	ip -n $router_ns link set foo1 up || return 1
+	ip -n $router_ns address add $3/$5 dev bar1 || return 1
+	ip -n $router_ns link set bar1 up || return 1
+
+	echo 1 | ip netns exec $router_ns tee /proc/sys/net/ipv4/ip_forward
+
+	ip netns exec $foo_ns timeout 2 ping -c 1 $2 || return 1
+	ip netns exec $foo_ns timeout 2 ping -c 1 $4 || return 1
+	ip netns exec $bar_ns timeout 2 ping -c 1 $3 || return 1
+	ip netns exec $bar_ns timeout 2 ping -c 1 $1 || return 1
+
+	nettest -B -N $bar_ns -O $foo_ns -r $1 || return 1
+	nettest -B -N $foo_ns -O $bar_ns -r $4 || return 1
 
 	return 0
 }
@@ -121,17 +120,15 @@ segmenttest(){
 	# Sets up veth link and tries to connect over it.
 	# Arguments: ip_a ip_b prefix_len test_description
 	hide_output
-	ip netns add foo-ns
-	ip netns add bar-ns
-	ip link add foo netns foo-ns type veth peer name bar netns bar-ns
+	setup_ns foo_ns bar_ns
+	ip link add foo netns $foo_ns type veth peer name bar netns $bar_ns
 
 	test_result=0
 	_do_segmenttest "$@" || test_result=1
 
-	ip netns pids foo-ns | xargs -r kill -9
-	ip netns pids bar-ns | xargs -r kill -9
-	ip netns del foo-ns
-	ip netns del bar-ns
+	ip netns pids $foo_ns | xargs -r kill -9
+	ip netns pids $bar_ns | xargs -r kill -9
+	cleanup_ns $foo_ns $bar_ns
 	show_output
 
 	# inverted tests will expect failure instead of success
@@ -147,21 +144,17 @@ route_test(){
 	# Returns success or failure.
 
 	hide_output
-	ip netns add foo-ns
-	ip netns add bar-ns
-	ip netns add router-ns
-	ip link add foo netns foo-ns type veth peer name foo1 netns router-ns
-	ip link add bar netns bar-ns type veth peer name bar1 netns router-ns
+	setup_ns foo_ns bar_ns router_ns
+	ip link add foo netns $foo_ns type veth peer name foo1 netns $router_ns
+	ip link add bar netns $bar_ns type veth peer name bar1 netns $router_ns
 
 	test_result=0
 	_do_route_test "$@" || test_result=1
 
-	ip netns pids foo-ns | xargs -r kill -9
-	ip netns pids bar-ns | xargs -r kill -9
-	ip netns pids router-ns | xargs -r kill -9
-	ip netns del foo-ns
-	ip netns del bar-ns
-	ip netns del router-ns
+	ip netns pids $foo_ns | xargs -r kill -9
+	ip netns pids $bar_ns | xargs -r kill -9
+	ip netns pids $router_ns | xargs -r kill -9
+	cleanup_ns $foo_ns $bar_ns $router_ns
 
 	show_output
 
-- 
2.41.0


  parent reply	other threads:[~2023-11-24  9:30 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-24  9:26 [PATCH net-next 00/38] Conver all net selftests to run in unique namespace Hangbin Liu
2023-11-24  9:26 ` [PATCH net-next 01/38] selftests/net: add lib.sh Hangbin Liu
2023-11-24 14:05   ` Petr Machata
2023-11-25  5:41     ` Hangbin Liu
2023-11-27 13:15       ` Petr Machata
2023-11-24 14:35   ` Petr Machata
2023-11-24 15:25     ` Petr Machata
2023-11-25  6:15     ` Hangbin Liu
2023-11-27 13:19       ` Petr Machata
2023-11-24  9:27 ` [PATCH net-next 02/38] selftests/net: arp_ndisc_evict_nocarrier.sh convert to run test in unique namespace Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 03/38] selftest: arp_ndisc_untracked_subnets.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 04/38] selftests/net: convert cmsg tests to make them run " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 05/38] selftests/net: convert drop_monitor_tests.sh to run it " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 06/38] selftests/net: convert fcnal-test.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 07/38] selftests/net: convert fib_nexthop_multiprefix " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 08/38] selftests/net: convert fib_nexthop_nongw.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 09/38] selftests/net: convert fib_nexthops.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 10/38] selftests/net: convert fib-onlink-tests.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 11/38] selftests/net: convert fib_rule_tests.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 12/38] selftests/net: convert fib_tests.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 13/38] selftests/net: convert gre_gso.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 14/38] selftests/net: convert icmp_redirect.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 15/38] sleftests/net: convert icmp.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 16/38] selftests/net: convert ioam6.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 17/38] selftests/net: convert l2tp.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 18/38] selftests/net: convert ndisc_unsolicited_na_test.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 19/38] selftests/net: convert netns-name.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 20/38] selftests/net: convert fdb_flush.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 21/38] selftests/net: convert rtnetlink.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 22/38] selftests/net: convert sctp_vrf.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 23/38] selftests/net: use unique netns name for setup_loopback.sh setup_veth.sh Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 24/38] selftests/net: convert stress_reuseport_listen.sh to run it in unique namespace Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 25/38] selftests/net: convert test_bridge_backup_port.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 26/38] selftests/net: convert test_bridge_neigh_suppress.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 27/38] selftests/net: convert test_vxlan_mdb.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 28/38] selftests/net: convert test_vxlan_nolocalbypass.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 29/38] selftests/net: convert test_vxlan_under_vrf.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 30/38] selftests/net: convert test_vxlan_vnifiltering.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 31/38] selftests/net: convert toeplitz.sh " Hangbin Liu
2023-11-24  9:27 ` Hangbin Liu [this message]
2023-11-24  9:27 ` [PATCH net-next 33/38] selftests/net: convert vrf_route_leaking.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 34/38] selftests/net: convert vrf_strict_mode_test.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 35/38] selftests/net: convert vrf-xfrm-tests.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 36/38] selftests/net: convert traceroute.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 37/38] selftests/net: convert xfrm_policy.sh " Hangbin Liu
2023-11-24  9:27 ` [PATCH net-next 38/38] kselftest/runner.sh: add netns support Hangbin Liu
2023-11-27  2:42 ` [PATCH net-next 00/38] Conver all net selftests to run in unique namespace David Ahern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231124092736.3673263-33-liuhangbin@gmail.com \
    --to=liuhangbin@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=bjorn@rivosinc.com \
    --cc=broonie@kernel.org \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=gnault@redhat.com \
    --cc=kuba@kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=po-hsu.lin@canonical.com \
    --cc=ryan.roberts@arm.com \
    --cc=shuah@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.