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

selftests: mptcp: sockopt: print every test result

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



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

Only total test results are printed out in mptcp_sockopt.sh:

PASS: all packets had packet mark set
PASS: SOL_MPTCP getsockopt has expected information
PASS: TCP_INQ cmsg/ioctl -t tcp
PASS: TCP_INQ cmsg/ioctl -6 -t tcp
PASS: TCP_INQ cmsg/ioctl -r tcp
PASS: TCP_INQ cmsg/ioctl -6 -r tcp
PASS: TCP_INQ cmsg/ioctl -r tcp -t tcp

They mismatch with the test results:

ok 1 - mptcp_sockopt: mark ipv4
ok 2 - mptcp_sockopt: transfer ipv4
ok 3 - mptcp_sockopt: mark ipv6
ok 4 - mptcp_sockopt: transfer ipv6
ok 5 - mptcp_sockopt: sockopt v4
ok 6 - mptcp_sockopt: sockopt v6
ok 7 - mptcp_sockopt: TCP_INQ: -t tcp
ok 8 - mptcp_sockopt: TCP_INQ: -6 -t tcp
ok 9 - mptcp_sockopt: TCP_INQ: -r tcp
ok 10 - mptcp_sockopt: TCP_INQ: -6 -r tcp
ok 11 - mptcp_sockopt: TCP_INQ: -r tcp -t tcp

'mptcp_sockopt.sh' now display more detailed results + why (what you had
in a former patch from v6, merged here). It no longer displays 'PASS:',
because it is duplicated info now that the detailed are displayed:

Transfer v4                                       [ OK ]
Mark v4                                           [ OK ]
Transfer v6                                       [ OK ]
Mark v6                                           [ OK ]
SOL_MPTCP sockopt v4                              [ OK ]
SOL_MPTCP sockopt v6                              [ OK ]
TCP_INQ cmsg/ioctl -t tcp                         [ OK ]
TCP_INQ cmsg/ioctl -6 -t tcp                      [ OK ]
TCP_INQ cmsg/ioctl -r tcp                         [ OK ]
TCP_INQ cmsg/ioctl -6 -r tcp                      [ OK ]
TCP_INQ cmsg/ioctl -r tcp -t tcp                  [ OK ]

Also fix the TAP output:

ok 1 - mptcp_sockopt: transfer ipv4
ok 2 - mptcp_sockopt: mark ipv4
ok 3 - mptcp_sockopt: transfer ipv6
ok 4 - mptcp_sockopt: mark ipv6
ok 5 - mptcp_sockopt: sockopt v4
ok 6 - mptcp_sockopt: sockopt v6
ok 7 - mptcp_sockopt: TCP_INQ: -t tcp
ok 8 - mptcp_sockopt: TCP_INQ: -6 -t tcp
ok 9 - mptcp_sockopt: TCP_INQ: -r tcp
ok 10 - mptcp_sockopt: TCP_INQ: -6 -r tcp
ok 11 - mptcp_sockopt: TCP_INQ: -r tcp -t tcp

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/20240308-upstream-net-next-20240308-selftests-mptcp-unification-v1-4-4f42c347b653@kernel.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>

(backported from commit fd959262c1bb09eac288445ff90696087e0d063f)

Signed-off-by: default avatarGeliang Tang <tanggeliang@kylinos.cn>
Change-Id: I04a28edd84d40e5cc55955fd0839ce0377286de3
Reviewed-on: http://gerrit.kylin.com/c/klinux/+/100118


Code-Style: k2ci <kernel-bot@kylinos.cn>
Tested-by: default avatark2ci <kernel-bot@kylinos.cn>
Reviewed-by: default avatarJackie Liu <liuyun01@kylinos.cn>
parent 386e02c7
Loading
Loading
Loading
Loading
+25 −17
Original line number Diff line number Diff line
@@ -113,6 +113,11 @@ check_mark()
	return 0
}

