Commit cccaa97b authored by Geliang Tang's avatar Geliang Tang
Browse files

selftests: mptcp: add mptcp_lib_check_output helper

mainline inclusion
from mainline-v6.9-rc1
commit 2d0c1d27ea4eced07bd841d1cfccb838b437dfae
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=2d0c1d27ea4eced07bd841d1cfccb838b437dfae



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

Extract the main part of check() in pm_netlink.sh into a new helper
named mptcp_lib_check_output in mptcp_lib.sh.

This helper will be used for userspace dump addresses tests.

Co-developed-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: default avatarGeliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Reviewed-by: default avatarMat Martineau <martineau@kernel.org>
Signed-off-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Reviewed-by: default avatarJackie Liu <liuyun01@kylinos.cn>
Signed-off-by: default avatarGeliang Tang <tanggeliang@kylinos.cn>
parent 62a58e3d
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -330,3 +330,26 @@ mptcp_lib_wait_local_port_listen() {
		sleep 0.1
	done
}

mptcp_lib_check_output() {
	local err="${1}"
	local cmd="${2}"
	local expected="${3}"
	local cmd_ret=0
	local out

	if ! out=$(${cmd} 2>"${err}"); then
		cmd_ret=${?}
	fi

	if [ ${cmd_ret} -ne 0 ]; then
		mptcp_lib_print_err "[FAIL] command execution '${cmd}' stderr"
		cat "${err}"
		return 2
	elif [ "${out}" = "${expected}" ]; then
		return 0
	else
		mptcp_lib_print_err "[FAIL] expected '${expected}' got '${out}'"
		return 1
	fi
}
+7 −11
Original line number Diff line number Diff line
@@ -54,21 +54,17 @@ check()
	local cmd="$1"
	local expected="$2"
	local msg="$3"
	local out=`$cmd 2>$err`
	local cmd_ret=$?
	local rc=0

	printf "%-50s" "$msg"
	if [ $cmd_ret -ne 0 ]; then
		echo "[FAIL] command execution '$cmd' stderr "
		cat $err
		mptcp_lib_result_fail "${msg} # error ${cmd_ret}"
	mptcp_lib_check_output "${err}" "${cmd}" "${expected}" || rc=${?}
	if [ ${rc} -eq 2 ]; then
		mptcp_lib_result_fail "${msg} # error ${rc}"
		ret=1
	elif [ "$out" = "$expected" ]; then
		echo "[ OK ]"
	elif [ ${rc} -eq 0 ]; then
		mptcp_lib_print_ok "[ OK ]"
		mptcp_lib_result_pass "${msg}"
	else
		echo -n "[FAIL] "
		echo "expected '$expected' got '$out'"
	elif [ ${rc} -eq 1 ]; then
		mptcp_lib_result_fail "${msg} # different output"
		ret=1
	fi