]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests: ETS: Use defer for test cleanup
authorPetr Machata <petrm@nvidia.com>
Thu, 17 Oct 2024 09:45:48 +0000 (11:45 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 22 Oct 2024 11:33:47 +0000 (13:33 +0200)
Use the defer framework to schedule cleanups as soon as the command is
executed.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tools/testing/selftests/drivers/net/mlxsw/sch_ets.sh
tools/testing/selftests/net/forwarding/sch_ets.sh
tools/testing/selftests/net/forwarding/sch_ets_core.sh
tools/testing/selftests/net/forwarding/sch_ets_tests.sh

index 139175fd03e725ff99fec598f7a6e3a8c8e67204..4aaceb6b2b607ff98886f78d3f084a48e8c131a3 100755 (executable)
@@ -21,6 +21,7 @@ switch_create()
        # Create a bottleneck so that the DWRR process can kick in.
        tc qdisc replace dev $swp2 root handle 3: tbf rate 1gbit \
                burst 128K limit 1G
+       defer tc qdisc del dev $swp2 root handle 3:
 
        ets_switch_create
 
@@ -30,16 +31,27 @@ switch_create()
        # for the DWRR process.
        devlink_port_pool_th_save $swp1 0
        devlink_port_pool_th_set $swp1 0 12
+       defer devlink_port_pool_th_restore $swp1 0
+
        devlink_tc_bind_pool_th_save $swp1 0 ingress
        devlink_tc_bind_pool_th_set $swp1 0 ingress 0 12
+       defer devlink_tc_bind_pool_th_restore $swp1 0 ingress
+
        devlink_port_pool_th_save $swp2 4
        devlink_port_pool_th_set $swp2 4 12
+       defer devlink_port_pool_th_restore $swp2 4
+
        devlink_tc_bind_pool_th_save $swp2 7 egress
        devlink_tc_bind_pool_th_set $swp2 7 egress 4 5
+       defer devlink_tc_bind_pool_th_restore $swp2 7 egress
+
        devlink_tc_bind_pool_th_save $swp2 6 egress
        devlink_tc_bind_pool_th_set $swp2 6 egress 4 5
+       defer devlink_tc_bind_pool_th_restore $swp2 6 egress
+
        devlink_tc_bind_pool_th_save $swp2 5 egress
        devlink_tc_bind_pool_th_set $swp2 5 egress 4 5
+       defer devlink_tc_bind_pool_th_restore $swp2 5 egress
 
        # Note: sch_ets_core.sh uses VLAN ingress-qos-map to assign packet
        # priorities at $swp1 based on their 802.1p headers. ingress-qos-map is
@@ -47,20 +59,6 @@ switch_create()
        # 1:1, which is the mapping currently hard-coded by the driver.
 }
 
-switch_destroy()
-{
-       devlink_tc_bind_pool_th_restore $swp2 5 egress
-       devlink_tc_bind_pool_th_restore $swp2 6 egress
-       devlink_tc_bind_pool_th_restore $swp2 7 egress
-       devlink_port_pool_th_restore $swp2 4
-       devlink_tc_bind_pool_th_restore $swp1 0 ingress
-       devlink_port_pool_th_restore $swp1 0
-
-       ets_switch_destroy
-
-       tc qdisc del dev $swp2 root handle 3:
-}
-
 # Callback from sch_ets_tests.sh
 collect_stats()
 {
index e60c8b4818ccac3e3ded27d0d901dfebb23aebbc..1f6f53e284b5e5bbc00998da7af3e4547513c740 100755 (executable)
@@ -24,15 +24,10 @@ switch_create()
        # Create a bottleneck so that the DWRR process can kick in.
        tc qdisc add dev $swp2 root handle 1: tbf \
           rate 1Gbit burst 1Mbit latency 100ms
+       defer tc qdisc del dev $swp2 root
        PARENT="parent 1:"
 }
 
-switch_destroy()
-{
-       ets_switch_destroy
-       tc qdisc del dev $swp2 root
-}
-
 # Callback from sch_ets_tests.sh
 collect_stats()
 {
index f906fcc66572700890337ed51de80d35c57298ca..8f9922c695b0ca16435365e8fe0e71af747fec9e 100644 (file)
@@ -166,44 +166,32 @@ h1_create()
        local i;
 
        simple_if_init $h1
+       defer simple_if_fini $h1
+
        mtu_set $h1 9900
+       defer mtu_restore $h1
+
        for i in {0..2}; do
                vlan_create $h1 1$i v$h1 $(sip $i)/28
+               defer vlan_destroy $h1 1$i
                ip link set dev $h1.1$i type vlan egress 0:$i
        done
 }
 