print_title()
{
	printf "%-50s" "${@}"
}

do_transfer()
{
	local listener_ns="$1"
@@ -162,8 +167,9 @@ do_transfer()
	wait $spid
	local rets=$?

	print_title "Transfer ${ip:2}"
	if [ ${rets} -ne 0 ] || [ ${retc} -ne 0 ]; then
		echo " client exit code $retc, server $rets"
		echo "[FAIL] client exit code $retc, server $rets"
		echo -e "\nnetns ${listener_ns} socket stat for ${port}:" 1>&2
		ip netns exec ${listener_ns} ss -Menita 1>&2 -o "sport = :$port"

@@ -175,7 +181,14 @@ do_transfer()
		ret=1
		return 1
	fi
	if ! mptcp_lib_check_transfer $cin $sout "file received by server"; then
		rets=1
	else
		echo "[ OK ]"
	fi
	mptcp_lib_result_code "${rets}" "transfer ${ip}"

	print_title "Mark ${ip:2}"
	if [ $local_addr = "::" ];then
		check_mark $listener_ns 6 || retc=1
		check_mark $connector_ns 6 || retc=1
@@ -184,15 +197,13 @@ do_transfer()
		check_mark $connector_ns 4 || retc=1
	fi

	mptcp_lib_check_transfer $cin $sout "file received by server"
	rets=$?

	mptcp_lib_result_code "${retc}" "mark ${ip}"
	mptcp_lib_result_code "${rets}" "transfer ${ip}"

	if [ $retc -eq 0 ] && [ $rets -eq 0 ];then
		echo "[ OK ]"
		return 0
	fi
	echo "[FAIL]"

	return 1
}
@@ -221,23 +232,27 @@ do_mptcp_sockopt_tests()
	ip netns exec "$ns_sbox" ./mptcp_sockopt
	lret=$?

	print_title "SOL_MPTCP sockopt v4"
	if [ $lret -ne 0 ]; then
		echo "FAIL: SOL_MPTCP getsockopt"
		echo "[FAIL]"
		mptcp_lib_result_fail "sockopt v4"
		ret=$lret
		return
	fi
	echo "[ OK ]"
	mptcp_lib_result_pass "sockopt v4"

	ip netns exec "$ns_sbox" ./mptcp_sockopt -6
	lret=$?

	print_title "SOL_MPTCP sockopt v6"
	if [ $lret -ne 0 ]; then
		echo "FAIL: SOL_MPTCP getsockopt (ipv6)"
		echo "[FAIL]"
		mptcp_lib_result_fail "sockopt v6"
		ret=$lret
		return
	fi
	echo "[ OK ]"
	mptcp_lib_result_pass "sockopt v6"
}

@@ -260,16 +275,17 @@ run_tests()

do_tcpinq_test()
{
	print_title "TCP_INQ cmsg/ioctl $*"
	ip netns exec "$ns_sbox" ./mptcp_inq "$@"
	local lret=$?
	if [ $lret -ne 0 ];then
		ret=$lret
		echo "FAIL: mptcp_inq $*"
		echo "[FAIL]"
		mptcp_lib_result_fail "TCP_INQ: $*"
		return $lret
	fi

	echo "PASS: TCP_INQ cmsg/ioctl $*"
	echo "[ OK ]"
	mptcp_lib_result_pass "TCP_INQ: $*"
	return $lret
}
@@ -315,15 +331,7 @@ trap cleanup EXIT
run_tests $ns1 $ns2 10.0.1.1
run_tests $ns1 $ns2 dead:beef:1::1

if [ $ret -eq 0 ];then
	echo "PASS: all packets had packet mark set"
fi

do_mptcp_sockopt_tests
if [ $ret -eq 0 ];then
	echo "PASS: SOL_MPTCP getsockopt has expected information"
fi

do_tcpinq_tests

mptcp_lib_result_print_all_tap