MPTCP Linux Development
 help / color / mirror / Atom feed
From: Geliang Tang <geliang@kernel.org>
To: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>, mptcp@lists.linux.dev
Subject: Re: [PATCH mptcp-next 2/5] selftests: mptcp: move stats info in case of errors to lib.sh
Date: Thu, 09 Jan 2025 17:24:42 +0800	[thread overview]
Message-ID: <29b3e04b00e3d1dcaa59f589d43eed7e0c107a96.camel@kernel.org> (raw)
In-Reply-To: <20250108-slft-mptcp-conn-misc-impr-v1-2-bdfbdba48a1f@kernel.org>

Hi Matt,

Thanks for this set.

On Wed, 2025-01-08 at 19:40 +0100, Matthieu Baerts (NGI0) wrote:
> A few MPTCP selftests are using the same code to print stats in case
> of
> error. This code can then be moved to mptcp_lib.sh.
> 
> No behaviour changes intended, except to print the error in red and
> to
> stderr, like most error messages.
> 
> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> ---
>  tools/testing/selftests/net/mptcp/mptcp_connect.sh |  8 ++------
>  tools/testing/selftests/net/mptcp/mptcp_join.sh    |  9 ++-------
>  tools/testing/selftests/net/mptcp/mptcp_lib.sh     | 21
> +++++++++++++++++++++
>  tools/testing/selftests/net/mptcp/mptcp_sockopt.sh |  6 +-----
>  tools/testing/selftests/net/mptcp/simult_flows.sh  |  8 ++------
>  5 files changed, 28 insertions(+), 24 deletions(-)
> 
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> index
> b48b4e56826a9cfdb3501242b707ae2ebe29b220..bfdaecd0a6a0564020530345daf
> 91bed296bc15c 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
> @@ -445,12 +445,8 @@ do_transfer()
>  	printf "(duration %05sms) " "${duration}"
>  	if [ ${rets} -ne 0 ] || [ ${retc} -ne 0 ]; then
>  		mptcp_lib_pr_fail "client exit code $retc, server
> $rets"
> -		echo -e "\nnetns ${listener_ns} socket stat for
> ${port}:" 1>&2
> -		ip netns exec ${listener_ns} ss -Menita 1>&2 -o
> "sport = :$port"
> -		cat /tmp/${listener_ns}.out
> -		echo -e "\nnetns ${connector_ns} socket stat for
> ${port}:" 1>&2
> -		ip netns exec ${connector_ns} ss -Menita 1>&2 -o
> "dport = :$port"
> -		[ ${listener_ns} != ${connector_ns} ] && cat
> /tmp/${connector_ns}.out
> +		mptcp_lib_pr_err_stats "${listener_ns}"
> "${connector_ns}" "${port}" \
> +			"/tmp/${listener_ns}.out"
> "/tmp/${connector_ns}.out"
>  
>  		echo
>  		cat "$capout"
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> index
> c07e2bd3a315aac9c422fed85c3196ec46e060f7..13a3b68181ee14eb628a858e573
> 8094c3c936b74 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> @@ -1039,13 +1039,8 @@ do_transfer()
>  
>  	if [ ${rets} -ne 0 ] || [ ${retc} -ne 0 ]; then
>  		fail_test "client exit code $retc, server $rets"
> -		echo -e "\nnetns ${listener_ns} socket stat for
> ${port}:" 1>&2
> -		ip netns exec ${listener_ns} ss -Menita 1>&2 -o
> "sport = :$port"
> -		cat /tmp/${listener_ns}.out
> -		echo -e "\nnetns ${connector_ns} socket stat for
> ${port}:" 1>&2
> -		ip netns exec ${connector_ns} ss -Menita 1>&2 -o
> "dport = :$port"
> -		cat /tmp/${connector_ns}.out
> -
> +		mptcp_lib_pr_err_stats "${listener_ns}"
> "${connector_ns}" "${port}" \
> +			"/tmp/${listener_ns}.out"
> "/tmp/${connector_ns}.out"
>  		return 1
>  	fi
>  
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> index
> 975d4d4c862afff2e685e86dc08a892dbd09d783..50ca64357053b14cd4989e6647d
> 825337978fdba 100644
> --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
> @@ -107,6 +107,27 @@ mptcp_lib_pr_info() {
>  	mptcp_lib_print_info "INFO: ${*}"
>  }
>  
> +# $1-2: listener/connector ns ; $3 port ; [ $4-5 listener/connector
> stat file ]
> +mptcp_lib_pr_err_stats() {
> +	local lns="${1}"
> +	local cns="${2}"
> +	local port="${3}"
> +	local lstat="${4:-}"
> +	local cstat="${5:-}"

I think it's better to add a separate patch to add

	cat /tmp/${listener_ns}.out

and

	cat /tmp/${connector_ns}.out

in mptcp_sockopt.sh, then we can drop the last two arguments "lstat"
and "cstat" of this helper.

WDYT?

Thanks,
-Geliang

> +
> +	echo -en "${MPTCP_LIB_COLOR_RED}"
> +	{
> +		printf "\nnetns %s (listener) socket stat for %d:\n"
> "${lns}" "${port}"
> +		ip netns exec "${lns}" ss -Menita -o "sport =
> :${port}"
> +		[ -s "${lstat}" ] && cat "${lstat}"
> +
> +		printf "\nnetns %s (connector) socket stat for
> %d:\n" "${cns}" "${port}"
> +		ip netns exec "${cns}" ss -Menita -o "dport =
> :${port}"
> +		[ "${lstat}" != "${cstat}" ] && [ -s "${cstat}" ] &&
> cat "${cstat}"
> +	} 1>&2
> +	echo -en "${MPTCP_LIB_COLOR_RESET}"
> +}
> +
>  # SELFTESTS_MPTCP_LIB_EXPECT_ALL_FEATURES env var can be set when
> validating all
>  # features using the last version of the kernel and the selftests to
> make sure
>  # a test is not being skipped by mistake.
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
> b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
> index
> 5e8d5b83e2d092879efc179f1a450542be4e575e..6b366c604a9eeccdb759f260be4
> feafc380ccb0b 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
> @@ -192,11 +192,7 @@ do_transfer()
>  	print_title "Transfer ${ip:2}"
>  	if [ ${rets} -ne 0 ] || [ ${retc} -ne 0 ]; then
>  		mptcp_lib_pr_fail "client exit code $retc, server
> $rets"
> -		echo -e "\nnetns ${listener_ns} socket stat for
> ${port}:" 1>&2
> -		ip netns exec ${listener_ns} ss -Menita 1>&2 -o
> "sport = :$port"
> -
> -		echo -e "\nnetns ${connector_ns} socket stat for
> ${port}:" 1>&2
> -		ip netns exec ${connector_ns} ss -Menita 1>&2 -o
> "dport = :$port"
> +		mptcp_lib_pr_err_stats "${listener_ns}"
> "${connector_ns}" "${port}"
>  
>  		mptcp_lib_result_fail "transfer ${ip}"
>  
> diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh
> b/tools/testing/selftests/net/mptcp/simult_flows.sh
> index
> e98e5907d52c2d0e9c0152efda82176861905cf1..9c2a415976cbf7a0b56cd4b2fbd
> d36c9e1ef3c8c 100755
> --- a/tools/testing/selftests/net/mptcp/simult_flows.sh
> +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh
> @@ -204,12 +204,8 @@ do_transfer()
>  	fi
>  
>  	mptcp_lib_pr_fail "client exit code $retc, server $rets"
> -	echo -e "\nnetns ${ns3} socket stat for $port:" 1>&2
> -	ip netns exec ${ns3} ss -Menita 1>&2 -o "sport = :$port"
> -	cat /tmp/${ns3}.out
> -	echo -e "\nnetns ${ns1} socket stat for $port:" 1>&2
> -	ip netns exec ${ns1} ss -Menita 1>&2 -o "dport = :$port"
> -	cat /tmp/${ns1}.out
> +	mptcp_lib_pr_err_stats "${ns3}" "${ns1}" "${port}" \
> +		"/tmp/${ns3}.out" "/tmp/${ns1}.out"
>  	ls -l $sin $cout
>  	ls -l $cin $sout
>  
> 


  reply	other threads:[~2025-01-09  9:24 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-08 18:40 [PATCH mptcp-next 0/5] selftests: mptcp: more info in case of errors Matthieu Baerts (NGI0)
2025-01-08 18:40 ` [PATCH mptcp-next 1/5] selftests: mptcp: simult_flows: unify errors msgs Matthieu Baerts (NGI0)
2025-01-10  8:16   ` Geliang Tang
2025-01-10 10:35     ` Matthieu Baerts
2025-01-08 18:40 ` [PATCH mptcp-next 2/5] selftests: mptcp: move stats info in case of errors to lib.sh Matthieu Baerts (NGI0)
2025-01-09  9:24   ` Geliang Tang [this message]
2025-01-09 15:30     ` Matthieu Baerts
2025-01-10  3:05       ` Geliang Tang
2025-01-08 18:40 ` [PATCH mptcp-next 3/5] selftests: mptcp: add -m with ss in case of errors Matthieu Baerts (NGI0)
2025-01-08 18:40 ` [PATCH mptcp-next 4/5] selftests: mptcp: connect: remove unused variable Matthieu Baerts (NGI0)
2025-01-08 18:40 ` [PATCH mptcp-next 5/5] selftests: mptcp: connect: better display the files size Matthieu Baerts (NGI0)
2025-01-08 19:50 ` [PATCH mptcp-next 0/5] selftests: mptcp: more info in case of errors MPTCP CI
2025-01-12 12:38 ` Matthieu Baerts

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=29b3e04b00e3d1dcaa59f589d43eed7e0c107a96.camel@kernel.org \
    --to=geliang@kernel.org \
    --cc=matttbe@kernel.org \
    --cc=mptcp@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox