From nobody Sun May 19 03:12:52 2024 Received: from out-184.mta0.migadu.com (out-184.mta0.migadu.com [91.218.175.184]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E22C84F60D for ; Thu, 21 Dec 2023 11:33:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="brlSY1P3" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KiYisfYzrRLhxqrYcLWDDDhoQPpeeOGhOdf+B7qRHY4=; b=brlSY1P3oyzljLmuOkFp10lSgHeHbR3zCrJ1Mj51rZrNZxJOqLAyfKN0m+H2o4gRJgUoD4 487Rgj0tQOicy1vqW7JzCve+AYy6gvBAztiC1PysGJj/+0rcbh2wlAbCSW+UC3RkpaqieO dmarxv7ZZ3bc1j0DDuzPqNLfsepAX/U= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 01/15] selftests: mptcp: add mptcp_lib_evts_* helpers Date: Thu, 21 Dec 2023 19:31:04 +0800 Message-Id: In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" To avoid duplicated code in different MPTCP selftests, we can add and use helpers defined in mptcp_lib.sh. This patch unifies "pm_nl_ctl events" related code in userspace_pm.sh and mptcp_join.sh into four helpers: mptcp_lib_evts_init(), _start(), _kill() and _remove(). Define them in mptcp_lib.sh and use these new helpers in both scripts. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 66 ++++++--------- .../testing/selftests/net/mptcp/mptcp_lib.sh | 81 +++++++++++++++++++ .../selftests/net/mptcp/userspace_pm.sh | 31 ++----- 3 files changed, 112 insertions(+), 66 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index e603baa1d4a8..1ebe6e266657 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -36,10 +36,6 @@ ip_mptcp=3D0 check_invert=3D0 validate_checksum=3D0 init=3D0 -evts_ns1=3D"" -evts_ns2=3D"" -evts_ns1_pid=3D0 -evts_ns2_pid=3D0 last_test_failed=3D0 last_test_skipped=3D0 last_test_ignored=3D1 @@ -185,8 +181,7 @@ init() { cin=3D$(mktemp) cinsent=3D$(mktemp) cout=3D$(mktemp) - evts_ns1=3D$(mktemp) - evts_ns2=3D$(mktemp) + mptcp_lib_evts_init check_output_err=3D$(mktemp) =20 trap cleanup EXIT @@ -200,7 +195,7 @@ cleanup() rm -f "$cin" "$cout" "$sinfail" rm -f "$sin" "$sout" "$cinsent" "$cinfail" rm -f "$tmpfile" - rm -rf $evts_ns1 $evts_ns2 + mptcp_lib_evts_remove rm -f $check_output_err cleanup_partial } @@ -465,12 +460,7 @@ reset_with_events() { reset "${1}" || return 1 =20 - :> "$evts_ns1" - :> "$evts_ns2" - ip netns exec $ns1 ./pm_nl_ctl events >> "$evts_ns1" 2>&1 & - evts_ns1_pid=3D$! - ip netns exec $ns2 ./pm_nl_ctl events >> "$evts_ns2" 2>&1 & - evts_ns2_pid=3D$! + mptcp_lib_evts_start "${ns1}" "${ns2}" } =20 reset_with_tcp_filter() @@ -640,12 +630,6 @@ wait_mpj() done } =20 -kill_events_pids() -{ - mptcp_lib_kill_wait $evts_ns1_pid - mptcp_lib_kill_wait $evts_ns2_pid -} - kill_tests_wait() { #shellcheck disable=3DSC2046 @@ -2922,9 +2906,9 @@ add_addr_ports_tests() chk_add_nr 1 1 1 chk_rm_nr 1 1 invert =20 - verify_listener_events $evts_ns1 $LISTENER_CREATED $AF_INET 10.0.2.1 101= 00 - verify_listener_events $evts_ns1 $LISTENER_CLOSED $AF_INET 10.0.2.1 10100 - kill_events_pids + verify_listener_events $server_evts $LISTENER_CREATED $AF_INET 10.0.2.1 = 10100 + verify_listener_events $server_evts $LISTENER_CLOSED $AF_INET 10.0.2.1 1= 0100 + mptcp_lib_evts_kill fi =20 # subflow and signal with port, remove @@ -3297,10 +3281,10 @@ fail_tests() # $1: ns ; $2: addr ; $3: id userspace_pm_add_addr() { - local evts=3D$evts_ns1 + local evts=3D$server_evts local tk =20 - [ "$1" =3D=3D "$ns2" ] && evts=3D$evts_ns2 + [ "$1" =3D=3D "$ns2" ] && evts=3D$client_evts tk=3D$(mptcp_lib_evts_get_info token "$evts") =20 ip netns exec $1 ./pm_nl_ctl ann $2 token $tk id $3 @@ -3310,11 +3294,11 @@ userspace_pm_add_addr() # $1: ns ; $2: id userspace_pm_rm_addr() { - local evts=3D$evts_ns1 + local evts=3D$server_evts local tk local cnt =20 - [ "$1" =3D=3D "$ns2" ] && evts=3D$evts_ns2 + [ "$1" =3D=3D "$ns2" ] && evts=3D$client_evts tk=3D$(mptcp_lib_evts_get_info token "$evts") =20 cnt=3D$(rm_addr_count ${1}) @@ -3325,10 +3309,10 @@ userspace_pm_rm_addr() # $1: ns ; $2: addr ; $3: id userspace_pm_add_sf() { - local evts=3D$evts_ns1 + local evts=3D$server_evts local tk da dp =20 - [ "$1" =3D=3D "$ns2" ] && evts=3D$evts_ns2 + [ "$1" =3D=3D "$ns2" ] && evts=3D$client_evts tk=3D$(mptcp_lib_evts_get_info token "$evts") da=3D$(mptcp_lib_evts_get_info daddr4 "$evts") dp=3D$(mptcp_lib_evts_get_info dport "$evts") @@ -3341,13 +3325,13 @@ userspace_pm_add_sf() # $1: ns ; $2: addr $3: event type userspace_pm_rm_sf() { - local evts=3D$evts_ns1 + local evts=3D$server_evts local t=3D${3:-1} local ip=3D4 local tk da dp sp local cnt =20 - [ "$1" =3D=3D "$ns2" ] && evts=3D$evts_ns2 + [ "$1" =3D=3D "$ns2" ] && evts=3D$client_evts if mptcp_lib_is_v6 $2; then ip=3D6; fi tk=3D$(mptcp_lib_evts_get_info token "$evts") da=3D$(mptcp_lib_evts_get_info "daddr$ip" "$evts" $t) @@ -3363,10 +3347,10 @@ userspace_pm_rm_sf() # $1: ns userspace_pm_dump() { - local evts=3D$evts_ns1 + local evts=3D$server_evts local tk =20 - [ "$1" =3D=3D "$ns2" ] && evts=3D$evts_ns2 + [ "$1" =3D=3D "$ns2" ] && evts=3D$client_evts tk=3D$(mptcp_lib_evts_get_info token "$evts") =20 ip netns exec $1 ./pm_nl_ctl dump token $tk @@ -3375,10 +3359,10 @@ userspace_pm_dump() # $1: ns ; $2: id userspace_pm_get_addr() { - local evts=3D$evts_ns1 + local evts=3D$server_evts local tk =20 - [ "$1" =3D=3D "$ns2" ] && evts=3D$evts_ns2 + [ "$1" =3D=3D "$ns2" ] && evts=3D$client_evts tk=3D$(mptcp_lib_evts_get_info token "$evts") =20 ip netns exec $1 ./pm_nl_ctl get $2 token $tk @@ -3503,7 +3487,7 @@ userspace_tests() chk_rm_nr 1 1 invert chk_mptcp_info subflows 0 subflows 0 chk_subflows_total 1 1 - kill_events_pids + mptcp_lib_evts_kill wait $tests_pid fi =20 @@ -3525,7 +3509,7 @@ userspace_tests() chk_rm_nr 1 1 chk_mptcp_info subflows 0 subflows 0 chk_subflows_total 1 1 - kill_events_pids + mptcp_lib_evts_kill wait $tests_pid fi =20 @@ -3544,7 +3528,7 @@ userspace_tests() chk_join_nr 1 1 1 chk_mptcp_info subflows 1 subflows 1 chk_subflows_total 2 2 - kill_events_pids + mptcp_lib_evts_kill wait $tests_pid fi =20 @@ -3568,7 +3552,7 @@ userspace_tests() chk_rst_nr 0 0 invert chk_mptcp_info subflows 1 subflows 1 chk_subflows_total 1 1 - kill_events_pids + mptcp_lib_evts_kill wait $tests_pid fi =20 @@ -3594,7 +3578,7 @@ userspace_tests() chk_rst_nr 0 0 invert chk_mptcp_info subflows 1 subflows 1 chk_subflows_total 1 1 - kill_events_pids + mptcp_lib_evts_kill wait $tests_pid fi =20 @@ -3618,7 +3602,7 @@ userspace_tests() "$dump" " get id 10 addr" check_output "userspace_pm_dump $ns1" \ "$dump" " dump addrs signal" - kill_events_pids + mptcp_lib_evts_kill wait $tests_pid fi =20 @@ -3642,7 +3626,7 @@ userspace_tests() "$dump" " get id 20 addr" check_output "userspace_pm_dump $ns2" \ "$dump" " dump addrs subflow" - kill_events_pids + mptcp_lib_evts_kill wait $tests_pid fi } diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 022262a2cfe0..927fb0c18142 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -298,3 +298,84 @@ mptcp_lib_wait_local_port_listen() { sleep 0.1 done } + +# $1: ns, $2: cestab nr +mptcp_lib_chk_cestab_nr() { + local ns=3D$1 + local cestab=3D$2 + local count + + count=3D$(mptcp_lib_get_counter ${ns} "MPTcpExtMPCurrEstab") + if [ -z "$count" ]; then + mptcp_lib_print_warn "[ SKIP ]" + elif [ "$count" !=3D "$cestab" ]; then + mptcp_lib_print_err "[ FAIL ] got $count current establish[s] expected $= cestab" + return 1 + else + mptcp_lib_print_ok "[ OK ]" + fi + return 0 +} + +server_evts=3D"" +client_evts=3D"" +server_evts_pid=3D0 +client_evts_pid=3D0 + +# server_evts(_pid) and client_evts(_pid) are needed +# by mptcp_lib_evts_init, _start, _kill and _remove. +mptcp_lib_evts_init() { + : "${server_evts?}" + : "${client_evts?}" + + if [ -z "${server_evts}" ]; then + server_evts=3D$(mktemp) + fi + if [ -z "${client_evts}" ]; then + client_evts=3D$(mktemp) + fi +} + +# $1 ns1, $2 ns2 +mptcp_lib_evts_start() { + : "${server_evts:?}" + : "${client_evts:?}" + : "${server_evts_pid:?}" + : "${client_evts_pid:?}" + + local ns_1=3D"${1}" + local ns_2=3D"${2}" + + :>"$server_evts" + :>"$client_evts" + + if [ "${server_evts_pid}" -ne 0 ]; then + mptcp_lib_kill_wait "${server_evts_pid}" + fi + ip netns exec "${ns_1}" ./pm_nl_ctl events >> "${server_evts}" 2>&1 & + server_evts_pid=3D$! + + if [ "${client_evts_pid}" -ne 0 ]; then + mptcp_lib_kill_wait "${client_evts_pid}" + fi + ip netns exec "${ns_2}" ./pm_nl_ctl events >> "${client_evts}" 2>&1 & + client_evts_pid=3D$! +} + +mptcp_lib_evts_kill() { + : "${server_evts_pid:?}" + : "${client_evts_pid:?}" + + mptcp_lib_kill_wait "${server_evts_pid}" + mptcp_lib_kill_wait "${client_evts_pid}" + + server_evts_pid=3D0 + client_evts_pid=3D0 +} + +mptcp_lib_evts_remove() { + : "${server_evts:?}" + : "${client_evts:?}" + + rm -rf "${server_evts}" "${client_evts}" +} diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 6167837f48e1..f1dbd97c0c96 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -34,10 +34,6 @@ AF_INET=3D2 AF_INET6=3D10 =20 file=3D"" -server_evts=3D"" -client_evts=3D"" -server_evts_pid=3D0 -client_evts_pid=3D0 client4_pid=3D0 server4_pid=3D0 client6_pid=3D0 @@ -116,18 +112,19 @@ cleanup() =20 # Terminate the MPTCP connection and related processes local pid - for pid in $client4_pid $server4_pid $client6_pid $server6_pid\ - $server_evts_pid $client_evts_pid + for pid in $client4_pid $server4_pid $client6_pid $server6_pid do mptcp_lib_kill_wait $pid done + mptcp_lib_evts_kill =20 local netns for netns in "$ns1" "$ns2" ;do ip netns del "$netns" done =20 - rm -rf $file $client_evts $server_evts + rm -rf $file + mptcp_lib_evts_remove =20 _printf "Done\n" } @@ -186,24 +183,8 @@ make_connection() =20 # Capture netlink events over the two network namespaces running # the MPTCP client and server - if [ -z "$client_evts" ]; then - client_evts=3D$(mktemp) - fi - :>"$client_evts" - if [ $client_evts_pid -ne 0 ]; then - mptcp_lib_kill_wait $client_evts_pid - fi - ip netns exec "$ns2" ./pm_nl_ctl events >> "$client_evts" 2>&1 & - client_evts_pid=3D$! - if [ -z "$server_evts" ]; then - server_evts=3D$(mktemp) - fi - :>"$server_evts" - if [ $server_evts_pid -ne 0 ]; then - mptcp_lib_kill_wait $server_evts_pid - fi - ip netns exec "$ns1" ./pm_nl_ctl events >> "$server_evts" 2>&1 & - server_evts_pid=3D$! + mptcp_lib_evts_init + mptcp_lib_evts_start "${ns1}" "${ns2}" sleep 0.5 =20 # Run the server --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-186.mta0.migadu.com (out-186.mta0.migadu.com [91.218.175.186]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B0AA6BB32 for ; Thu, 21 Dec 2023 11:33:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="O/GJ4T4H" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158399; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TPd0q3rxOC8YgtXGIPKvHHWALS4lVoJT9XUWguPUnN8=; b=O/GJ4T4HK/dWsE3OVHcwLKTjDNTnBLw+j/qMdGsBzlUcmNcQEIfuLskppjUbM5cIXZwbOE If08n8S+kR5n2X2XsjDbSGtOcv8yMcenatQ23bHDkYpcBa87XbVocLeGKF44fpMszhcamg mPRqv/Uc9tAGA/thejAmq/FNJ3EgTt0= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 02/15] selftests: mptcp: userspace: capitalize test_name Date: Thu, 21 Dec 2023 19:31:05 +0800 Message-Id: In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" Most scripts use uppercase variable TEST_NAME, but lowercase one are used in userspace_pm.sh. To maintain consistency with other scripts, this patch renames variable test_name to TEST_NAME: test_name -> TEST_NAME in userspace_pm.sh Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/userspace_pm.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index f1dbd97c0c96..b0a7c69f5da0 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -55,7 +55,7 @@ rndh=3D$(printf %x "$sec")-$(mktemp -u XXXXXX) ns1=3D"ns1-$rndh" ns2=3D"ns2-$rndh" ret=3D0 -test_name=3D"" +TEST_NAME=3D"" =20 _printf() { stdbuf -o0 -e0 printf "${@}" @@ -69,9 +69,9 @@ print_title() # $1: test name print_test() { - test_name=3D"${1}" + TEST_NAME=3D"${1}" =20 - _printf "%-63s" "${test_name}" + _printf "%-63s" "${TEST_NAME}" } =20 print_results() @@ -82,13 +82,13 @@ print_results() test_pass() { print_results " OK " - mptcp_lib_result_pass "${test_name}" + mptcp_lib_result_pass "${TEST_NAME}" } =20 test_skip() { print_results "SKIP" - mptcp_lib_result_skip "${test_name}" + mptcp_lib_result_skip "${TEST_NAME}" } =20 # $1: msg @@ -101,7 +101,7 @@ test_fail() _printf "\t%s\n" "${1}" fi =20 - mptcp_lib_result_fail "${test_name}" + mptcp_lib_result_fail "${TEST_NAME}" } =20 # This function is used in the cleanup trap --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-171.mta0.migadu.com (out-171.mta0.migadu.com [91.218.175.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A1D84F60D for ; Thu, 21 Dec 2023 11:33:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="P00Nxpkc" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158401; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wEFKtMa8a93TS0r2aaArgIFQUKVTDw5HiCOwNf1EBnI=; b=P00NxpkcFaS9XUuVB7WnNCCDU18prfbFvl0kXtajE9QjGS8cObJITfV2a/Gta26guFJ/NV gDCaQ/rWAJMr0jXavxtDAe2F9MvnjPMAqKvZZWl73ku2O8/w/RU/vpPW6Xo+vfJCDFIzeX uQRbpfNddPYWQLXP2KLD0728Cm5uyc8= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang , Matthieu Baerts Subject: [PATCH mptcp-next v6 03/15] selftests: mptcp: userspace: print colored output Date: Thu, 21 Dec 2023 19:31:06 +0800 Message-Id: In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" The helper mptcp_lib_verify_listener_events() will be added latter in mptcp_lib.sh, and be used by mptcp_join.sh and userspace_pm.sh. The former prints colored output while the latter is not. It makes sense to unify them. Use mptcp_lib_print_ok(), _warn() and _err() to instead print_results() in test_pass(), _skip() and _fail(), and use mptcp_lib_print_info() to instead _printf() in print_title() to print test results with colors in userspace_pm.sh. Reviewed-by: Matthieu Baerts Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/userspace_pm.sh | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index b0a7c69f5da0..d248ff3eff98 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -63,7 +63,7 @@ _printf() { =20 print_title() { - _printf "INFO: %s\n" "${1}" + mptcp_lib_print_info "INFO: ${1}" } =20 # $1: test name @@ -74,27 +74,22 @@ print_test() _printf "%-63s" "${TEST_NAME}" } =20 -print_results() -{ - _printf "[%s]\n" "${1}" -} - test_pass() { - print_results " OK " + mptcp_lib_print_ok "[ OK ]${1:+ ${*}}" mptcp_lib_result_pass "${TEST_NAME}" } =20 test_skip() { - print_results "SKIP" + mptcp_lib_print_warn "[ SKIP ]${1:+ ${*}}" mptcp_lib_result_skip "${TEST_NAME}" } =20 # $1: msg test_fail() { - print_results "FAIL" + mptcp_lib_print_err "[ FAIL ]${1:+ ${*}}" ret=3D1 =20 if [ -n "${1}" ]; then --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-180.mta0.migadu.com (out-180.mta0.migadu.com [91.218.175.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9B6AA6BB32 for ; Thu, 21 Dec 2023 11:33:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="a70CFltH" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158402; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QWCmGLpYAe85XmIeGiTUlO7ZDvwbYg1JaBzNQ8+3DCA=; b=a70CFltHAv3Yy/C9G0Cjn5/+OEukKQzF2o9sX5PPWy2nuV4OMPkQ/SANcRdP28SuD7B4te 7rF9AhNs1nUrH0fJ4c0v1CUw6+nxIeK6mLLrincNjVotKdNrwlPXu87K1AWbMzV3sdaCUq z0jEfiHsuG4LX2vldsZf2f2M872AZIU= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 04/15] selftests: mptcp: capitalize ok/fail/skip Date: Thu, 21 Dec 2023 19:31:07 +0800 Message-Id: <4d35b799ecf55a852e0a2fceae3db4ea51a283e8.1703158128.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" Most scripts print uppercase [ OK ], [ FAIL ] and [ SKIP ] as test results, but lowercase ones are used in diag.sh, mptcp_join.sh and simult_flows.sh. To maintain consistency with other scripts, this patch capitalizes these lowercase [ ok ], [ fail ] and [ skip ]: [ ok ] -> [ OK ] in diag.sh, mptcp_join.sh [ fail ] -> [ FAIL ] in diag.sh, mptcp_join.sh, simult_flows.sh [ skip ] -> [ SKIP ] in diag.sh, mptcp_join.sh Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/diag.sh | 12 ++++++------ tools/testing/selftests/net/mptcp/mptcp_join.sh | 6 +++--- tools/testing/selftests/net/mptcp/simult_flows.sh | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index 04fcb8a077c9..efef4692a4c9 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -64,15 +64,15 @@ __chk_nr() printf "%-50s" "$msg" if [ $nr !=3D $expected ]; then if [ $nr =3D "$skip" ] && ! mptcp_lib_expect_all_features; then - echo "[ skip ] Feature probably not supported" + echo "[ SKIP ] Feature probably not supported" mptcp_lib_result_skip "${msg}" else - echo "[ fail ] expected $expected found $nr" + echo "[ FAIL ] expected $expected found $nr" mptcp_lib_result_fail "${msg}" ret=3D$test_cnt fi else - echo "[ ok ]" + echo "[ OK ]" mptcp_lib_result_pass "${msg}" fi test_cnt=3D$((test_cnt+1)) @@ -113,15 +113,15 @@ wait_msk_nr() =20 printf "%-50s" "$msg" if [ $i -ge $timeout ]; then - echo "[ fail ] timeout while expecting $expected max $max last $nr" + echo "[ FAIL ] timeout while expecting $expected max $max last $nr" mptcp_lib_result_fail "${msg} # timeout" ret=3D$test_cnt elif [ $nr !=3D $expected ]; then - echo "[ fail ] expected $expected found $nr" + echo "[ FAIL ] expected $expected found $nr" mptcp_lib_result_fail "${msg} # unexpected result" ret=3D$test_cnt else - echo "[ ok ]" + echo "[ OK ]" mptcp_lib_result_pass "${msg}" fi test_cnt=3D$((test_cnt+1)) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 1ebe6e266657..0e05024f6dd8 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -220,17 +220,17 @@ print_info() =20 print_ok() { - mptcp_lib_print_ok "[ ok ]${1:+ ${*}}" + mptcp_lib_print_ok "[ OK ]${1:+ ${*}}" } =20 print_fail() { - mptcp_lib_print_err "[fail]${1:+ ${*}}" + mptcp_lib_print_err "[ FAIL ]${1:+ ${*}}" } =20 print_skip() { - mptcp_lib_print_warn "[skip]${1:+ ${*}}" + mptcp_lib_print_warn "[ SKIP ]${1:+ ${*}}" } =20 # [ $1: fail msg ] diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index ae8ad5d6fb9d..d54ee402ac06 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -194,7 +194,7 @@ do_transfer() return 0 fi =20 - echo " [ fail ]" + echo " [ FAIL ]" echo "client exit code $retc, server $rets" 1>&2 echo -e "\nnetns ${ns3} socket stat for $port:" 1>&2 ip netns exec ${ns3} ss -nita 1>&2 -o "sport =3D :$port" --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-173.mta0.migadu.com (out-173.mta0.migadu.com [91.218.175.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 800CD4F60D for ; Thu, 21 Dec 2023 11:33:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="tk6aMZdZ" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158404; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6yL9obqx35BdkMOKYEZEpJNxJntR0+zZrkDKLPmkCvI=; b=tk6aMZdZrTIgTU+08Q/KxvIgFEnfIaT7YG4jTOJORMx0QPqsOW0LXHPX54lTsm0m0qITYN RkMXpqHZi2SeVjF66oBIFW33RU2Ql0/HJZrM7l7Q7A+/mZz7qBlqoFjcUgx2koc7Jgmlji R1BqfZB/e13hp81PmLXXKVLnyBzz0Ug= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 05/15] selftests: mptcp: netlink: drop duplicate var ret Date: Thu, 21 Dec 2023 19:31:08 +0800 Message-Id: <4728959ee0799c446d156f17f7ceed3e9c4e531f.1703158128.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" The variable 'ret' are defined twice in pm_netlink.sh. This patch drops this duplicate one. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/pm_netlink.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 8f4ff123a7eb..ed1e8380838a 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -28,7 +28,6 @@ sec=3D$(date +%s) rndh=3D$(printf %x $sec)-$(mktemp -u XXXXXX) ns1=3D"ns1-$rndh" err=3D$(mktemp) -ret=3D0 =20 cleanup() { --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-187.mta0.migadu.com (out-187.mta0.migadu.com [91.218.175.187]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7FA914F60D for ; Thu, 21 Dec 2023 11:33:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="RGsiMJCW" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qF5VclR1z7asngkrrAyR2NWaJhBqYyv88guIpCtTPyY=; b=RGsiMJCWgVrNBJgQcsCJJSzMu/9vmy9Jw8Ri3qJmmLpUMUO3X+oyr6b2BjWgmQ5NnDUH47 HLCnX4HVG5u4TEU6gCMWG4DoVJMqtenL2ne1a74H5PvE3SRS10c8ZR/HgX7Ig9+p2ihuPr qHOTDQxlJ+PtnHTfpTmRwSVeas7HU1c= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 06/15] selftests: mptcp: export ret into mptcp_lib Date: Thu, 21 Dec 2023 19:31:09 +0800 Message-Id: <7bfb0baefdbe72d3de89ce49f115bd6928698eb4.1703158128.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" The variable 'ret' has been defined in every script. This patch moves it into mptcp_lib.sh as a public variable. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/diag.sh | 1 - tools/testing/selftests/net/mptcp/mptcp_connect.sh | 1 - tools/testing/selftests/net/mptcp/mptcp_join.sh | 1 - tools/testing/selftests/net/mptcp/mptcp_lib.sh | 2 ++ tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 1 - tools/testing/selftests/net/mptcp/pm_netlink.sh | 1 - tools/testing/selftests/net/mptcp/simult_flows.sh | 1 - tools/testing/selftests/net/mptcp/userspace_pm.sh | 1 - 8 files changed, 2 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index efef4692a4c9..7c71d589c2f8 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -10,7 +10,6 @@ ksft_skip=3D4 test_cnt=3D1 timeout_poll=3D100 timeout_test=3D$((timeout_poll * 2 + 1)) -ret=3D0 =20 flush_pids() { diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index 7898d62fce0b..e3f1afa8011b 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -6,7 +6,6 @@ time_start=3D$(date +%s) =20 optstring=3D"S:R:d:e:l:r:h4cm:f:tC" -ret=3D0 final_ret=3D0 sin=3D"" sout=3D"" diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 0e05024f6dd8..fd217d4bad5b 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -12,7 +12,6 @@ =20 . "$(dirname "${0}")/mptcp_lib.sh" =20 -ret=3D0 sin=3D"" sinfail=3D"" sout=3D"" diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 927fb0c18142..94eed09ceedd 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -8,6 +8,8 @@ readonly KSFT_SKIP=3D4 # shellcheck disable=3DSC2155 # declare and assign separately readonly KSFT_TEST=3D$(basename "${0}" | sed 's/\.sh$//g') =20 +ret=3D0 + MPTCP_LIB_SUBTESTS=3D() =20 # only if supported (or forced) and not disabled, see no-color.org diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index c643872ddf47..6d2f4af087d7 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -3,7 +3,6 @@ =20 . "$(dirname "${0}")/mptcp_lib.sh" =20 -ret=3D0 sin=3D"" sout=3D"" cin=3D"" diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index ed1e8380838a..b2e3ecbc376c 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -4,7 +4,6 @@ . "$(dirname "${0}")/mptcp_lib.sh" =20 ksft_skip=3D4 -ret=3D0 =20 usage() { echo "Usage: $0 [ -h ]" diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index d54ee402ac06..f18dfafb5710 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -13,7 +13,6 @@ ksft_skip=3D4 timeout_poll=3D30 timeout_test=3D$((timeout_poll * 2 + 1)) test_cnt=3D1 -ret=3D0 bail=3D0 slack=3D50 =20 diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index d248ff3eff98..845400741cf2 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -54,7 +54,6 @@ sec=3D$(date +%s) rndh=3D$(printf %x "$sec")-$(mktemp -u XXXXXX) ns1=3D"ns1-$rndh" ns2=3D"ns2-$rndh" -ret=3D0 TEST_NAME=3D"" =20 _printf() { --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-179.mta0.migadu.com (out-179.mta0.migadu.com [91.218.175.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A61686BB58 for ; Thu, 21 Dec 2023 11:33:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="j9T5ARYJ" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158408; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=krbjFYULXOEQQgxFi6i9Xgz4eN78j27Ae3DTSSUW1Po=; b=j9T5ARYJBxWVc61HUvWz+XiDMgIa4YW0L0fe1gcfpV3BmjxY9c++pEQVfjY+FJsCsjU5XT O2z9Z15lPxQ/ZFRdT3DOSY8hOFCn4ZGsG/qCCoDNPM/Ar40g289VK4q15gooyw/tAxvnQC AHGIp9cpXw3p5Vci0ep2Bqw33WVajlI= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 07/15] selftests: mptcp: extract mptcp_lib_check_expected Date: Thu, 21 Dec 2023 19:31:10 +0800 Message-Id: <79999854e2fc1d2ed5ca90c413cccef1e9cad53d.1703158128.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" Extract the main part of check_expected() in userspace_pm.sh to a new function mptcp_lib_check_expected() in mptcp_lib.sh. It will be used in both mptcp_john.sh and userspace_pm.sh. check_expected_one() is moved into mptcp_lib.sh too as a sub function of mptcp_lib_check_expected(). Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_lib.sh | 43 +++++++++++++++++++ .../selftests/net/mptcp/userspace_pm.sh | 41 +++--------------- 2 files changed, 48 insertions(+), 36 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 94eed09ceedd..6ba3747ce217 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -381,3 +381,46 @@ mptcp_lib_evts_remove() { =20 rm -rf "${server_evts}" "${client_evts}" } + +# $@: all var names to check +mptcp_lib_check_expected() { + : "${ret:?}" + + # $1: var name ; $2: prev ret + check_expected_one() { + local var=3D"${1}" + local exp=3D"e_${var}" + local prev_ret=3D"${2}" + + if [ "${!var}" =3D "${!exp}" ] + then + return 0 + fi + + if [ "${prev_ret}" =3D "0" ] + then + ret=3D${KSFT_FAIL} + fi + + printf "\tExpected value for '%s': '%s', got '%s'.\n" \ + "${var}" "${!exp}" "${!var}" + return 1 + } + + local rc=3D0 + local var + + for var in "${@}" + do + check_expected_one "${var}" "${rc}" || rc=3D1 + done + unset -f check_expected_one + + if [ ${rc} -eq 0 ] + then + mptcp_lib_print_ok "[ OK ]" + return 0 + fi + + return 1 +} diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 845400741cf2..0b4484472313 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -236,46 +236,15 @@ make_connection() fi } =20 -# $1: var name ; $2: prev ret -check_expected_one() -{ - local var=3D"${1}" - local exp=3D"e_${var}" - local prev_ret=3D"${2}" - - if [ "${!var}" =3D "${!exp}" ] - then - return 0 - fi - - if [ "${prev_ret}" =3D "0" ] - then - test_fail - fi - - _printf "\tExpected value for '%s': '%s', got '%s'.\n" \ - "${var}" "${!exp}" "${!var}" - return 1 -} - # $@: all var names to check check_expected() { - local rc=3D0 - local var - - for var in "${@}" - do - check_expected_one "${var}" "${rc}" || rc=3D1 - done - - if [ ${rc} -eq 0 ] - then - test_pass - return 0 + mptcp_lib_check_expected ${*} + if [ $? -eq 0 ]; then + mptcp_lib_result_pass "${TEST_NAME}" + else + test_fail fi - - return 1 } =20 verify_announce_event() --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-181.mta0.migadu.com (out-181.mta0.migadu.com [91.218.175.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1C4736BB5F for ; Thu, 21 Dec 2023 11:33:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="qyW3c1q/" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158409; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BysrwTikvik3FPcWoGVbV4erIE4IE9IHMIf5bMsYymU=; b=qyW3c1q/c/nz0rJ1ZzKctt2tMfjHz7lV2XwL7XxVGvUskQ40svj41unXRei5mqtJX4Vv4q CGydMG86NKFof5MmO2m/nfVbR1/dPA2MEWSIS9YgZoRsXpFmad2X4aHi8hol3BVE8rrw5P nrQqplFG3IvaI1WrWWh1YMLQ/icT/Fo= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 08/15] selftests: mptcp: export event macros in mptcp_lib Date: Thu, 21 Dec 2023 19:31:11 +0800 Message-Id: In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" SUB_ESTABLISHED, LISTENER_CREATED, LISTENER_CLOSED, AF_INET and AF_INET6 are defined in both mptcp_join.sh and userspace_pm.sh, export all event macros into mptcp_lib.sh. Add MPTCP_LIB_ prefix for the first three and add readonly for the last two. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 21 ++- .../testing/selftests/net/mptcp/mptcp_lib.sh | 10 ++ .../selftests/net/mptcp/userspace_pm.sh | 121 +++++++++--------- 3 files changed, 78 insertions(+), 74 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index fd217d4bad5b..1bdf28613494 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -2816,13 +2816,6 @@ backup_tests() fi } =20 -SUB_ESTABLISHED=3D10 # MPTCP_EVENT_SUB_ESTABLISHED -LISTENER_CREATED=3D15 #MPTCP_EVENT_LISTENER_CREATED -LISTENER_CLOSED=3D16 #MPTCP_EVENT_LISTENER_CLOSED - -AF_INET=3D2 -AF_INET6=3D10 - verify_listener_events() { local evt=3D$1 @@ -2836,9 +2829,9 @@ verify_listener_events() local sport local name =20 - if [ $e_type =3D $LISTENER_CREATED ]; then + if [ $e_type =3D $MPTCP_LIB_LISTENER_CREATED ]; then name=3D"LISTENER_CREATED" - elif [ $e_type =3D $LISTENER_CLOSED ]; then + elif [ $e_type =3D $MPTCP_LIB_LISTENER_CLOSED ]; then name=3D"LISTENER_CLOSED " else name=3D"$e_type" @@ -2905,8 +2898,10 @@ add_addr_ports_tests() chk_add_nr 1 1 1 chk_rm_nr 1 1 invert =20 - verify_listener_events $server_evts $LISTENER_CREATED $AF_INET 10.0.2.1 = 10100 - verify_listener_events $server_evts $LISTENER_CLOSED $AF_INET 10.0.2.1 1= 0100 + 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 mptcp_lib_evts_kill fi =20 @@ -3482,7 +3477,7 @@ userspace_tests() chk_subflows_total 2 2 chk_mptcp_info add_addr_signal 1 add_addr_accepted 1 userspace_pm_rm_addr $ns1 10 - userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED + userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $MPTCP_LIB_SUB_ESTABLISHED chk_rm_nr 1 1 invert chk_mptcp_info subflows 0 subflows 0 chk_subflows_total 1 1 @@ -3504,7 +3499,7 @@ userspace_tests() chk_mptcp_info subflows 1 subflows 1 chk_subflows_total 2 2 userspace_pm_rm_addr $ns2 20 - userspace_pm_rm_sf $ns2 10.0.3.2 $SUB_ESTABLISHED + userspace_pm_rm_sf $ns2 10.0.3.2 $MPTCP_LIB_SUB_ESTABLISHED chk_rm_nr 1 1 chk_mptcp_info subflows 0 subflows 0 chk_subflows_total 1 1 diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 6ba3747ce217..872946eb28d3 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -10,6 +10,16 @@ readonly KSFT_TEST=3D$(basename "${0}" | sed 's/\.sh$//g= ') =20 ret=3D0 =20 +MPTCP_LIB_ANNOUNCED=3D6 # MPTCP_EVENT_ANNOUNCED +MPTCP_LIB_REMOVED=3D7 # MPTCP_EVENT_REMOVED +MPTCP_LIB_SUB_ESTABLISHED=3D10 # MPTCP_EVENT_SUB_ESTABLISHED +MPTCP_LIB_SUB_CLOSED=3D11 # MPTCP_EVENT_SUB_CLOSED +MPTCP_LIB_LISTENER_CREATED=3D15 #MPTCP_EVENT_LISTENER_CREATED +MPTCP_LIB_LISTENER_CLOSED=3D16 #MPTCP_EVENT_LISTENER_CLOSED + +readonly AF_INET=3D2 +readonly AF_INET6=3D10 + MPTCP_LIB_SUBTESTS=3D() =20 # only if supported (or forced) and not disabled, see no-color.org diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 0b4484472313..057024bf21a8 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -23,16 +23,6 @@ if ! ip -Version &> /dev/null; then exit ${KSFT_SKIP} fi =20 -ANNOUNCED=3D6 # MPTCP_EVENT_ANNOUNCED -REMOVED=3D7 # MPTCP_EVENT_REMOVED -SUB_ESTABLISHED=3D10 # MPTCP_EVENT_SUB_ESTABLISHED -SUB_CLOSED=3D11 # MPTCP_EVENT_SUB_CLOSED -LISTENER_CREATED=3D15 #MPTCP_EVENT_LISTENER_CREATED -LISTENER_CLOSED=3D16 #MPTCP_EVENT_LISTENER_CLOSED - -AF_INET=3D2 -AF_INET6=3D10 - file=3D"" client4_pid=3D0 server4_pid=3D0 @@ -305,8 +295,8 @@ test_announce() ns2eth1 print_test "ADD_ADDR id:${client_addr_id} 10.0.2.2 (ns2) =3D> ns1, reuse = port" sleep 0.5 - verify_announce_event $server_evts $ANNOUNCED $server4_token "10.0.2.2" $= client_addr_id \ - "$client4_port" + verify_announce_event $server_evts $MPTCP_LIB_ANNOUNCED $server4_token \ + "10.0.2.2" $client_addr_id "$client4_port" =20 # ADD_ADDR6 from the client to server machine reusing the subflow port :>"$server_evts" @@ -314,8 +304,8 @@ test_announce() dead:beef:2::2 token "$client6_token" id $client_addr_id dev ns2eth1 print_test "ADD_ADDR6 id:${client_addr_id} dead:beef:2::2 (ns2) =3D> ns1,= reuse port" sleep 0.5 - verify_announce_event "$server_evts" "$ANNOUNCED" "$server6_token" "dead:= beef:2::2"\ - "$client_addr_id" "$client6_port" "v6" + verify_announce_event "$server_evts" "$MPTCP_LIB_ANNOUNCED" "$server6_tok= en" \ + "dead:beef:2::2" "$client_addr_id" "$client6_port" "v6" =20 # ADD_ADDR from the client to server machine using a new port :>"$server_evts" @@ -324,7 +314,7 @@ test_announce() $client_addr_id dev ns2eth1 port $new4_port print_test "ADD_ADDR id:${client_addr_id} 10.0.2.2 (ns2) =3D> ns1, new po= rt" sleep 0.5 - verify_announce_event "$server_evts" "$ANNOUNCED" "$server4_token" "10.0.= 2.2"\ + verify_announce_event "$server_evts" "$MPTCP_LIB_ANNOUNCED" "$server4_tok= en" "10.0.2.2"\ "$client_addr_id" "$new4_port" =20 # Capture events on the network namespace running the client @@ -335,7 +325,7 @@ test_announce() $server_addr_id dev ns1eth2 print_test "ADD_ADDR id:${server_addr_id} 10.0.2.1 (ns1) =3D> ns2, reuse = port" sleep 0.5 - verify_announce_event "$client_evts" "$ANNOUNCED" "$client4_token" "10.0.= 2.1"\ + verify_announce_event "$client_evts" "$MPTCP_LIB_ANNOUNCED" "$client4_tok= en" "10.0.2.1"\ "$server_addr_id" "$app4_port" =20 # ADD_ADDR6 from the server to client machine reusing the subflow port @@ -344,8 +334,8 @@ test_announce() $server_addr_id dev ns1eth2 print_test "ADD_ADDR6 id:${server_addr_id} dead:beef:2::1 (ns1) =3D> ns2,= reuse port" sleep 0.5 - verify_announce_event "$client_evts" "$ANNOUNCED" "$client6_token" "dead:= beef:2::1"\ - "$server_addr_id" "$app6_port" "v6" + verify_announce_event "$client_evts" "$MPTCP_LIB_ANNOUNCED" "$client6_tok= en" \ + "dead:beef:2::1" "$server_addr_id" "$app6_port" "v6" =20 # ADD_ADDR from the server to client machine using a new port :>"$client_evts" @@ -354,7 +344,7 @@ test_announce() $server_addr_id dev ns1eth2 port $new4_port print_test "ADD_ADDR id:${server_addr_id} 10.0.2.1 (ns1) =3D> ns2, new po= rt" sleep 0.5 - verify_announce_event "$client_evts" "$ANNOUNCED" "$client4_token" "10.0.= 2.1"\ + verify_announce_event "$client_evts" "$MPTCP_LIB_ANNOUNCED" "$client4_tok= en" "10.0.2.1"\ "$server_addr_id" "$new4_port" } =20 @@ -415,7 +405,7 @@ test_remove() $client_addr_id print_test "RM_ADDR id:${client_addr_id} ns2 =3D> ns1" sleep 0.5 - verify_remove_event "$server_evts" "$REMOVED" "$server4_token" "$client_a= ddr_id" + verify_remove_event "$server_evts" "$MPTCP_LIB_REMOVED" "$server4_token" = "$client_addr_id" =20 # RM_ADDR from the client to server machine :>"$server_evts" @@ -424,7 +414,7 @@ test_remove() $client_addr_id print_test "RM_ADDR id:${client_addr_id} ns2 =3D> ns1" sleep 0.5 - verify_remove_event "$server_evts" "$REMOVED" "$server4_token" "$client_a= ddr_id" + verify_remove_event "$server_evts" "$MPTCP_LIB_REMOVED" "$server4_token" = "$client_addr_id" =20 # RM_ADDR6 from the client to server machine :>"$server_evts" @@ -432,7 +422,7 @@ test_remove() $client_addr_id print_test "RM_ADDR6 id:${client_addr_id} ns2 =3D> ns1" sleep 0.5 - verify_remove_event "$server_evts" "$REMOVED" "$server6_token" "$client_a= ddr_id" + verify_remove_event "$server_evts" "$MPTCP_LIB_REMOVED" "$server6_token" = "$client_addr_id" =20 # Capture events on the network namespace running the client :>"$client_evts" @@ -442,7 +432,7 @@ test_remove() $server_addr_id print_test "RM_ADDR id:${server_addr_id} ns1 =3D> ns2" sleep 0.5 - verify_remove_event "$client_evts" "$REMOVED" "$client4_token" "$server_a= ddr_id" + verify_remove_event "$client_evts" "$MPTCP_LIB_REMOVED" "$client4_token" = "$server_addr_id" =20 # RM_ADDR from the server to client machine :>"$client_evts" @@ -451,7 +441,7 @@ test_remove() $server_addr_id print_test "RM_ADDR id:${server_addr_id} ns1 =3D> ns2" sleep 0.5 - verify_remove_event "$client_evts" "$REMOVED" "$client4_token" "$server_a= ddr_id" + verify_remove_event "$client_evts" "$MPTCP_LIB_REMOVED" "$client4_token" = "$server_addr_id" =20 # RM_ADDR6 from the server to client machine :>"$client_evts" @@ -459,7 +449,7 @@ test_remove() $server_addr_id print_test "RM_ADDR6 id:${server_addr_id} ns1 =3D> ns2" sleep 0.5 - verify_remove_event "$client_evts" "$REMOVED" "$client6_token" "$server_a= ddr_id" + verify_remove_event "$client_evts" "$MPTCP_LIB_REMOVED" "$client6_token" = "$server_addr_id" } =20 verify_subflow_events() @@ -488,7 +478,7 @@ verify_subflow_events() =20 info=3D"${e_saddr} (${e_from}) =3D> ${e_daddr} (${e_to})" =20 - if [ "$e_type" =3D "$SUB_ESTABLISHED" ] + if [ "$e_type" =3D "$MPTCP_LIB_SUB_ESTABLISHED" ] then if [ "$e_family" =3D "$AF_INET6" ] then @@ -545,22 +535,24 @@ test_subflows() ip netns exec "$ns1" ./pm_nl_ctl csf lip 10.0.2.1 lid 23 rip 10.0.2.2\ rport "$client4_port" token "$server4_token" sleep 0.5 - verify_subflow_events $server_evts $SUB_ESTABLISHED $server4_token $AF_IN= ET "10.0.2.1" \ - "10.0.2.2" "$client4_port" "23" "$client_addr_id" "ns1" "ns2" + verify_subflow_events $server_evts $MPTCP_LIB_SUB_ESTABLISHED $server4_to= ken \ + $AF_INET "10.0.2.1" "10.0.2.2" "$client4_port" "23" \ + "$client_addr_id" "ns1" "ns2" =20 # Delete the listener from the client ns, if one was created mptcp_lib_kill_wait $listener_pid =20 local sport - sport=3D$(mptcp_lib_evts_get_info sport "$server_evts" $SUB_ESTABLISHED) + sport=3D$(mptcp_lib_evts_get_info sport "$server_evts" $MPTCP_LIB_SUB_EST= ABLISHED) =20 # DESTROY_SUBFLOW from server to client machine :>"$server_evts" ip netns exec "$ns1" ./pm_nl_ctl dsf lip 10.0.2.1 lport "$sport" rip 10.0= .2.2 rport\ "$client4_port" token "$server4_token" sleep 0.5 - verify_subflow_events "$server_evts" "$SUB_CLOSED" "$server4_token" "$AF_= INET" "10.0.2.1"\ - "10.0.2.2" "$client4_port" "23" "$client_addr_id" "ns1" "ns2" + verify_subflow_events "$server_evts" "$MPTCP_LIB_SUB_CLOSED" "$server4_to= ken" \ + "$AF_INET" "10.0.2.1" "10.0.2.2" "$client4_port" "23" \ + "$client_addr_id" "ns1" "ns2" =20 # RM_ADDR from client to server machine ip netns exec "$ns2" ./pm_nl_ctl rem id $client_addr_id token\ @@ -583,21 +575,21 @@ test_subflows() ip netns exec "$ns1" ./pm_nl_ctl csf lip dead:beef:2::1 lid 23 rip\ dead:beef:2::2 rport "$client6_port" token "$server6_token" sleep 0.5 - verify_subflow_events "$server_evts" "$SUB_ESTABLISHED" "$server6_token" = "$AF_INET6"\ - "dead:beef:2::1" "dead:beef:2::2" "$client6_port" "23"\ - "$client_addr_id" "ns1" "ns2" + verify_subflow_events "$server_evts" "$MPTCP_LIB_SUB_ESTABLISHED" "$serve= r6_token" \ + "$AF_INET6" "dead:beef:2::1" "dead:beef:2::2" "$client6_port" \ + "23" "$client_addr_id" "ns1" "ns2" =20 # Delete the listener from the client ns, if one was created mptcp_lib_kill_wait $listener_pid =20 - sport=3D$(mptcp_lib_evts_get_info sport "$server_evts" $SUB_ESTABLISHED) + sport=3D$(mptcp_lib_evts_get_info sport "$server_evts" $MPTCP_LIB_SUB_EST= ABLISHED) =20 # DESTROY_SUBFLOW6 from server to client machine :>"$server_evts" ip netns exec "$ns1" ./pm_nl_ctl dsf lip dead:beef:2::1 lport "$sport" ri= p\ dead:beef:2::2 rport "$client6_port" token "$server6_token" sleep 0.5 - verify_subflow_events "$server_evts" "$SUB_CLOSED" "$server6_token" "$AF_= INET6"\ + verify_subflow_events "$server_evts" "$MPTCP_LIB_SUB_CLOSED" "$server6_to= ken" "$AF_INET6"\ "dead:beef:2::1" "dead:beef:2::2" "$client6_port" "23"\ "$client_addr_id" "ns1" "ns2" =20 @@ -622,22 +614,23 @@ test_subflows() ip netns exec "$ns1" ./pm_nl_ctl csf lip 10.0.2.1 lid 23 rip 10.0.2.2 rpo= rt\ $new4_port token "$server4_token" sleep 0.5 - verify_subflow_events "$server_evts" "$SUB_ESTABLISHED" "$server4_token" = "$AF_INET"\ - "10.0.2.1" "10.0.2.2" "$new4_port" "23"\ + verify_subflow_events "$server_evts" "$MPTCP_LIB_SUB_ESTABLISHED" "$serve= r4_token" \ + "$AF_INET" "10.0.2.1" "10.0.2.2" "$new4_port" "23" \ "$client_addr_id" "ns1" "ns2" =20 # Delete the listener from the client ns, if one was created mptcp_lib_kill_wait $listener_pid =20 - sport=3D$(mptcp_lib_evts_get_info sport "$server_evts" $SUB_ESTABLISHED) + sport=3D$(mptcp_lib_evts_get_info sport "$server_evts" $MPTCP_LIB_SUB_EST= ABLISHED) =20 # DESTROY_SUBFLOW from server to client machine :>"$server_evts" ip netns exec "$ns1" ./pm_nl_ctl dsf lip 10.0.2.1 lport "$sport" rip 10.0= .2.2 rport\ $new4_port token "$server4_token" sleep 0.5 - verify_subflow_events "$server_evts" "$SUB_CLOSED" "$server4_token" "$AF_= INET" "10.0.2.1"\ - "10.0.2.2" "$new4_port" "23" "$client_addr_id" "ns1" "ns2" + verify_subflow_events "$server_evts" "$MPTCP_LIB_SUB_CLOSED" "$server4_to= ken" \ + "$AF_INET" "10.0.2.1" "10.0.2.2" "$new4_port" "23" \ + "$client_addr_id" "ns1" "ns2" =20 # RM_ADDR from client to server machine ip netns exec "$ns2" ./pm_nl_ctl rem id $client_addr_id token\ @@ -661,21 +654,22 @@ test_subflows() ip netns exec "$ns2" ./pm_nl_ctl csf lip 10.0.2.2 lid 23 rip 10.0.2.1 rpo= rt\ $app4_port token "$client4_token" sleep 0.5 - verify_subflow_events $client_evts $SUB_ESTABLISHED $client4_token $AF_IN= ET "10.0.2.2"\ - "10.0.2.1" "$app4_port" "23" "$server_addr_id" "ns2" "ns1" + verify_subflow_events $client_evts $MPTCP_LIB_SUB_ESTABLISHED $client4_to= ken $AF_INET \ + "10.0.2.2" "10.0.2.1" "$app4_port" "23" "$server_addr_id" "ns2" "= ns1" =20 # Delete the listener from the server ns, if one was created mptcp_lib_kill_wait $listener_pid =20 - sport=3D$(mptcp_lib_evts_get_info sport "$client_evts" $SUB_ESTABLISHED) + sport=3D$(mptcp_lib_evts_get_info sport "$client_evts" $MPTCP_LIB_SUB_EST= ABLISHED) =20 # DESTROY_SUBFLOW from client to server machine :>"$client_evts" ip netns exec "$ns2" ./pm_nl_ctl dsf lip 10.0.2.2 lport "$sport" rip 10.0= .2.1 rport\ $app4_port token "$client4_token" sleep 0.5 - verify_subflow_events "$client_evts" "$SUB_CLOSED" "$client4_token" "$AF_= INET" "10.0.2.2"\ - "10.0.2.1" "$app4_port" "23" "$server_addr_id" "ns2" "ns1" + verify_subflow_events "$client_evts" "$MPTCP_LIB_SUB_CLOSED" "$client4_to= ken" \ + "$AF_INET" "10.0.2.2" "10.0.2.1" "$app4_port" "23" \ + "$server_addr_id" "ns2" "ns1" =20 # RM_ADDR from server to client machine ip netns exec "$ns1" ./pm_nl_ctl rem id $server_addr_id token\ @@ -698,7 +692,7 @@ test_subflows() ip netns exec "$ns2" ./pm_nl_ctl csf lip dead:beef:2::2 lid 23 rip\ dead:beef:2::1 rport $app6_port token "$client6_token" sleep 0.5 - verify_subflow_events "$client_evts" "$SUB_ESTABLISHED" "$client6_token"\ + verify_subflow_events "$client_evts" "$MPTCP_LIB_SUB_ESTABLISHED" "$clien= t6_token"\ "$AF_INET6" "dead:beef:2::2"\ "dead:beef:2::1" "$app6_port" "23"\ "$server_addr_id" "ns2" "ns1" @@ -706,15 +700,16 @@ test_subflows() # Delete the listener from the server ns, if one was created mptcp_lib_kill_wait $listener_pid =20 - sport=3D$(mptcp_lib_evts_get_info sport "$client_evts" $SUB_ESTABLISHED) + sport=3D$(mptcp_lib_evts_get_info sport "$client_evts" $MPTCP_LIB_SUB_EST= ABLISHED) =20 # DESTROY_SUBFLOW6 from client to server machine :>"$client_evts" ip netns exec "$ns2" ./pm_nl_ctl dsf lip dead:beef:2::2 lport "$sport" ri= p\ dead:beef:2::1 rport $app6_port token "$client6_token" sleep 0.5 - verify_subflow_events $client_evts $SUB_CLOSED $client6_token $AF_INET6 "= dead:beef:2::2"\ - "dead:beef:2::1" "$app6_port" "23" "$server_addr_id" "ns2" "ns1" + verify_subflow_events $client_evts $MPTCP_LIB_SUB_CLOSED $client6_token \ + $AF_INET6 "dead:beef:2::2" "dead:beef:2::1" "$app6_port" \ + "23" "$server_addr_id" "ns2" "ns1" =20 # RM_ADDR6 from server to client machine ip netns exec "$ns1" ./pm_nl_ctl rem id $server_addr_id token\ @@ -737,21 +732,23 @@ test_subflows() ip netns exec "$ns2" ./pm_nl_ctl csf lip 10.0.2.2 lid 23 rip 10.0.2.1 rpo= rt\ $new4_port token "$client4_token" sleep 0.5 - verify_subflow_events "$client_evts" "$SUB_ESTABLISHED" "$client4_token" = "$AF_INET"\ - "10.0.2.2" "10.0.2.1" "$new4_port" "23" "$server_addr_id" "ns2" "= ns1" + verify_subflow_events "$client_evts" "$MPTCP_LIB_SUB_ESTABLISHED" "$clien= t4_token" \ + "$AF_INET" "10.0.2.2" "10.0.2.1" "$new4_port" "23" \ + "$server_addr_id" "ns2" "ns1" =20 # Delete the listener from the server ns, if one was created mptcp_lib_kill_wait $listener_pid =20 - sport=3D$(mptcp_lib_evts_get_info sport "$client_evts" $SUB_ESTABLISHED) + sport=3D$(mptcp_lib_evts_get_info sport "$client_evts" $MPTCP_LIB_SUB_EST= ABLISHED) =20 # DESTROY_SUBFLOW from client to server machine :>"$client_evts" ip netns exec "$ns2" ./pm_nl_ctl dsf lip 10.0.2.2 lport "$sport" rip 10.0= .2.1 rport\ $new4_port token "$client4_token" sleep 0.5 - verify_subflow_events "$client_evts" "$SUB_CLOSED" "$client4_token" "$AF_= INET" "10.0.2.2"\ - "10.0.2.1" "$new4_port" "23" "$server_addr_id" "ns2" "ns1" + verify_subflow_events "$client_evts" "$MPTCP_LIB_SUB_CLOSED" "$client4_to= ken" \ + "$AF_INET" "10.0.2.2" "10.0.2.1" "$new4_port" "23" \ + "$server_addr_id" "ns2" "ns1" =20 # RM_ADDR from server to client machine ip netns exec "$ns1" ./pm_nl_ctl rem id $server_addr_id token\ @@ -774,7 +771,7 @@ test_subflows_v4_v6_mix() $server_addr_id dev ns1eth2 print_test "ADD_ADDR4 id:${server_addr_id} 10.0.2.1 (ns1) =3D> ns2, reuse= port" sleep 0.5 - verify_announce_event "$client_evts" "$ANNOUNCED" "$client6_token" "10.0.= 2.1"\ + verify_announce_event "$client_evts" "$MPTCP_LIB_ANNOUNCED" "$client6_tok= en" "10.0.2.1"\ "$server_addr_id" "$app6_port" =20 # CREATE_SUBFLOW from client to server machine @@ -782,21 +779,21 @@ test_subflows_v4_v6_mix() ip netns exec "$ns2" ./pm_nl_ctl csf lip 10.0.2.2 lid 23 rip 10.0.2.1 rpo= rt\ $app6_port token "$client6_token" sleep 0.5 - verify_subflow_events "$client_evts" "$SUB_ESTABLISHED" "$client6_token"\ + verify_subflow_events "$client_evts" "$MPTCP_LIB_SUB_ESTABLISHED" "$clien= t6_token"\ "$AF_INET" "10.0.2.2" "10.0.2.1" "$app6_port" "23"\ "$server_addr_id" "ns2" "ns1" =20 # Delete the listener from the server ns, if one was created mptcp_lib_kill_wait $listener_pid =20 - sport=3D$(mptcp_lib_evts_get_info sport "$client_evts" $SUB_ESTABLISHED) + sport=3D$(mptcp_lib_evts_get_info sport "$client_evts" $MPTCP_LIB_SUB_EST= ABLISHED) =20 # DESTROY_SUBFLOW from client to server machine :>"$client_evts" ip netns exec "$ns2" ./pm_nl_ctl dsf lip 10.0.2.2 lport "$sport" rip 10.0= .2.1 rport\ $app6_port token "$client6_token" sleep 0.5 - verify_subflow_events "$client_evts" "$SUB_CLOSED" "$client6_token" \ + verify_subflow_events "$client_evts" "$MPTCP_LIB_SUB_CLOSED" "$client6_to= ken" \ "$AF_INET" "10.0.2.2" "10.0.2.1" "$app6_port" "23"\ "$server_addr_id" "ns2" "ns1" =20 @@ -888,7 +885,8 @@ test_listener() local listener_pid=3D$! =20 sleep 0.5 - verify_listener_events $client_evts $LISTENER_CREATED $AF_INET 10.0.2.2 $= client4_port + verify_listener_events $client_evts $MPTCP_LIB_LISTENER_CREATED \ + $AF_INET 10.0.2.2 $client4_port =20 # ADD_ADDR from client to server machine reusing the subflow port ip netns exec $ns2 ./pm_nl_ctl ann 10.0.2.2 token $client4_token id\ @@ -904,7 +902,8 @@ test_listener() mptcp_lib_kill_wait $listener_pid =20 sleep 0.5 - verify_listener_events $client_evts $LISTENER_CLOSED $AF_INET 10.0.2.2 $c= lient4_port + verify_listener_events $client_evts $MPTCP_LIB_LISTENER_CLOSED \ + $AF_INET 10.0.2.2 $client4_port } =20 print_title "Make connections" --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-179.mta0.migadu.com (out-179.mta0.migadu.com [91.218.175.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 819D86BB58 for ; Thu, 21 Dec 2023 11:33:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="ib3M3vRP" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158411; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=niZJ9lbrFac0AQ+yYC4krRKSify8EAx1cuFM73ZwEjw=; b=ib3M3vRPvqBrCOKJaYOQAH2NYLHeeK1eOP4+upA9bKM7JDQ9BXcrS7i4uIgUvs3rVJvguJ 2kxyfa/TWtAKES8pQBkzX/YSqEujGnBwwLjJ8Col5kO6B3g0dwuy8NNvvaF4AQZJeHlGza AkS9QCz5AlrQAV7idWmoKuzX+drVT88= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 09/15] selftests: mptcp: add mptcp_lib_verify_listener_events Date: Thu, 21 Dec 2023 19:31:12 +0800 Message-Id: <9db4d63d30b8ea4bde782753a7870ad0724f4c2c.1703158128.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" To avoid duplicated code in different MPTCP selftests, we can add and use helpers defined in mptcp_lib.sh. The helper verify_listener_events() 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 --- .../testing/selftests/net/mptcp/mptcp_join.sh | 24 ++------------- .../testing/selftests/net/mptcp/mptcp_lib.sh | 23 ++++++++++++++ .../selftests/net/mptcp/userspace_pm.sh | 30 ++++--------------- 3 files changed, 31 insertions(+), 46 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 1bdf28613494..c90c987f8993 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -2818,15 +2818,10 @@ backup_tests() =20 verify_listener_events() { - local evt=3D$1 local e_type=3D$2 local e_family=3D$3 local e_saddr=3D$4 local e_sport=3D$5 - local type - local family - local saddr - local sport local name =20 if [ $e_type =3D $MPTCP_LIB_LISTENER_CREATED ]; then @@ -2844,23 +2839,8 @@ verify_listener_events() return fi =20 - type=3D$(mptcp_lib_evts_get_info type "$evt" "$e_type") - family=3D$(mptcp_lib_evts_get_info family "$evt" "$e_type") - sport=3D$(mptcp_lib_evts_get_info sport "$evt" "$e_type") - if [ $family ] && [ $family =3D $AF_INET6 ]; then - saddr=3D$(mptcp_lib_evts_get_info saddr6 "$evt" "$e_type") - else - saddr=3D$(mptcp_lib_evts_get_info saddr4 "$evt" "$e_type") - fi - - if [ $type ] && [ $type =3D $e_type ] && - [ $family ] && [ $family =3D $e_family ] && - [ $saddr ] && [ $saddr =3D $e_saddr ] && - [ $sport ] && [ $sport =3D $e_sport ]; then - print_ok - return 0 - fi - fail_test "$e_type:$type $e_family:$family $e_saddr:$saddr $e_sport:$spor= t" + mptcp_lib_verify_listener_events ${*} + [ $? -eq 1 ] && fail_test "$e_type $e_family $e_saddr $e_sport" } =20 add_addr_ports_tests() diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 872946eb28d3..edf46462c623 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -434,3 +434,26 @@ mptcp_lib_check_expected() { =20 return 1 } + +mptcp_lib_verify_listener_events() { + local evt=3D$1 + local e_type=3D$2 + local e_family=3D$3 + local e_saddr=3D$4 + local e_sport=3D$5 + local type + local family + local saddr + local sport + + type=3D$(mptcp_lib_evts_get_info type "$evt" "$e_type") + family=3D$(mptcp_lib_evts_get_info family "$evt" "$e_type") + if [ $family ] && [ $family =3D $AF_INET6 ]; then + saddr=3D$(mptcp_lib_evts_get_info saddr6 "$evt" "$e_type") + else + saddr=3D$(mptcp_lib_evts_get_info saddr4 "$evt" "$e_type") + fi + sport=3D$(mptcp_lib_evts_get_info sport "$evt" "$e_type") + + mptcp_lib_check_expected "type" "family" "saddr" "sport" +} diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 057024bf21a8..1e4493363d0b 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -838,32 +838,12 @@ test_prio() =20 verify_listener_events() { - local evt=3D$1 - local e_type=3D$2 - local e_family=3D$3 - local e_saddr=3D$4 - local e_sport=3D$5 - local type - local family - local saddr - local sport - - if [ $e_type =3D $LISTENER_CREATED ]; then - print_test "CREATE_LISTENER $e_saddr:$e_sport" - elif [ $e_type =3D $LISTENER_CLOSED ]; then - print_test "CLOSE_LISTENER $e_saddr:$e_sport" - fi - - type=3D$(mptcp_lib_evts_get_info type $evt $e_type) - family=3D$(mptcp_lib_evts_get_info family $evt $e_type) - sport=3D$(mptcp_lib_evts_get_info sport $evt $e_type) - if [ $family ] && [ $family =3D $AF_INET6 ]; then - saddr=3D$(mptcp_lib_evts_get_info saddr6 $evt $e_type) + mptcp_lib_verify_listener_events ${*} + if [ $? -eq 0 ]; then + mptcp_lib_result_pass "${TEST_NAME}" else - saddr=3D$(mptcp_lib_evts_get_info saddr4 $evt $e_type) + test_fail fi - - check_expected "type" "family" "saddr" "sport" } =20 test_listener() @@ -879,6 +859,7 @@ test_listener() # Capture events on the network namespace running the client :>$client_evts =20 + print_test "Listener event LISTENER_CREATED 10.0.2.2:$client4_port" # Attempt to add a listener at 10.0.2.2: ip netns exec $ns2 ./pm_nl_ctl listen 10.0.2.2\ $client4_port & @@ -898,6 +879,7 @@ test_listener() rport $client4_port token $server4_token sleep 0.5 =20 + print_test "Listener event LISTENER_CLOSED 10.0.2.2:$client4_port" # Delete the listener from the client ns, if one was created mptcp_lib_kill_wait $listener_pid =20 --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-187.mta0.migadu.com (out-187.mta0.migadu.com [91.218.175.187]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4EE356BB58 for ; Thu, 21 Dec 2023 11:33:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="DHNDeJwr" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158412; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3hOfiIyBW5gW3pPiDgqkto7/7LhHWzr363MiCI+qGYU=; b=DHNDeJwrlg5eWPLLfkfXKujflu/bQacVmEcMpsmJR4KJXP8FGAWyHr1LLPirn5ttVbJxLF 1y4fZIWP6oNBXD4uHAUeGyNOUsLMS9IwSAREm60M+68L7BcmtnMjhk+CSdW6rWsquZQaO7 oR+CwyCNAIvN7EpmEOL4K7Zqwo+rqHM= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 10/15] selftests: mptcp: unify namespace names Date: Thu, 21 Dec 2023 19:31:13 +0800 Message-Id: <2a542bf40860fa2655f3bfc65c72d6b2c7dcfa13.1703158128.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" Most scripts use ns1, ns2, ns3 and ns4 as namespace names, but ns and ns_sbox are used in diag.sh and mptcp_sockopt.sh. To maintain consistency with other scripts, this patch renames these variables: ns -> ns1 in diag.sh ns_sbox -> ns3 in mptcp_sockopt.sh Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/diag.sh | 48 +++++++++---------- .../selftests/net/mptcp/mptcp_sockopt.sh | 12 ++--- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index 7c71d589c2f8..edd23f5c757a 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -5,7 +5,7 @@ =20 sec=3D$(date +%s) rndh=3D$(printf %x $sec)-$(mktemp -u XXXXXX) -ns=3D"ns1-$rndh" +ns1=3D"ns1-$rndh" ksft_skip=3D4 test_cnt=3D1 timeout_poll=3D100 @@ -17,19 +17,19 @@ flush_pids() # give it some time sleep 1.1 =20 - ip netns pids "${ns}" | xargs --no-run-if-empty kill -SIGUSR1 &>/dev/null + ip netns pids "${ns1}" | xargs --no-run-if-empty kill -SIGUSR1 &>/dev/null =20 for _ in $(seq 10); do - [ -z "$(ip netns pids "${ns}")" ] && break + [ -z "$(ip netns pids "${ns1}")" ] && break sleep 0.1 done } =20 cleanup() { - ip netns pids "${ns}" | xargs --no-run-if-empty kill -SIGKILL &>/dev/null + ip netns pids "${ns1}" | xargs --no-run-if-empty kill -SIGKILL &>/dev/null =20 - ip netns del $ns + ip netns del $ns1 } =20 mptcp_lib_check_mptcp @@ -47,7 +47,7 @@ fi =20 get_msk_inuse() { - ip netns exec $ns cat /proc/net/protocols | awk '$1~/^MPTCP$/{print $3}' + ip netns exec $ns1 cat /proc/net/protocols | awk '$1~/^MPTCP$/{print $3}' } =20 __chk_nr() @@ -82,7 +82,7 @@ __chk_msk_nr() local condition=3D$1 shift 1 =20 - __chk_nr "ss -inmHMN $ns | $condition" "$@" + __chk_nr "ss -inmHMN $ns1 | $condition" "$@" } =20 chk_msk_nr() @@ -103,7 +103,7 @@ wait_msk_nr() msg=3D$* =20 while [ $i -lt $timeout ]; do - nr=3D$(ss -inmHMN $ns | $condition) + nr=3D$(ss -inmHMN $ns1 | $condition) [ $nr =3D=3D $expected ] && break; [ $nr -gt $max ] && max=3D$nr i=3D$((i + 1)) @@ -142,7 +142,7 @@ __chk_listen() local expected=3D$2 local msg=3D"$3" =20 - __chk_nr "ss -N $ns -Ml '$filter' | grep -c LISTEN" "$expected" "$msg" 0 + __chk_nr "ss -N $ns1 -Ml '$filter' | grep -c LISTEN" "$expected" "$msg" 0 } =20 chk_msk_listen() @@ -168,7 +168,7 @@ chk_msk_inuse() local msg=3D"$2" local listen_nr =20 - listen_nr=3D$(ss -N "${ns}" -Ml | grep -c LISTEN) + listen_nr=3D$(ss -N "${ns1}" -Ml | grep -c LISTEN) expected=3D$((expected + listen_nr)) =20 for _ in $(seq 10); do @@ -186,7 +186,7 @@ chk_msk_cestab() { local cestab=3D$1 =20 - __chk_nr "mptcp_lib_get_counter ${ns} MPTcpExtMPCurrEstab" \ + __chk_nr "mptcp_lib_get_counter ${ns1} MPTcpExtMPCurrEstab" \ "${cestab}" "....chk ${cestab} cestab" "" } =20 @@ -205,24 +205,24 @@ wait_connected() } =20 trap cleanup EXIT -ip netns add $ns -ip -n $ns link set dev lo up +ip netns add $ns1 +ip -n $ns1 link set dev lo up =20 echo "a" | \ timeout ${timeout_test} \ - ip netns exec $ns \ + ip netns exec $ns1 \ ./mptcp_connect -p 10000 -l -t ${timeout_poll} -w 20 \ 0.0.0.0 >/dev/null & -mptcp_lib_wait_local_port_listen $ns 10000 +mptcp_lib_wait_local_port_listen $ns1 10000 chk_msk_nr 0 "no msk on netns creation" chk_msk_listen 10000 =20 echo "b" | \ timeout ${timeout_test} \ - ip netns exec $ns \ + ip netns exec $ns1 \ ./mptcp_connect -p 10000 -r 0 -t ${timeout_poll} -w 20 \ 127.0.0.1 >/dev/null & -wait_connected $ns 10000 +wait_connected $ns1 10000 chk_msk_nr 2 "after MPC handshake " chk_msk_remote_key_nr 2 "....chk remote_key" chk_msk_fallback_nr 0 "....chk no fallback" @@ -235,16 +235,16 @@ chk_msk_cestab 0 =20 echo "a" | \ timeout ${timeout_test} \ - ip netns exec $ns \ + ip netns exec $ns1 \ ./mptcp_connect -p 10001 -l -s TCP -t ${timeout_poll} -w 20 \ 0.0.0.0 >/dev/null & -mptcp_lib_wait_local_port_listen $ns 10001 +mptcp_lib_wait_local_port_listen $ns1 10001 echo "b" | \ timeout ${timeout_test} \ - ip netns exec $ns \ + ip netns exec $ns1 \ ./mptcp_connect -p 10001 -r 0 -t ${timeout_poll} -w 20 \ 127.0.0.1 >/dev/null & -wait_connected $ns 10001 +wait_connected $ns1 10001 chk_msk_fallback_nr 1 "check fallback" chk_msk_inuse 1 "....chk 1 msk in use" chk_msk_cestab 1 @@ -257,16 +257,16 @@ NR_CLIENTS=3D100 for I in `seq 1 $NR_CLIENTS`; do echo "a" | \ timeout ${timeout_test} \ - ip netns exec $ns \ + ip netns exec $ns1 \ ./mptcp_connect -p $((I+10001)) -l -w 20 \ -t ${timeout_poll} 0.0.0.0 >/dev/null & done -mptcp_lib_wait_local_port_listen $ns $((NR_CLIENTS + 10001)) +mptcp_lib_wait_local_port_listen $ns1 $((NR_CLIENTS + 10001)) =20 for I in `seq 1 $NR_CLIENTS`; do echo "b" | \ timeout ${timeout_test} \ - ip netns exec $ns \ + ip netns exec $ns1 \ ./mptcp_connect -p $((I+10001)) -w 20 \ -t ${timeout_poll} 127.0.0.1 >/dev/null & done diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index 6d2f4af087d7..f4eff7377272 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -17,7 +17,7 @@ sec=3D$(date +%s) rndh=3D$(printf %x $sec)-$(mktemp -u XXXXXX) ns1=3D"ns1-$rndh" ns2=3D"ns2-$rndh" -ns_sbox=3D"ns_sbox-$rndh" +ns3=3D"ns3-$rndh" =20 add_mark_rules() { @@ -40,7 +40,7 @@ add_mark_rules() init() { local netns - for netns in "$ns1" "$ns2" "$ns_sbox";do + for netns in "$ns1" "$ns2" "$ns3";do ip netns add $netns || exit $ksft_skip ip -net $netns link set lo up ip netns exec $netns sysctl -q net.mptcp.enabled=3D1 @@ -79,7 +79,7 @@ init() cleanup() { local netns - for netns in "$ns1" "$ns2" "$ns_sbox"; do + for netns in "$ns1" "$ns2" "$ns3"; do ip netns del $netns done rm -f "$cin" "$cout" @@ -239,7 +239,7 @@ do_mptcp_sockopt_tests() return fi =20 - ip netns exec "$ns_sbox" ./mptcp_sockopt + ip netns exec "$ns3" ./mptcp_sockopt lret=3D$? =20 if [ $lret -ne 0 ]; then @@ -250,7 +250,7 @@ do_mptcp_sockopt_tests() fi mptcp_lib_result_pass "sockopt v4" =20 - ip netns exec "$ns_sbox" ./mptcp_sockopt -6 + ip netns exec "$ns3" ./mptcp_sockopt -6 lret=3D$? =20 if [ $lret -ne 0 ]; then @@ -281,7 +281,7 @@ run_tests() =20 do_tcpinq_test() { - ip netns exec "$ns_sbox" ./mptcp_inq "$@" + ip netns exec "$ns3" ./mptcp_inq "$@" local lret=3D$? if [ $lret -ne 0 ];then ret=3D$lret --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-171.mta0.migadu.com (out-171.mta0.migadu.com [91.218.175.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 318AE6BB32 for ; Thu, 21 Dec 2023 11:33:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="UItSLzao" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158414; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=n9ut9cJQNbKGKVZpfP78lF97aON1vyM6866nJZVzKC4=; b=UItSLzaoPk17h+RMY+SpzKTjmWDG2OEycYNT6wHNUVQTaCmeSiYkf1aArrXNxxaHQ8vBae ewqNQ2IHNxjHWY9C8/RwsHit2D9sojpeoQj5kDgl25K5nhhO5Zl0BTc7aNlpBXNXYGEBLI 4BuGHWzF5YAurzl9XMMTKVBx2Z3FBt8= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 11/15] selftests: mptcp: add mptcp_lib_ns_* helpers Date: Thu, 21 Dec 2023 19:31:14 +0800 Message-Id: <629de71b650622d5d55c0615539cccec3504ef4b.1703158128.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" Add helpers mptcp_lib_ns_init() and mptcp_lib_ns_exit() in mptcp_lib.sh to init all namespaces ns1, ns2, ns3 and ns4. Then every test script can invoke these helpers and use all namespaces. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/diag.sh | 8 +-- .../selftests/net/mptcp/mptcp_connect.sh | 20 ++---- .../testing/selftests/net/mptcp/mptcp_join.sh | 19 +----- .../testing/selftests/net/mptcp/mptcp_lib.sh | 64 +++++++++++++------ .../selftests/net/mptcp/mptcp_sockopt.sh | 15 +---- .../testing/selftests/net/mptcp/pm_netlink.sh | 8 +-- .../selftests/net/mptcp/simult_flows.sh | 18 +----- .../selftests/net/mptcp/userspace_pm.sh | 12 +--- 8 files changed, 62 insertions(+), 102 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index edd23f5c757a..984a4f3b359b 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -3,9 +3,7 @@ =20 . "$(dirname "${0}")/mptcp_lib.sh" =20 -sec=3D$(date +%s) -rndh=3D$(printf %x $sec)-$(mktemp -u XXXXXX) -ns1=3D"ns1-$rndh" +mptcp_lib_ns_init ksft_skip=3D4 test_cnt=3D1 timeout_poll=3D100 @@ -29,7 +27,7 @@ cleanup() { ip netns pids "${ns1}" | xargs --no-run-if-empty kill -SIGKILL &>/dev/null =20 - ip netns del $ns1 + mptcp_lib_ns_exit } =20 mptcp_lib_check_mptcp @@ -205,8 +203,6 @@ wait_connected() } =20 trap cleanup EXIT -ip netns add $ns1 -ip -n $ns1 link set dev lo up =20 echo "a" | \ timeout ${timeout_test} \ diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index e3f1afa8011b..8a4fda253ee9 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -120,12 +120,7 @@ while getopts "$optstring" option;do esac done =20 -sec=3D$(date +%s) -rndh=3D$(printf %x $sec)-$(mktemp -u XXXXXX) -ns1=3D"ns1-$rndh" -ns2=3D"ns2-$rndh" -ns3=3D"ns3-$rndh" -ns4=3D"ns4-$rndh" +mptcp_lib_ns_init =20 TEST_COUNT=3D0 TEST_GROUP=3D"" @@ -137,11 +132,7 @@ cleanup() rm -f "$sin" "$sout" rm -f "$capout" =20 - local netns - for netns in "$ns1" "$ns2" "$ns3" "$ns4";do - ip netns del $netns - rm -f /tmp/$netns.{nstat,out} - done + mptcp_lib_ns_exit } =20 mptcp_lib_check_mptcp @@ -162,11 +153,6 @@ cin_disconnect=3D"$cin".disconnect cout_disconnect=3D"$cout".disconnect trap cleanup EXIT =20 -for i in "$ns1" "$ns2" "$ns3" "$ns4";do - ip netns add $i || exit $ksft_skip - ip -net $i link set lo up -done - # "$ns1" ns2 ns3 ns4 # ns1eth2 ns2eth1 ns2eth3 ns3eth2 ns3eth4 ns4eth3 # - drop 1% -> reorder 25% @@ -255,6 +241,8 @@ fi =20 check_mptcp_disabled() { + : "${rndh:?}" + local disabled_ns=3D"ns_disabled-$rndh" ip netns add ${disabled_ns} || exit $ksft_skip =20 diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index c90c987f8993..50ef210894eb 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -22,8 +22,6 @@ tmpfile=3D"" cout=3D"" check_output_err=3D"" capout=3D"" -ns1=3D"" -ns2=3D"" ksft_skip=3D4 iptables=3D"iptables" ip6tables=3D"ip6tables" @@ -81,21 +79,12 @@ init_partial() { capout=3D$(mktemp) =20 - local sec rndh - sec=3D$(date +%s) - rndh=3D$(printf %x $sec)-$(mktemp -u XXXXXX) - - ns1=3D"ns1-$rndh" - ns2=3D"ns2-$rndh" + mptcp_lib_ns_init =20 local netns for netns in "$ns1" "$ns2"; do - ip netns add $netns || exit $ksft_skip - ip -net $netns link set lo up ip netns exec $netns sysctl -q net.mptcp.enabled=3D1 ip netns exec $netns sysctl -q net.mptcp.pm_type=3D0 2>/dev/null || true - ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=3D0 - ip netns exec $netns sysctl -q net.ipv4.conf.default.rp_filter=3D0 if [ $checksum -eq 1 ]; then ip netns exec $netns sysctl -q net.mptcp.checksum_enabled=3D1 fi @@ -140,11 +129,7 @@ cleanup_partial() { rm -f "$capout" =20 - local netns - for netns in "$ns1" "$ns2"; do - ip netns del $netns - rm -f /tmp/$netns.{nstat,out} - done + mptcp_lib_ns_exit } =20 check_tools() diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index edf46462c623..2ff69d073a0f 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -311,24 +311,6 @@ mptcp_lib_wait_local_port_listen() { done } =20 -# $1: ns, $2: cestab nr -mptcp_lib_chk_cestab_nr() { - local ns=3D$1 - local cestab=3D$2 - local count - - count=3D$(mptcp_lib_get_counter ${ns} "MPTcpExtMPCurrEstab") - if [ -z "$count" ]; then - mptcp_lib_print_warn "[ SKIP ]" - elif [ "$count" !=3D "$cestab" ]; then - mptcp_lib_print_err "[ FAIL ] got $count current establish[s] expected $= cestab" - return 1 - else - mptcp_lib_print_ok "[ OK ]" - fi - return 0 -} - server_evts=3D"" client_evts=3D"" server_evts_pid=3D0 @@ -457,3 +439,49 @@ mptcp_lib_verify_listener_events() { =20 mptcp_lib_check_expected "type" "family" "saddr" "sport" } + +rndh=3D"" +ns1=3D"" +ns2=3D"" +ns3=3D"" +ns4=3D"" + +mptcp_lib_ns_init() { + : "${rndh?}" + : "${ns1?}" + : "${ns2?}" + : "${ns3?}" + : "${ns4?}" + + local sec + + sec=3D$(date +%s) + rndh=3D$(printf %x $sec)-$(mktemp -u XXXXXX) + + ns1=3D"ns1-$rndh" + ns2=3D"ns2-$rndh" + ns3=3D"ns3-$rndh" + ns4=3D"ns4-$rndh" + + local netns + for netns in "$ns1" "$ns2" "$ns3" "$ns4"; do + ip netns add $netns || exit ${ksft_skip} + ip -net $netns link set lo up + + ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=3D0 + ip netns exec $netns sysctl -q net.ipv4.conf.default.rp_filter=3D0 + done +} + +mptcp_lib_ns_exit() { + : "${ns1:?}" + : "${ns2:?}" + : "${ns3:?}" + : "${ns4:?}" + + local netns + for netns in "$ns1" "$ns2" "$ns3" "$ns4"; do + ip netns del $netns + rm -f /tmp/$netns.{nstat,out} + done +} diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index f4eff7377272..1982078b2b45 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -13,11 +13,7 @@ timeout_test=3D$((timeout_poll * 2 + 1)) iptables=3D"iptables" ip6tables=3D"ip6tables" =20 -sec=3D$(date +%s) -rndh=3D$(printf %x $sec)-$(mktemp -u XXXXXX) -ns1=3D"ns1-$rndh" -ns2=3D"ns2-$rndh" -ns3=3D"ns3-$rndh" +mptcp_lib_ns_init =20 add_mark_rules() { @@ -41,11 +37,7 @@ init() { local netns for netns in "$ns1" "$ns2" "$ns3";do - ip netns add $netns || exit $ksft_skip - ip -net $netns link set lo up ip netns exec $netns sysctl -q net.mptcp.enabled=3D1 - ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=3D0 - ip netns exec $netns sysctl -q net.ipv4.conf.default.rp_filter=3D0 done =20 local i @@ -78,10 +70,7 @@ init() =20 cleanup() { - local netns - for netns in "$ns1" "$ns2" "$ns3"; do - ip netns del $netns - done + mptcp_lib_ns_exit rm -f "$cin" "$cout" rm -f "$sin" "$sout" } diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index b2e3ecbc376c..5208492d1f01 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -23,15 +23,13 @@ while getopts "$optstring" option;do esac done =20 -sec=3D$(date +%s) -rndh=3D$(printf %x $sec)-$(mktemp -u XXXXXX) -ns1=3D"ns1-$rndh" +mptcp_lib_ns_init err=3D$(mktemp) =20 cleanup() { rm -f $err - ip netns del $ns1 + mptcp_lib_ns_exit } =20 mptcp_lib_check_mptcp @@ -44,8 +42,6 @@ fi =20 trap cleanup EXIT =20 -ip netns add $ns1 || exit $ksft_skip -ip -net $ns1 link set lo up ip netns exec $ns1 sysctl -q net.mptcp.enabled=3D1 =20 check() diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index f18dfafb5710..8925d94926ee 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -3,11 +3,7 @@ =20 . "$(dirname "${0}")/mptcp_lib.sh" =20 -sec=3D$(date +%s) -rndh=3D$(printf %x $sec)-$(mktemp -u XXXXXX) -ns1=3D"ns1-$rndh" -ns2=3D"ns2-$rndh" -ns3=3D"ns3-$rndh" +mptcp_lib_ns_init capture=3Dfalse ksft_skip=3D4 timeout_poll=3D30 @@ -29,10 +25,7 @@ cleanup() rm -f "$large" "$small" rm -f "$capout" =20 - local netns - for netns in "$ns1" "$ns2" "$ns3";do - ip netns del $netns - done + mptcp_lib_ns_exit } =20 mptcp_lib_check_mptcp @@ -63,13 +56,6 @@ setup() =20 trap cleanup EXIT =20 - for i in "$ns1" "$ns2" "$ns3";do - ip netns add $i || exit $ksft_skip - ip -net $i link set lo up - ip netns exec $i sysctl -q net.ipv4.conf.all.rp_filter=3D0 - ip netns exec $i sysctl -q net.ipv4.conf.default.rp_filter=3D0 - done - ip link add ns1eth1 netns "$ns1" type veth peer name ns2eth1 netns "$ns2" ip link add ns1eth2 netns "$ns1" type veth peer name ns2eth2 netns "$ns2" ip link add ns2eth3 netns "$ns2" type veth peer name ns3eth1 netns "$ns3" diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 1e4493363d0b..3a9e2a69eb6d 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -40,10 +40,7 @@ app6_port=3D50004 client_addr_id=3D${RANDOM:0:2} server_addr_id=3D${RANDOM:0:2} =20 -sec=3D$(date +%s) -rndh=3D$(printf %x "$sec")-$(mktemp -u XXXXXX) -ns1=3D"ns1-$rndh" -ns2=3D"ns2-$rndh" +mptcp_lib_ns_init TEST_NAME=3D"" =20 _printf() { @@ -102,10 +99,7 @@ cleanup() done mptcp_lib_evts_kill =20 - local netns - for netns in "$ns1" "$ns2" ;do - ip netns del "$netns" - done + mptcp_lib_ns_exit =20 rm -rf $file mptcp_lib_evts_remove @@ -117,8 +111,6 @@ trap cleanup EXIT =20 # Create and configure network namespaces for testing for i in "$ns1" "$ns2" ;do - ip netns add "$i" || exit 1 - ip -net "$i" link set lo up ip netns exec "$i" sysctl -q net.mptcp.enabled=3D1 ip netns exec "$i" sysctl -q net.mptcp.pm_type=3D1 done --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-187.mta0.migadu.com (out-187.mta0.migadu.com [91.218.175.187]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 24A746BB58 for ; Thu, 21 Dec 2023 11:33:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="nWPHrLl8" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158415; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gQPh6opO3nQrxrMG0C3/2eiQCZkfXs3ArfsYbhnGZUo=; b=nWPHrLl8qPY4d57B2s5PSnDOvDoxrD6T1z8717yDec15VwZIC7R/MRPPcYDyB5LJoNCrIM HvHGm3r1kw4u99/jfVyMPVJIOXGDyFcoy7WE0FFuLgtDaC02vCNdMauQXzNk1ISVhJzSHJ hP5Mxv0AZNbPmW8LC0FrqZ+/3+b6MJg= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 12/15] selftests: mptcp: add ss mptcp support checks Date: Thu, 21 Dec 2023 19:31:15 +0800 Message-Id: <3703ecf29474dcec0d376f1888f3d5b4fd0d4d4b.1703158128.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" Commands 'ss -M' are used in scripts mptcp_connect.sh, mptcp_join.sh, and mptcp_sockopt.sh to display only MPTCP sockets. So it must be checked if ss tool supports MPTCP in these script. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_connect.sh | 6 ++++++ tools/testing/selftests/net/mptcp/mptcp_join.sh | 6 ++++++ tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index 8a4fda253ee9..c5456066ef55 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -144,6 +144,12 @@ if [ $? -ne 0 ];then exit $ksft_skip fi =20 +ss -h | grep -q MPTCP +if [ $? -ne 0 ];then + echo "SKIP: ss tool does not support MPTCP" + exit $ksft_skip +fi + sin=3D$(mktemp) sout=3D$(mktemp) cin=3D$(mktemp) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 50ef210894eb..ee514d056f0d 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -142,6 +142,12 @@ check_tools() exit $ksft_skip fi =20 + ss -h | grep -q MPTCP + if [ $? -ne 0 ];then + echo "SKIP: ss tool does not support MPTCP" + exit $ksft_skip + fi + # Use the legacy version if available to support old kernel versions if iptables-legacy -V &> /dev/null; then iptables=3D"iptables-legacy" diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index 1982078b2b45..760a024e5b14 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -84,6 +84,12 @@ if [ $? -ne 0 ];then exit $ksft_skip fi =20 +ss -h | grep -q MPTCP +if [ $? -ne 0 ];then + echo "SKIP: ss tool does not support MPTCP" + exit $ksft_skip +fi + # Use the legacy version if available to support old kernel versions if iptables-legacy -V &> /dev/null; then iptables=3D"iptables-legacy" --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-186.mta0.migadu.com (out-186.mta0.migadu.com [91.218.175.186]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D8C046BB32 for ; Thu, 21 Dec 2023 11:33:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="hOOcn1WJ" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158417; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=56wQj/pyy8i5F0vAWCKD/4TA5hNwr4AdvST/4FhwG/I=; b=hOOcn1WJJ6daqfA5UzmeQs1vnfuNMDDHmsmesgPcfnYXsaWx0EbbM0LEuqqSubsypaGYVr yslCwNrmBun8llkK0hIIcF9mkgysyKvSZqAfQTtei7r9FUaG9IrGY7tE/WgiT7scsF5Wlg jL9ebJ7v5GxF63q72UFDNMhFGdiG4Ik= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 13/15] selftests: mptcp: add mptcp_lib_check_tools helper Date: Thu, 21 Dec 2023 19:31:16 +0800 Message-Id: In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" 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", and "iptables" are passed into this helper to indicate whether to check ip tool, ss tool and iptables tools. This helper can be used in every scripts. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/diag.sh | 13 +----- .../selftests/net/mptcp/mptcp_connect.sh | 15 +------ .../testing/selftests/net/mptcp/mptcp_join.sh | 33 +-------------- .../testing/selftests/net/mptcp/mptcp_lib.sh | 40 +++++++++++++++++++ .../selftests/net/mptcp/mptcp_sockopt.sh | 29 +------------- .../testing/selftests/net/mptcp/pm_netlink.sh | 8 +--- .../selftests/net/mptcp/simult_flows.sh | 8 +--- .../selftests/net/mptcp/userspace_pm.sh | 8 +--- 8 files changed, 47 insertions(+), 107 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index 984a4f3b359b..1424769d292b 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -30,18 +30,7 @@ cleanup() mptcp_lib_ns_exit } =20 -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" =20 get_msk_inuse() { diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index c5456066ef55..c64f0038daef 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -135,20 +135,7 @@ cleanup() mptcp_lib_ns_exit } =20 -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 - -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" =20 sin=3D$(mktemp) sout=3D$(mktemp) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index ee514d056f0d..8b52ed5c15b2 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -23,8 +23,6 @@ cout=3D"" check_output_err=3D"" capout=3D"" ksft_skip=3D4 -iptables=3D"iptables" -ip6tables=3D"ip6tables" timeout_poll=3D30 timeout_test=3D$((timeout_poll * 2 + 1)) capture=3D0 @@ -132,39 +130,10 @@ cleanup_partial() mptcp_lib_ns_exit } =20 -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 - - ss -h | grep -q MPTCP - if [ $? -ne 0 ];then - echo "SKIP: ss tool does not support MPTCP" - exit $ksft_skip - fi - - # Use the legacy version if available to support old kernel versions - if iptables-legacy -V &> /dev/null; then - iptables=3D"iptables-legacy" - ip6tables=3D"ip6tables-legacy" - elif ! 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=3D1 =20 - check_tools + mptcp_lib_check_tools "ip" "ss" "iptables" =20 sin=3D$(mktemp) sout=3D$(mktemp) diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 2ff69d073a0f..90e2864391cf 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -485,3 +485,43 @@ mptcp_lib_ns_exit() { rm -f /tmp/$netns.{nstat,out} done } + +iptables=3D"iptables" +ip6tables=3D"ip6tables" + +mptcp_lib_check_tools() { + : "${iptables:?}" + : "${ip6tables:?}" + + mptcp_lib_check_mptcp + mptcp_lib_check_kallsyms + + if [ "${1:-""}" =3D=3D "ip" ]; then + if ! ip -Version &> /dev/null; then + mptcp_lib_print_warn "SKIP: Could not run test without ip tool" + exit $ksft_skip + fi + fi + + if [ "${2:-""}" =3D=3D "ss" ]; then + ss -h | grep -q MPTCP + if [ $? -ne 0 ];then + mptcp_lib_print_warn "SKIP: ss tool does not support MPTCP" + exit $ksft_skip + fi + fi + + if [ "${3:-""}" =3D=3D "iptables" ]; then + # Use the legacy version if available to support old kernel versions + if iptables-legacy -V &> /dev/null; then + iptables=3D"iptables-legacy" + ip6tables=3D"ip6tables-legacy" + elif ! iptables -V &> /dev/null; then + mptcp_lib_print_warn "SKIP: Could not run all tests without iptables to= ol" + exit $ksft_skip + elif ! ip6tables -V &> /dev/null; then + mptcp_lib_print_warn "SKIP: Could not run all tests without ip6tables t= ool" + exit $ksft_skip + fi + fi +} diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index 760a024e5b14..3ab7eb695af3 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -10,8 +10,6 @@ cout=3D"" ksft_skip=3D4 timeout_poll=3D30 timeout_test=3D$((timeout_poll * 2 + 1)) -iptables=3D"iptables" -ip6tables=3D"ip6tables" =20 mptcp_lib_ns_init =20 @@ -75,32 +73,7 @@ cleanup() rm -f "$sin" "$sout" } =20 -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 - -ss -h | grep -q MPTCP -if [ $? -ne 0 ];then - echo "SKIP: ss tool does not support MPTCP" - exit $ksft_skip -fi - -# Use the legacy version if available to support old kernel versions -if iptables-legacy -V &> /dev/null; then - iptables=3D"iptables-legacy" - ip6tables=3D"ip6tables-legacy" -elif ! 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" "ss" "iptables" =20 check_mark() { diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 5208492d1f01..684c532c2f35 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -32,13 +32,7 @@ cleanup() mptcp_lib_ns_exit } =20 -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" =20 trap cleanup EXIT =20 diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index 8925d94926ee..fb68fc79fd07 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -28,13 +28,7 @@ cleanup() mptcp_lib_ns_exit } =20 -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" =20 # "$ns1" ns2 ns3 # ns1eth1 ns2eth1 ns2eth3 ns3eth1 diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 3a9e2a69eb6d..bae3377b6afe 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -10,19 +10,13 @@ =20 . "$(dirname "${0}")/mptcp_lib.sh" =20 -mptcp_lib_check_mptcp -mptcp_lib_check_kallsyms +mptcp_lib_check_tools "ip" =20 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 =20 -if ! ip -Version &> /dev/null; then - echo "SKIP: Cannot not run test without ip tool" - exit ${KSFT_SKIP} -fi - file=3D"" client4_pid=3D0 server4_pid=3D0 --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-179.mta0.migadu.com (out-179.mta0.migadu.com [91.218.175.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 291C84F60D for ; Thu, 21 Dec 2023 11:33:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="UGA/2Osj" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158418; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=75njX+S5UPGBcGQVuYeWrJuW+RAc8TFBEBUzLmcoybM=; b=UGA/2OsjyL3wkaQLq7i8PKe0ummvavGPqOaRoskFqbSvED+RzgcOx6JYbEGvSrejAFIPD8 DoEwUugvkQSYn1QmBH80c+1ofCxG/mmg2hXxSu616g+hP//2izlSbSfBCsGfSkFB4xAuQZ eCf/ngQLOpm4MiATW/lXG5pvHO26lI0= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 14/15] selftests: mptcp: add mptcp_lib_cleanup helper Date: Thu, 21 Dec 2023 19:31:17 +0800 Message-Id: In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" This patch adds a new helper mptcp_lib_cleanup() in mptcp_lib.sh, it's a public cleanup interface, being invoked in every cleanup() in all scripts. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/diag.sh | 1 + tools/testing/selftests/net/mptcp/mptcp_connect.sh | 1 + tools/testing/selftests/net/mptcp/mptcp_join.sh | 1 + tools/testing/selftests/net/mptcp/mptcp_lib.sh | 6 ++++++ tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 1 + tools/testing/selftests/net/mptcp/pm_netlink.sh | 1 + tools/testing/selftests/net/mptcp/simult_flows.sh | 1 + tools/testing/selftests/net/mptcp/userspace_pm.sh | 1 + 8 files changed, 13 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index 1424769d292b..ba6604a74329 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -28,6 +28,7 @@ cleanup() ip netns pids "${ns1}" | xargs --no-run-if-empty kill -SIGKILL &>/dev/null =20 mptcp_lib_ns_exit + mptcp_lib_cleanup } =20 mptcp_lib_check_tools "ip" "ss" diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index c64f0038daef..cf9548e190b1 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -133,6 +133,7 @@ cleanup() rm -f "$capout" =20 mptcp_lib_ns_exit + mptcp_lib_cleanup } =20 mptcp_lib_check_tools "ip" "ss" diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 8b52ed5c15b2..5972f1c23246 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -156,6 +156,7 @@ cleanup() rm -f "$tmpfile" mptcp_lib_evts_remove rm -f $check_output_err + mptcp_lib_cleanup cleanup_partial } =20 diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 90e2864391cf..540c35012041 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -525,3 +525,9 @@ mptcp_lib_check_tools() { fi fi } + +mptcp_lib_cleanup() { + echo "cleanup" +} + +echo -e "\n${KSFT_TEST}\n" diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index 3ab7eb695af3..2290b3290214 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -71,6 +71,7 @@ cleanup() mptcp_lib_ns_exit rm -f "$cin" "$cout" rm -f "$sin" "$sout" + mptcp_lib_cleanup } =20 mptcp_lib_check_tools "ip" "ss" "iptables" diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 684c532c2f35..59d891300df5 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -30,6 +30,7 @@ cleanup() { rm -f $err mptcp_lib_ns_exit + mptcp_lib_cleanup } =20 mptcp_lib_check_tools "ip" diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index fb68fc79fd07..57180c2da605 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -26,6 +26,7 @@ cleanup() rm -f "$capout" =20 mptcp_lib_ns_exit + mptcp_lib_cleanup } =20 mptcp_lib_check_tools "ip" diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index bae3377b6afe..50eda314ec2e 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -98,6 +98,7 @@ cleanup() rm -rf $file mptcp_lib_evts_remove =20 + mptcp_lib_cleanup _printf "Done\n" } =20 --=20 2.35.3 From nobody Sun May 19 03:12:52 2024 Received: from out-188.mta0.migadu.com (out-188.mta0.migadu.com [91.218.175.188]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B2A0922324 for ; Thu, 21 Dec 2023 11:33:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="OviV5rJn" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1703158420; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LHKZCMJUUj/YLyLqiwasaXRB8T18yVI9+zzSssaVs18=; b=OviV5rJnIr9ROqCoFR6jIq1ATn7uRIq+Jbl+lc3afGVXe6KxTPuoZMK1bp8SBvQND55pYi wizHOe+a5QumEgqYtw8U8IsWCKy5umFORXkgJPX1Ub3MvbgapnT7AxMs2DcY31s2Dl47g2 Q992o7/9t151Ro8Juq3gQwT995rxOFE= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v6 15/15] selftests: mptcp: add mptcp_lib_check_output helper Date: Thu, 21 Dec 2023 19:31:18 +0800 Message-Id: <6d41bb831a15469b0e051e437a7aeaf7c2a31e20.1703158128.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" Unify check_output() in mptcp_join.sh and check() in pm_netlink.sh into a new public function mptcp_lib_check_output() in mptcp_lib.sh. And use mptcp_lib_print_ok() and _err() in it to print test results with colors. Use this new helper instead of check_output() and check(). Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 43 ++++--------------- .../testing/selftests/net/mptcp/mptcp_lib.sh | 31 +++++++++++++ .../testing/selftests/net/mptcp/pm_netlink.sh | 29 ++++--------- 3 files changed, 47 insertions(+), 56 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 5972f1c23246..ee16ffcedd6b 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -20,7 +20,6 @@ cinfail=3D"" cinsent=3D"" tmpfile=3D"" cout=3D"" -check_output_err=3D"" capout=3D"" ksft_skip=3D4 timeout_poll=3D30 @@ -141,7 +140,6 @@ init() { cinsent=3D$(mktemp) cout=3D$(mktemp) mptcp_lib_evts_init - check_output_err=3D$(mktemp) =20 trap cleanup EXIT =20 @@ -155,7 +153,6 @@ cleanup() rm -f "$sin" "$sout" "$cinsent" "$cinfail" rm -f "$tmpfile" mptcp_lib_evts_remove - rm -f $check_output_err mptcp_lib_cleanup cleanup_partial } @@ -3303,30 +3300,6 @@ userspace_pm_get_addr() ip netns exec $1 ./pm_nl_ctl get $2 token $tk } =20 -check_output() -{ - local cmd=3D"$1" - local expected=3D"$2" - local msg=3D"$3" - local out=3D`$cmd 2>$check_output_err` - local cmd_ret=3D$? - - printf "%-42s" "$msg" - if [ $cmd_ret -ne 0 ]; then - mptcp_lib_print_err "[ FAIL ] command execution '$cmd' stderr " - cat $check_output_err - ret=3D${KSFT_FAIL} - return $cmd_ret - elif [ "$out" =3D "$expected" ]; then - mptcp_lib_print_ok "[ OK ]" - return 0 - else - mptcp_lib_print_err "[ FAIL ] expected '$expected' got '$out'" - ret=3D${KSFT_FAIL} - return 1 - fi -} - userspace_tests() { # userspace pm type prevents add_addr @@ -3533,10 +3506,10 @@ userspace_tests() chk_subflows_total 2 2 chk_mptcp_info add_addr_signal 1 add_addr_accepted 1 local dump=3D"id 10 flags signal 10.0.2.1" - check_output "userspace_pm_get_addr $ns1 10" \ - "$dump" " get id 10 addr" - check_output "userspace_pm_dump $ns1" \ - "$dump" " dump addrs signal" + mptcp_lib_check_output "userspace_pm_get_addr $ns1 10" \ + "$dump" " get id 10 addr" + mptcp_lib_check_output "userspace_pm_dump $ns1" \ + "$dump" " dump addrs signal" mptcp_lib_evts_kill wait $tests_pid fi @@ -3557,10 +3530,10 @@ userspace_tests() chk_mptcp_info subflows 1 subflows 1 chk_subflows_total 2 2 local dump=3D"id 20 flags subflow 10.0.3.2" - check_output "userspace_pm_get_addr $ns2 20" \ - "$dump" " get id 20 addr" - check_output "userspace_pm_dump $ns2" \ - "$dump" " dump addrs subflow" + mptcp_lib_check_output "userspace_pm_get_addr $ns2 20" \ + "$dump" " get id 20 addr" + mptcp_lib_check_output "userspace_pm_dump $ns2" \ + "$dump" " dump addrs subflow" mptcp_lib_evts_kill wait $tests_pid fi diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 540c35012041..162fd6922086 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -526,8 +526,39 @@ mptcp_lib_check_tools() { fi } =20 +check_output_err=3D$(mktemp) + +mptcp_lib_check_output() { + : "${check_output_err:?}" + : "${ret:?}" + + local cmd=3D"$1" + local expected=3D"$2" + local msg=3D"$3" + local out=3D`$cmd 2>$check_output_err` + local cmd_ret=3D$? + + printf "%-42s" "$msg" + if [ $cmd_ret -ne 0 ]; then + mptcp_lib_print_err "[ FAIL ] command execution '$cmd' stderr " + cat $check_output_err + ret=3D${KSFT_FAIL} + return $cmd_ret + elif [ "$out" =3D "$expected" ]; then + mptcp_lib_print_ok "[ OK ]" + return 0 + else + mptcp_lib_print_err "[ FAIL ] expected '$expected' got '$out'" + ret=3D${KSFT_FAIL} + return 1 + fi +} + mptcp_lib_cleanup() { + : "${check_output_err:?}" + echo "cleanup" + rm -f $check_output_err } =20 echo -e "\n${KSFT_TEST}\n" diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 59d891300df5..e8ecf292a38f 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -24,11 +24,9 @@ while getopts "$optstring" option;do done =20 mptcp_lib_ns_init -err=3D$(mktemp) =20 cleanup() { - rm -f $err mptcp_lib_ns_exit mptcp_lib_cleanup } @@ -41,26 +39,15 @@ ip netns exec $ns1 sysctl -q net.mptcp.enabled=3D1 =20 check() { - local cmd=3D"$1" - local expected=3D"$2" - local msg=3D"$3" - local out=3D`$cmd 2>$err` - local cmd_ret=3D$? - - 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}" - ret=3D1 - elif [ "$out" =3D "$expected" ]; then - echo "[ OK ]" - mptcp_lib_result_pass "${msg}" + # ${*} doesn't work here since there're spaces in some arguments. + mptcp_lib_check_output "${1}" "${2}" "${3}" + local rc=3D$? + if [ ${rc} -eq 0 ]; then + mptcp_lib_result_pass "${3}" + elif [ ${rc} -eq 1 ]; then + mptcp_lib_result_fail "${3} # different output" else - echo -n "[FAIL] " - echo "expected '$expected' got '$out'" - mptcp_lib_result_fail "${msg} # different output" - ret=3D1 + mptcp_lib_result_fail "${3} # error ${rc}" fi } =20 --=20 2.35.3