]> git.itanic.dy.fi Git - linux-stable/commitdiff
selftests/net: convert fcnal-test.sh to run it in unique namespace
authorHangbin Liu <liuhangbin@gmail.com>
Wed, 13 Dec 2023 06:08:48 +0000 (14:08 +0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 15 Dec 2023 02:38:35 +0000 (18:38 -0800)
Here is the test result after conversion. There are some failures, but it
also exists on my system without this patch. So it's not affectec by
this patch and I will check the reason later.

  ]# time ./fcnal-test.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)

  ###########################################################################
  IPv4 ping
  ###########################################################################

  #################################################################
  No VRF

  SYSCTL: net.ipv4.raw_l3mdev_accept=0

  TEST: ping out - ns-B IP                                                      [ OK ]
  TEST: ping out, device bind - ns-B IP                                         [ OK ]
  TEST: ping out, address bind - ns-B IP                                        [ OK ]
  ...

  #################################################################
  SNAT on VRF

  TEST: IPv4 TCP connection over VRF with SNAT                                  [ OK ]
  TEST: IPv6 TCP connection over VRF with SNAT                                  [ OK ]

  Tests passed: 893
  Tests failed:  21

  real    52m48.178s
  user    0m34.158s
  sys     1m42.976s

BTW, this test needs a really long time. So expand the timeout to 1h.

Acked-by: David Ahern <dsahern@kernel.org>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Link: https://lore.kernel.org/r/20231213060856.4030084-6-liuhangbin@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/fcnal-test.sh
tools/testing/selftests/net/settings

index d32a14ba069ac5d02d052887b0fabef47d21f918..0d4f252427e2fdf977c68baf40b9a6ce6abac1ca 100755 (executable)
@@ -37,9 +37,7 @@
 #
 # server / client nomenclature relative to ns-A
 
-# Kselftest framework requirement - SKIP code is 4.
-ksft_skip=4
-
+source lib.sh
 VERBOSE=0
 
 NSA_DEV=eth1
@@ -82,14 +80,6 @@ MCAST=ff02::1
 NSA_LINKIP6=
 NSB_LINKIP6=
 
-NSA=ns-A
-NSB=ns-B
-NSC=ns-C
-
-NSA_CMD="ip netns exec ${NSA}"
-NSB_CMD="ip netns exec ${NSB}"
-NSC_CMD="ip netns exec ${NSC}"
-
 which ping6 > /dev/null 2>&1 && ping6=$(which ping6) || ping6=$(which ping)
 
 # Check if FIPS mode is enabled
@@ -406,9 +396,6 @@ create_ns()
        local addr=$2
        local addr6=$3
 
-       ip netns add ${ns}
-
-       ip -netns ${ns} link set lo up
        if [ "${addr}" != "-" ]; then
                ip -netns ${ns} addr add dev lo ${addr}
        fi
@@ -467,13 +454,12 @@ cleanup()
                ip -netns ${NSA} link del dev ${NSA_DEV}
 
                ip netns pids ${NSA} | xargs kill 2>/dev/null
-               ip netns del ${NSA}
+               cleanup_ns ${NSA}
        fi
 
        ip netns pids ${NSB} | xargs kill 2>/dev/null
-       ip netns del ${NSB}
        ip netns pids ${NSC} | xargs kill 2>/dev/null
-       ip netns del ${NSC} >/dev/null 2>&1
+       cleanup_ns ${NSB} ${NSC}
 }
 
 cleanup_vrf_dup()
@@ -487,6 +473,8 @@ setup_vrf_dup()
 {
        # some VRF tests use ns-C which has the same config as
        # ns-B but for a device NOT in the VRF
+       setup_ns NSC
+       NSC_CMD="ip netns exec ${NSC}"
        create_ns ${NSC} "-" "-"
        connect_ns ${NSA} ${NSA_DEV2} ${NSA_IP}/24 ${NSA_IP6}/64 \
                   ${NSC} ${NSC_DEV} ${NSB_IP}/24 ${NSB_IP6}/64
@@ -503,6 +491,10 @@ setup()
        log_debug "Configuring network namespaces"
        set -e
 
+       setup_ns NSA NSB
+       NSA_CMD="ip netns exec ${NSA}"
+       NSB_CMD="ip netns exec ${NSB}"
+
        create_ns ${NSA} ${NSA_LO_IP}/32 ${NSA_LO_IP6}/128
        create_ns ${NSB} ${NSB_LO_IP}/32 ${NSB_LO_IP6}/128
        connect_ns ${NSA} ${NSA_DEV} ${NSA_IP}/24 ${NSA_IP6}/64 \
@@ -545,6 +537,10 @@ setup_lla_only()
        log_debug "Configuring network namespaces"
        set -e
 
+       setup_ns NSA NSB NSC
+       NSA_CMD="ip netns exec ${NSA}"
+       NSB_CMD="ip netns exec ${NSB}"
+       NSC_CMD="ip netns exec ${NSC}"
        create_ns ${NSA} "-" "-"
        create_ns ${NSB} "-" "-"
        create_ns ${NSC} "-" "-"
index dfc27cdc6c05dc94ac281f723ea2d0970264b5af..ed8418e8217a09cdbc66dc4254b975ba4d7d3a5a 100644 (file)
@@ -1 +1 @@
-timeout=1500
+timeout=3600