selftests: mptcp: add mptcp_lib_check_tools helper

This patch exports check_tools() helper from mptcp_join.sh into
mptcp_lib.sh as a public one mptcp_lib_check_tools(). The arguments
"ip", "ss", "iptables" and "ip6tables" are passed into this helper
to indicate whether to check ip tool, ss tool, iptables and ip6tables
tools.

This helper can be used in every scripts.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://lore.kernel.org/r/20240306-upstream-net-next-20240304-selftests-mptcp-shared-code-shellcheck-v2-2-bc79e6e5e6a0@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Geliang Tang 2024-03-06 10:42:51 +01:00 committed by Jakub Kicinski
parent 7c2eac6490
commit 3fb8c33ef4
8 changed files with 40 additions and 73 deletions

View File

@ -34,17 +34,7 @@ cleanup()
}
mptcp_lib_check_mptcp
ip -Version > /dev/null 2>&1
if [ $? -ne 0 ];then
echo "SKIP: Could not run test without ip tool"
exit $ksft_skip
fi
ss -h | grep -q MPTCP
if [ $? -ne 0 ];then
echo "SKIP: ss tool does not support MPTCP"
exit $ksft_skip
fi
mptcp_lib_check_tools ip ss
get_msk_inuse()
{

View File

@ -147,12 +147,7 @@ cleanup()
mptcp_lib_check_mptcp
mptcp_lib_check_kallsyms
ip -Version > /dev/null 2>&1
if [ $? -ne 0 ];then
echo "SKIP: Could not run test without ip tool"
exit $ksft_skip
fi
mptcp_lib_check_tools ip
sin=$(mktemp)
sout=$(mktemp)

View File

@ -152,34 +152,12 @@ cleanup_partial()
done
}
check_tools()
{
mptcp_lib_check_mptcp
mptcp_lib_check_kallsyms
if ! ip -Version &> /dev/null; then
echo "SKIP: Could not run test without ip tool"
exit $ksft_skip
fi
if ! ss -h | grep -q MPTCP; then
echo "SKIP: ss tool does not support MPTCP"
exit $ksft_skip
fi
if ! "${iptables}" -V &> /dev/null; then
echo "SKIP: Could not run all tests without ${iptables} tool"
exit $ksft_skip
elif ! "${ip6tables}" -V &> /dev/null; then
echo "SKIP: Could not run all tests without ${ip6tables} tool"
exit $ksft_skip
fi
}
init() {
init=1
check_tools
mptcp_lib_check_mptcp
mptcp_lib_check_kallsyms
mptcp_lib_check_tools ip ss "${iptables}" "${ip6tables}"
sin=$(mktemp)
sout=$(mktemp)

View File

@ -342,3 +342,34 @@ mptcp_lib_check_output() {
return 1
fi
}
mptcp_lib_check_tools() {
local tool
for tool in "${@}"; do
case "${tool}" in
"ip")
if ! ip -Version &> /dev/null; then
mptcp_lib_print_warn "SKIP: Could not run test without ip tool"
exit ${KSFT_SKIP}
fi
;;
"ss")
if ! ss -h | grep -q MPTCP; then
mptcp_lib_print_warn "SKIP: ss tool does not support MPTCP"
exit ${KSFT_SKIP}
fi
;;
"iptables"* | "ip6tables"*)
if ! "${tool}" -V &> /dev/null; then
mptcp_lib_print_warn "SKIP: Could not run all tests without ${tool}"
exit ${KSFT_SKIP}
fi
;;
*)
mptcp_lib_print_err "Internal error: unsupported tool: ${tool}"
exit ${KSFT_FAIL}
;;
esac
done
}

View File

@ -89,20 +89,7 @@ cleanup()
mptcp_lib_check_mptcp
mptcp_lib_check_kallsyms
ip -Version > /dev/null 2>&1
if [ $? -ne 0 ];then
echo "SKIP: Could not run test without ip tool"
exit $ksft_skip
fi
if ! "${iptables}" -V &> /dev/null; then
echo "SKIP: Could not run all tests without ${iptables} tool"
exit $ksft_skip
elif ! "${ip6tables}" -V &> /dev/null; then
echo "SKIP: Could not run all tests without ${ip6tables} tool"
exit $ksft_skip
fi
mptcp_lib_check_tools ip "${iptables}" "${ip6tables}"
check_mark()
{

View File

@ -36,12 +36,7 @@ cleanup()
}
mptcp_lib_check_mptcp
ip -Version > /dev/null 2>&1
if [ $? -ne 0 ];then
echo "SKIP: Could not run test without ip tool"
exit $ksft_skip
fi
mptcp_lib_check_tools ip
trap cleanup EXIT

View File

@ -43,12 +43,7 @@ cleanup()
}
mptcp_lib_check_mptcp
ip -Version > /dev/null 2>&1
if [ $? -ne 0 ];then
echo "SKIP: Could not run test without ip tool"
exit $ksft_skip
fi
mptcp_lib_check_tools ip
# "$ns1" ns2 ns3
# ns1eth1 ns2eth1 ns2eth3 ns3eth1

View File

@ -17,11 +17,7 @@ if ! mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then
echo "userspace pm tests are not supported by the kernel: SKIP"
exit ${KSFT_SKIP}
fi
if ! ip -Version &> /dev/null; then
echo "SKIP: Cannot not run test without ip tool"
exit ${KSFT_SKIP}
fi
mptcp_lib_check_tools ip
ANNOUNCED=6 # MPTCP_EVENT_ANNOUNCED
REMOVED=7 # MPTCP_EVENT_REMOVED