selftests: forwarding: sch_tbf_*: Add a pre-run hook
authorPetr Machata <petrm@nvidia.com>
Tue, 18 Apr 2023 11:14:56 +0000 (14:14 +0300)
committerJakub Kicinski <kuba@kernel.org>
Fri, 21 Apr 2023 03:03:21 +0000 (20:03 -0700)
The driver-specific wrappers of these selftests invoke bail_on_lldpad to
make sure that LLDPAD doesn't trample the configuration. The function
bail_on_lldpad is going to move to lib.sh in the next patch. With that, it
won't be visible for the wrappers before sourcing the framework script. And
after sourcing it, it is too late: the selftest will have run by then.

One option might be to source NUM_NETIFS=0 lib.sh from the wrapper, but
even if that worked (it might, it might not), that seems cumbersome. lib.sh
is doing fair amount of stuff, and even if it works today, it does not look
particularly solid as a solution.

Instead, introduce a hook, sch_tbf_pre_hook(), that when available, gets
invoked. Move the bail to the hook.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/drivers/net/mlxsw/sch_tbf_ets.sh
tools/testing/selftests/drivers/net/mlxsw/sch_tbf_prio.sh
tools/testing/selftests/drivers/net/mlxsw/sch_tbf_root.sh
tools/testing/selftests/net/forwarding/sch_tbf_etsprio.sh
tools/testing/selftests/net/forwarding/sch_tbf_root.sh

index c6ce0b448bf3a8c693bb01c755385125c1ba6034..b9b4cdf14ceb0d330d751c92636d05aae621e35a 100755 (executable)
@@ -2,7 +2,11 @@
 # SPDX-License-Identifier: GPL-2.0
 
 source qos_lib.sh
-bail_on_lldpad
+
+sch_tbf_pre_hook()
+{
+       bail_on_lldpad
+}
 
 lib_dir=$(dirname $0)/../../../net/forwarding
 TCFLAGS=skip_sw
index 8d245f331619a5b91b057293507f2c977202deeb..dff9810ee04fb438b8a77b5e801c4d26e8838586 100755 (executable)
@@ -2,7 +2,11 @@
 # SPDX-License-Identifier: GPL-2.0
 
 source qos_lib.sh
-bail_on_lldpad
+
+sch_tbf_pre_hook()
+{
+       bail_on_lldpad
+}
 
 lib_dir=$(dirname $0)/../../../net/forwarding
 TCFLAGS=skip_sw
index 013886061f15d7a71f3a9047d55e9270bbbd7a99..75406bd7036e1c7ebca07ebeacf2c2e404525a8e 100755 (executable)
@@ -2,7 +2,11 @@
 # SPDX-License-Identifier: GPL-2.0
 
 source qos_lib.sh
-bail_on_lldpad
+
+sch_tbf_pre_hook()
+{
+       bail_on_lldpad
+}
 
 lib_dir=$(dirname $0)/../../../net/forwarding
 TCFLAGS=skip_sw
index 75a37c189ef3558ece678f371a829ba919e83ef7..df9bcd6a811a868609f82b3b774ca891642fbebf 100644 (file)
@@ -57,6 +57,10 @@ tbf_root_test()
        tc qdisc del dev $swp2 root
 }
 
+if type -t sch_tbf_pre_hook >/dev/null; then
+       sch_tbf_pre_hook
+fi
+
 trap cleanup EXIT
 
 setup_prepare
index 72aa21ba88c72eb3a214a410cfcae2dcdb2221e3..96c997be0d03c9a4566eb94439726b1ac8b0ddf9 100755 (executable)
@@ -23,6 +23,10 @@ tbf_test()
        tc qdisc del dev $swp2 root
 }
 
+if type -t sch_tbf_pre_hook >/dev/null; then
+       sch_tbf_pre_hook
+fi
+
 trap cleanup EXIT
 
 setup_prepare