Commit 405a7f4f authored by Geliang Tang's avatar Geliang Tang
Browse files

selftests: mptcp: add mptcp_lib_check_tools helper

mainline inclusion
from mainline-v6.9-rc1
commit 3fb8c33ef4b90f4cc83e635ca716a831d5251bc7
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I9VYQ9
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=3fb8c33ef4b90f4cc83e635ca716a831d5251bc7



--------------------------------

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: default avatarGeliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: default avatarMatthieu 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: default avatarJakub Kicinski <kuba@kernel.org>
Reviewed-by: default avatarJackie Liu <liuyun01@kylinos.cn>
Signed-off-by: default avatarGeliang Tang <tanggeliang@kylinos.cn>
parent 394aea6e
Loading
Loading
Loading
Loading
+1 −11
Original line number Diff line number Diff line
@@ -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()
{
+1 −6
Original line number Diff line number Diff line
@@ -153,12 +153,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)
+3 −25
Original line number Diff line number Diff line
@@ -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)
+31 −0
Original line number Diff line number Diff line
@@ -353,3 +353,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
}
+1 −14
Original line number Diff line number Diff line
@@ -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()
{
Loading