[PATCH mptcp-next v2 2/2] selftests: net: mptcp: add fallback checks in chk_join_nr

Gang Yan posted 2 patches 1 month ago
[PATCH mptcp-next v2 2/2] selftests: net: mptcp: add fallback checks in chk_join_nr
Posted by Gang Yan 1 month ago
This patch can track these counters in each namespace and check if they
don't have unexpected values in tests.

Signed-off-by: Gang Yan <yangang@kylinos.cn>
---
 tools/testing/selftests/net/mptcp/mptcp_join.sh | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 2c1f0704bc17..ac9e9d4fed59 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -74,6 +74,8 @@ unset join_create_err
 unset join_bind_err
 unset join_connect_err
 
+unset ns1_fb
+unset ns2_fb
 unset infinite_map_tx_fb
 unset dss_corruption_fb
 unset simult_conn_fb
@@ -1582,6 +1584,20 @@ chk_join_nr()
 	join_syn_tx="${join_syn_tx:-${syn_nr}}" \
 		chk_join_tx_nr
 
+	if [[ -n "$ns1_fb" ]]; then
+		eval "$ns1_fb" \
+			chk_fallback_nr ${ns1}
+	else
+		chk_fallback_nr ${ns1}
+	fi
+
+	if [[ -n "$ns2_fb" ]]; then
+		eval "$ns2_fb" \
+			chk_fallback_nr ${ns2}
+	else
+		chk_fallback_nr ${ns2}
+	fi
+
 	if $validate_checksum; then
 		chk_csum_nr $csum_ns1 $csum_ns2
 		chk_fail_nr $fail_nr $fail_nr
@@ -3435,6 +3451,7 @@ fail_tests()
 		join_csum_ns1=+1 join_csum_ns2=+0 \
 			join_fail_nr=1 join_rst_nr=0 join_infi_nr=1 \
 			join_corrupted_pkts="$(pedit_action_pkts)" \
+			ns1_fb="dss_fb=1" ns2_fb="infinite_map_tx_fb=1" \
 			chk_join_nr 0 0 0
 		chk_fail_nr 1 -1 invert
 	fi
-- 
2.43.0
Re: [PATCH mptcp-next v2 2/2] selftests: net: mptcp: add fallback checks in chk_join_nr
Posted by Matthieu Baerts 1 month ago

On 14/08/2025 05:16, Gang Yan wrote:
> This patch can track these counters in each namespace and check if they
> don't have unexpected values in tests.
> 
> Signed-off-by: Gang Yan <yangang@kylinos.cn>
> ---
>  tools/testing/selftests/net/mptcp/mptcp_join.sh | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> index 2c1f0704bc17..ac9e9d4fed59 100755
> --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
> +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
> @@ -74,6 +74,8 @@ unset join_create_err
>  unset join_bind_err
>  unset join_connect_err
>  
> +unset ns1_fb
> +unset ns2_fb
>  unset infinite_map_tx_fb
>  unset dss_corruption_fb
>  unset simult_conn_fb
> @@ -1582,6 +1584,20 @@ chk_join_nr()
>  	join_syn_tx="${join_syn_tx:-${syn_nr}}" \
>  		chk_join_tx_nr
>  
> +	if [[ -n "$ns1_fb" ]]; then

Detail: you can use simple [], like in most places in this file.

> +		eval "$ns1_fb" \
> +			chk_fallback_nr ${ns1}
> +	else
> +		chk_fallback_nr ${ns1}
> +	fi
> +
> +	if [[ -n "$ns2_fb" ]]; then

Same here for simple [].

> +		eval "$ns2_fb" \
> +			chk_fallback_nr ${ns2}
> +	else
> +		chk_fallback_nr ${ns2}
> +	fi

This will print this for each test:

   #       check fallback nr                   [ OK ]
   #       check fallback nr                   [ OK ]

Not pretty... Also, it might be confusing to have all these "fallback"
lines when we don't expect any fallbacks.

What about printing it only in case of error? (or only once? but still
confusing / not worth it when printed for all tests?)


You could have another helper containing the code here above, and instead:

  rc=${KSFT_PASS}
  chk_fallback_nr_all || rc=${?}

  if [ "$rc" != "${KSFT_PASS}" ]; then
      print_results "fallback" ${rc}
  fi

> +
>  	if $validate_checksum; then
>  		chk_csum_nr $csum_ns1 $csum_ns2
>  		chk_fail_nr $fail_nr $fail_nr
> @@ -3435,6 +3451,7 @@ fail_tests()
>  		join_csum_ns1=+1 join_csum_ns2=+0 \
>  			join_fail_nr=1 join_rst_nr=0 join_infi_nr=1 \
>  			join_corrupted_pkts="$(pedit_action_pkts)" \
> +			ns1_fb="dss_fb=1" ns2_fb="infinite_map_tx_fb=1" \
>  			chk_join_nr 0 0 0
>  		chk_fail_nr 1 -1 invert
>  	fi

Cheers,
Matt
-- 
Sponsored by the NGI0 Core fund.