Skip to content

Commit

Permalink
selftests/net: convert rtnetlink.sh to run it in unique namespace
Browse files Browse the repository at this point in the history
When running the test in namespace, the debugfs may not load automatically.
So add a checking to make sure debugfs loaded. Here is the test result
after conversion.

 # ./rtnetlink.sh
 PASS: policy routing
 PASS: route get
 ...
 PASS: address proto IPv4
 PASS: address proto IPv6

Acked-by: David Ahern <dsahern@kernel.org>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Hangbin Liu authored and David S. Miller committed Dec 23, 2023
1 parent f6476de commit d3b6b11
Showing 1 changed file with 18 additions and 16 deletions.
34 changes: 18 additions & 16 deletions tools/testing/selftests/net/rtnetlink.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@ VERBOSE=0
PAUSE=no
PAUSE_ON_FAIL=no

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4
source lib.sh

# set global exit status, but never reset nonzero one.
check_err()
Expand Down Expand Up @@ -517,9 +516,8 @@ kci_test_encap_fou()
# test various encap methods, use netns to avoid unwanted interference
kci_test_encap()
{
testns="testns"
local ret=0
run_cmd ip netns add "$testns"
setup_ns testns
if [ $? -ne 0 ]; then
end_test "SKIP encap tests: cannot add net namespace $testns"
return $ksft_skip
Expand Down Expand Up @@ -574,6 +572,10 @@ kci_test_macsec_offload()
return $ksft_skip
fi

if ! mount | grep -q debugfs; then
mount -t debugfs none /sys/kernel/debug/ &> /dev/null
fi

# setup netdevsim since dummydev doesn't have offload support
if [ ! -w /sys/bus/netdevsim/new_device ] ; then
run_cmd modprobe -q netdevsim
Expand Down Expand Up @@ -738,6 +740,10 @@ kci_test_ipsec_offload()
sysfsnet=/sys/bus/netdevsim/devices/netdevsim0/net/
probed=false

if ! mount | grep -q debugfs; then
mount -t debugfs none /sys/kernel/debug/ &> /dev/null
fi

# setup netdevsim since dummydev doesn't have offload support
if [ ! -w /sys/bus/netdevsim/new_device ] ; then
run_cmd modprobe -q netdevsim
Expand Down Expand Up @@ -836,11 +842,10 @@ EOF

kci_test_gretap()
{
testns="testns"
DEV_NS=gretap00
local ret=0

run_cmd ip netns add "$testns"
setup_ns testns
if [ $? -ne 0 ]; then
end_test "SKIP gretap tests: cannot add net namespace $testns"
return $ksft_skip
Expand Down Expand Up @@ -878,11 +883,10 @@ kci_test_gretap()

kci_test_ip6gretap()
{
testns="testns"
DEV_NS=ip6gretap00
local ret=0

run_cmd ip netns add "$testns"
setup_ns testns
if [ $? -ne 0 ]; then
end_test "SKIP ip6gretap tests: cannot add net namespace $testns"
return $ksft_skip
Expand Down Expand Up @@ -920,15 +924,14 @@ kci_test_ip6gretap()

kci_test_erspan()
{
testns="testns"
DEV_NS=erspan00
local ret=0
run_cmd_grep "^Usage:" ip link help erspan
if [ $? -ne 0 ];then
end_test "SKIP: erspan: iproute2 too old"
return $ksft_skip
fi
run_cmd ip netns add "$testns"
setup_ns testns
if [ $? -ne 0 ]; then
end_test "SKIP erspan tests: cannot add net namespace $testns"
return $ksft_skip
Expand Down Expand Up @@ -970,15 +973,14 @@ kci_test_erspan()

kci_test_ip6erspan()
{
testns="testns"
DEV_NS=ip6erspan00
local ret=0
run_cmd_grep "^Usage:" ip link help ip6erspan
if [ $? -ne 0 ];then
end_test "SKIP: ip6erspan: iproute2 too old"
return $ksft_skip
fi
run_cmd ip netns add "$testns"
setup_ns testns
if [ $? -ne 0 ]; then
end_test "SKIP ip6erspan tests: cannot add net namespace $testns"
return $ksft_skip
Expand Down Expand Up @@ -1022,8 +1024,6 @@ kci_test_ip6erspan()

kci_test_fdb_get()
{
IP="ip -netns testns"
BRIDGE="bridge -netns testns"
brdev="test-br0"
vxlandev="vxlan10"
test_mac=de:ad:be:ef:13:37
Expand All @@ -1037,11 +1037,13 @@ kci_test_fdb_get()
return $ksft_skip
fi

run_cmd ip netns add testns
setup_ns testns
if [ $? -ne 0 ]; then
end_test "SKIP fdb get tests: cannot add net namespace $testns"
return $ksft_skip
fi
IP="ip -netns $testns"
BRIDGE="bridge -netns $testns"
run_cmd $IP link add "$vxlandev" type vxlan id 10 local $localip \
dstport 4789
run_cmd $IP link add name "$brdev" type bridge
Expand All @@ -1052,7 +1054,7 @@ kci_test_fdb_get()
run_cmd_grep "dev $vxlandev master $brdev" $BRIDGE fdb get $test_mac br "$brdev"
run_cmd_grep "dev $vxlandev dst $dstip" $BRIDGE fdb get $test_mac dev "$vxlandev" self

ip netns del testns &>/dev/null
ip netns del $testns &>/dev/null

if [ $ret -ne 0 ]; then
end_test "FAIL: bridge fdb get"
Expand Down

0 comments on commit d3b6b11

Please sign in to comment.