-h1_destroy()
-{
-       local i
-
-       for i in {0..2}; do
-               vlan_destroy $h1 1$i
-       done
-       mtu_restore $h1
-       simple_if_fini $h1
-}
-
 h2_create()
 {
        local i
 
        simple_if_init $h2
-       mtu_set $h2 9900
-       for i in {0..2}; do
-               vlan_create $h2 1$i v$h2 $(dip $i)/28
-       done
-}
+       defer simple_if_fini $h2
 
-h2_destroy()
-{
-       local i
+       mtu_set $h2 9900
+       defer mtu_restore $h2
 
        for i in {0..2}; do
-               vlan_destroy $h2 1$i
+               vlan_create $h2 1$i v$h2 $(dip $i)/28
+               defer vlan_destroy $h2 1$i
        done
-       mtu_restore $h2
-       simple_if_fini $h2
 }
 
 ets_switch_create()
@@ -211,44 +199,45 @@ ets_switch_create()
        local i
 
        ip link set dev $swp1 up
+       defer ip link set dev $swp1 down
+
        mtu_set $swp1 9900
+       defer mtu_restore $swp1
 
        ip link set dev $swp2 up
+       defer ip link set dev $swp2 down
+
        mtu_set $swp2 9900
+       defer mtu_restore $swp2
 
        for i in {0..2}; do
                vlan_create $swp1 1$i
+               defer vlan_destroy $swp1 1$i
                ip link set dev $swp1.1$i type vlan ingress 0:0 1:1 2:2
 
                vlan_create $swp2 1$i
+               defer vlan_destroy $swp2 1$i
 
                ip link add dev br1$i type bridge
+               defer ip link del dev br1$i
+
                ip link set dev $swp1.1$i master br1$i
+               defer ip link set dev $swp1.1$i nomaster
+
                ip link set dev $swp2.1$i master br1$i
+               defer ip link set dev $swp2.1$i nomaster
 
                ip link set dev br1$i up
-               ip link set dev $swp1.1$i up
-               ip link set dev $swp2.1$i up
-       done
-}
+               defer ip link set dev br1$i down
 
-ets_switch_destroy()
-{
-       local i
-
-       ets_delete_qdisc
+               ip link set dev $swp1.1$i up
+               defer ip link set dev $swp1.1$i down
 
-       for i in {0..2}; do
-               ip link del dev br1$i
-               vlan_destroy $swp2 1$i
-               vlan_destroy $swp1 1$i
+               ip link set dev $swp2.1$i up
+               defer ip link set dev $swp2.1$i down
        done
 
-       mtu_restore $swp2
-       ip link set dev $swp2 down
-
-       mtu_restore $swp1
-       ip link set dev $swp1 down
+       defer ets_delete_qdisc
 }
 
 setup_prepare()
@@ -263,23 +252,13 @@ setup_prepare()
        hut=$h2
 
        vrf_prepare
+       defer vrf_cleanup
 
        h1_create
        h2_create
        switch_create
 }
 
-cleanup()
-{
-       pre_cleanup
-
-       switch_destroy
-       h2_destroy
-       h1_destroy
-
-       vrf_cleanup
-}
-
 ping_ipv4()
 {
        ping_test $h1.10 $(dip 0) " vlan 10"
index f9d26a7911bb7b70f132748ea83f1b141ae000d8..08240d3e3c87a56afce8da0b49ebaba570042fbb 100644 (file)
@@ -90,6 +90,7 @@ __ets_dwrr_test()
 
        for stream in ${streams[@]}; do
                ets_start_traffic $stream
+               defer stop_traffic $!
        done
 
        sleep 10
@@ -120,25 +121,24 @@ __ets_dwrr_test()
                                       ${d[0]} ${d[$i]}
                fi
        done
-
-       for stream in ${streams[@]}; do
-               stop_traffic
-       done
 }
 
 ets_dwrr_test_012()
 {
-       __ets_dwrr_test 0 1 2
+       in_defer_scope \
+               __ets_dwrr_test 0 1 2
 }
 
 ets_dwrr_test_01()
 {
-       __ets_dwrr_test 0 1
+       in_defer_scope \
+               __ets_dwrr_test 0 1
 }
 
 ets_dwrr_test_12()
 {
-       __ets_dwrr_test 1 2
+       in_defer_scope \
+               __ets_dwrr_test 1 2
 }
 
 ets_qdisc_setup()