[PATCH mptcp-next v3 05/10] selftests: mptcp: add mptcp_lib_verify_listener_events

Geliang Tang posted 10 patches 2 years, 3 months ago
There is a newer version of this series
[PATCH mptcp-next v3 05/10] selftests: mptcp: add mptcp_lib_verify_listener_events
Posted by Geliang Tang 2 years, 3 months ago
To avoid duplicated code in different MPTCP selftests, we can add
and use helpers defined in mptcp_lib.sh.

verify_listener_events() helper is defined both in mptcp_join.sh and
userspace_pm.sh, export it into mptcp_lib.sh and rename it with
mptcp_lib_ prefix. Use this new helper in both scripts.

Signed-off-by: Geliang Tang <geliang.tang@suse.com>
---
 .../testing/selftests/net/mptcp/mptcp_join.sh | 54 +++++--------------
 .../testing/selftests/net/mptcp/mptcp_lib.sh  | 32 +++++++++++
 .../selftests/net/mptcp/userspace_pm.sh       | 30 ++---------
 3 files changed, 49 insertions(+), 67 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index f922d32f4f20..f98166b232c2 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -2779,49 +2779,17 @@ backup_tests()
 
 verify_listener_events()
 {
-	local evt=$1
-	local e_type=$2
-	local e_family=$3
-	local e_saddr=$4
-	local e_sport=$5
-	local type
-	local family
-	local saddr
-	local sport
 	local name
 
-	if [ $e_type = $MPTCP_LIB_LISTENER_CREATED ]; then
+	if [ $2 = $MPTCP_LIB_LISTENER_CREATED ]; then
 		name="LISTENER_CREATED"
-	elif [ $e_type = $MPTCP_LIB_LISTENER_CLOSED ]; then
+	elif [ $2 = $MPTCP_LIB_LISTENER_CLOSED ]; then
 		name="LISTENER_CLOSED "
-	else
-		name="$e_type"
 	fi
+	printf "%-6s%-36s" " " "$name $4:$5"
 
-	print_check "$name $e_saddr:$e_sport"
-
-	if ! mptcp_lib_kallsyms_has "mptcp_event_pm_listener$"; then
-		print_skip "event not supported"
-		return
-	fi
-
-	type=$(mptcp_lib_evts_get_info type "$evt" "$e_type")
-	family=$(mptcp_lib_evts_get_info family "$evt" "$e_type")
-	sport=$(mptcp_lib_evts_get_info sport "$evt" "$e_type")
-	if [ $family ] && [ $family = $AF_INET6 ]; then
-		saddr=$(mptcp_lib_evts_get_info saddr6 "$evt" "$e_type")
-	else
-		saddr=$(mptcp_lib_evts_get_info saddr4 "$evt" "$e_type")
-	fi
-
-	if [ $type ] && [ $type = $e_type ] &&
-	   [ $family ] && [ $family = $e_family ] &&
-	   [ $saddr ] && [ $saddr = $e_saddr ] &&
-	   [ $sport ] && [ $sport = $e_sport ]; then
-		print_ok
-		return 0
-	fi
-	fail_test "$e_type:$type $e_family:$family $e_saddr:$saddr $e_sport:$sport"
+	mptcp_lib_verify_listener_events ${*}
+	[ $? -eq 1 ] && fail_test "$name $4:$5"
 }
 
 add_addr_ports_tests()
@@ -2859,10 +2827,14 @@ add_addr_ports_tests()
 		chk_add_nr 1 1 1
 		chk_rm_nr 1 1 invert
 
-		verify_listener_events $server_evts $MPTCP_LIB_LISTENER_CREATED \
-				       $AF_INET 10.0.2.1 10100
-		verify_listener_events $server_evts $MPTCP_LIB_LISTENER_CLOSED \
-				       $AF_INET 10.0.2.1 10100
+		if mptcp_lib_kallsyms_has "mptcp_event_pm_listener$"; then
+			verify_listener_events $server_evts $MPTCP_LIB_LISTENER_CREATED \
+					       $AF_INET 10.0.2.1 10100
+			verify_listener_events $server_evts $MPTCP_LIB_LISTENER_CLOSED \
+					       $AF_INET 10.0.2.1 10100
+		else
+			mptcp_lib_print_warn "[skip] event not supported"
+		fi
 		mptcp_lib_evts_kill
 	fi
 
diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
index 68b07216e47a..0aea2c5175d5 100644
--- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
@@ -411,3 +411,35 @@ mptcp_lib_check_expected()
 
 	return 1
 }
+
+mptcp_lib_verify_listener_events() {
+	local evt=$1
+	local e_type=$2
+	local e_family=$3
+	local e_saddr=$4
+	local e_sport=$5
+	local type
+	local family
+	local saddr
+	local sport
+	local name
+
+	if [ $e_type = $MPTCP_LIB_LISTENER_CREATED ]; then
+		name="LISTENER_CREATED"
+	elif [ $e_type = $MPTCP_LIB_LISTENER_CLOSED ]; then
+		name="LISTENER_CLOSED "
+	else
+		name="$e_type"
+	fi
+
+	type=$(mptcp_lib_evts_get_info type "$evt" "$e_type")
+	family=$(mptcp_lib_evts_get_info family "$evt" "$e_type")
+	sport=$(mptcp_lib_evts_get_info sport "$evt" "$e_type")
+	if [ $family ] && [ $family = $AF_INET6 ]; then
+		saddr=$(mptcp_lib_evts_get_info saddr6 "$evt" "$e_type")
+	else
+		saddr=$(mptcp_lib_evts_get_info saddr4 "$evt" "$e_type")
+	fi
+
+	mptcp_lib_check_expected "type" "family" "saddr" "sport"
+}
diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/testing/selftests/net/mptcp/userspace_pm.sh
index 6a84e563b2ca..f99edce8171f 100755
--- a/tools/testing/selftests/net/mptcp/userspace_pm.sh
+++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh
@@ -832,32 +832,8 @@ test_prio()
 
 verify_listener_events()
 {
-	local evt=$1
-	local e_type=$2
-	local e_family=$3
-	local e_saddr=$4
-	local e_sport=$5
-	local type
-	local family
-	local saddr
-	local sport
-
-	if [ $e_type = $MPTCP_LIB_LISTENER_CREATED ]; then
-		print_test "CREATE_LISTENER $e_saddr:$e_sport"
-	elif [ $e_type = $MPTCP_LIB_LISTENER_CLOSED ]; then
-		print_test "CLOSE_LISTENER $e_saddr:$e_sport"
-	fi
-
-	type=$(mptcp_lib_evts_get_info type $evt $e_type)
-	family=$(mptcp_lib_evts_get_info family $evt $e_type)
-	sport=$(mptcp_lib_evts_get_info sport $evt $e_type)
-	if [ $family ] && [ $family = $AF_INET6 ]; then
-		saddr=$(mptcp_lib_evts_get_info saddr6 $evt $e_type)
-	else
-		saddr=$(mptcp_lib_evts_get_info saddr4 $evt $e_type)
-	fi
-
-	check_expected "type" "family" "saddr" "sport"
+	mptcp_lib_verify_listener_events ${*}
+	[ $? -eq 0 ] && mptcp_lib_result_pass "${TEST_NAME}"
 }
 
 test_listener()
@@ -879,6 +855,7 @@ test_listener()
 	local listener_pid=$!
 
 	sleep 0.5
+	print_test "LISTENER_CREATED 10.0.2.2:$client4_port"
 	verify_listener_events $client_evts $MPTCP_LIB_LISTENER_CREATED \
 			       $AF_INET 10.0.2.2 $client4_port
 
@@ -896,6 +873,7 @@ test_listener()
 	mptcp_lib_kill_wait $listener_pid
 
 	sleep 0.5
+	print_test "LISTENER_CLOSED 10.0.2.2:$client4_port"
 	verify_listener_events $client_evts $MPTCP_LIB_LISTENER_CLOSED \
 			       $AF_INET 10.0.2.2 $client4_port
 }
-- 
2.35.3