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 c6ce0b4..b9b4cdf 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 8d245f3..dff9810 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 0138860..75406bd 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 75a37c1..df9bcd6 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 72aa21b..96c997b 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