selftests: forwarding: lib: Move require_command to net, generalize

This helper could be useful to more than just forwarding tests.
Move it upstairs and port over to log_test_skip().

Split the function into two parts: the bit that actually checks and
reports skip, which is in a new function check_command(). And a bit
that exits the test script if the check fails. This allows users
consistent checking behavior while giving an option to bail out from
a single test without bailing out of the whole script.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Petr Machata
2025-02-14 17:18:22 +01:00
committed by Paolo Abeni
parent d42d543368
commit f802f172d7
2 changed files with 19 additions and 10 deletions

View File

@@ -291,16 +291,6 @@ if [[ "$CHECK_TC" = "yes" ]]; then
check_tc_version
fi
require_command()
{
local cmd=$1; shift
if [[ ! -x "$(command -v "$cmd")" ]]; then
echo "SKIP: $cmd not installed"
exit $ksft_skip
fi
}
# IPv6 support was added in v3.0
check_mtools_version()
{

View File

@@ -450,6 +450,25 @@ kill_process()
{ kill $pid && wait $pid; } 2>/dev/null
}
check_command()
{
local cmd=$1; shift
if [[ ! -x "$(command -v "$cmd")" ]]; then
log_test_skip "$cmd not installed"
return $EXIT_STATUS
fi
}
require_command()
{
local cmd=$1; shift
if ! check_command "$cmd"; then
exit $EXIT_STATUS
fi
}
ip_link_add()
{
local name=$1; shift