From nobody Mon Feb 9 00:01:35 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 E754B130E32 for ; Thu, 22 Feb 2024 16:28:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708619294; cv=none; b=F9LZA9bYVb2ixxG7oXjT1pi8lgU+Zztr+yT2HPJ0HNbeSr7XlWCff1qqdEDfBB6+acEEeGRuTQvnzupYuOFPgvHHlpfg+QRRIysHewoq3J8ZhzPpMcYU25GxZGd5mOutEGcuDz1xegkPuiDK6OeVZB+FQ4jL23L7kCV9F50nWq4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708619294; c=relaxed/simple; bh=IKrIfUU+eO3CSKxbtFfZsGvYatox8OS2nqe7cmd/4Sg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nqfPbxR/+knfkDIydxolIwQ81R3dd/jbe41ShPKI2T4w5TN/Rd131oJsj68QHgxrGuaklcwTftrwXLS4wnUfmJMMhg1x4s/eFz51Y6cP5Oy/N4PPLdXbOzutHw0BGZWvlWVSKhi71tYsJLNKnRcj2BtbkKwmjgsL63y+RhzD8qs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gmIiSnKe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gmIiSnKe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE005C433C7; Thu, 22 Feb 2024 16:28:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708619293; bh=IKrIfUU+eO3CSKxbtFfZsGvYatox8OS2nqe7cmd/4Sg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=gmIiSnKeeDOvCArb2k/geul6do61bRTowReKvWB8cNuOJ76U6IZ8AFWVf63E+MRxq tgBFTye6wzF17x/wZlxB9g+ItxSlNzBPViNNg+S80LglxEfiBLI87fKIYjDOXsy8cH 2RZgQEp4sMmxMy+uL/6jOIaKV0CvLfg15PiP174gyWlI1W2Scpbnv260jInX7BMEpx eWW3UOJErCISWeArWOLbqgi46gq1okhSbn7dFwqsWiTruYT5xyCkEagfVmeFIXfzDE eZMceNFYLRnMBnnd9XIjNhnkqCr5eO0dnG4czTK7sXwwgECgM5unZe8OQUWqSWEhu6 7Xv95ACu3VScQ== From: "Matthieu Baerts (NGI0)" Date: Thu, 22 Feb 2024 17:27:58 +0100 Subject: [PATCH mptcp-next 2/6] selftests: mptcp: connect: fix shellcheck warnings Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240222-selftests-mptcp-shellcheck-v1-2-fed8ba9e6ca6@kernel.org> References: <20240222-selftests-mptcp-shellcheck-v1-0-fed8ba9e6ca6@kernel.org> In-Reply-To: <20240222-selftests-mptcp-shellcheck-v1-0-fed8ba9e6ca6@kernel.org> To: mptcp@lists.linux.dev Cc: "Matthieu Baerts (NGI0)" X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=8839; i=matttbe@kernel.org; h=from:subject:message-id; bh=IKrIfUU+eO3CSKxbtFfZsGvYatox8OS2nqe7cmd/4Sg=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBl13YaA4Yw7V8y4gyyb4POPldV5ZOQIEg6+6BoN GrNt0kmpTKJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZdd2GgAKCRD2t4JPQmmg c5YGEAClMivQIVaX1YSkBfalCtmH2A8PNruxa8dF8PG3nVGegFi+niqf6NRDktItWqAV3zeC/+d 03Yfr+fc2GQ3i2CBtzuFCeRweGxcAYE9Vkhi58NauPIQO0+JnOA+YIcNn+4M9JwLYxvdMc8BByr o83R6gF7dIsjwuSMbdpcRckkgbhIGWW1LZOxm5c5Px01plhpJR4njJJr9+nJAkRIXqsYyLyu7jU q7pwgoZnD9EAMx96RpcBZUhnNmTF1OarRruqwRQh84P2jT7QSN3wNKk3qQsOmMohUuodzxzBiLI u7HrWqDfTgRUbKnqLzRVgLwlBAk6WrFjzTfsm/o8dh3WfCxzDzgbCdIpzoDUXpnsDKNG1n5Cmfq XM9ooX9JlJbrWzGw4Ch8w6ZXXMkwM8x4PjWJLDlfxKiehhjcf6Q1coPtElVkUlcdjz5WI5P4BoH Zth9eZDan7E0DhEcB9Mhgex+WeW2x3H6R4N4+RtlC2vo0ZEWpXsbHQRODXZG9iH/uR9Hs9ymZYe jvbRi34b3s5xjFJvGnFVGneFTKfAuvnaVa70Kqvi81n+x/6O5zC4vEG6Ct7a/gFCKqtUMCcDRsx slxZ8o1WasjofwZJhkpps1RtSFSu/B8omhT5/BFSGlQG0vKF0EHfTXllx0vU3NuRckWeRQ0fsBf Azf3io/4nwnqVaA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 shellcheck recently helped to prevent issues. It is then good to fix the other harmless issues in order to spot "real" ones later. Here, two categories of warnings are now ignored: - SC2317: Command appears to be unreachable. The cleanup() function is invoked indirectly via the EXIT trap. - SC2086: Double quote to prevent globbing and word splitting. This is recommended, but the current usage is correct and there is no need to do all these modifications to be compliant with this rule. For the modifications: - SC2034: ksft_skip appears unused. - SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. - SC2004: $/${} is unnecessary on arithmetic variables. - SC2155: Declare and assign separately to avoid masking return values. - SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined. - SC2059: Don't use variables in the printf format string. Use printf '..%s..' "$foo". Now this script is shellcheck (0.9.0) compliant. We can easily spot new issues. Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_connect.sh | 76 +++++++++++++-----= ---- 1 file changed, 47 insertions(+), 29 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index b53ae64ec08c..0ca2960c9099 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -1,6 +1,11 @@ #!/bin/bash # SPDX-License-Identifier: GPL-2.0 =20 +# Double quotes to prevent globbing and word splitting is recommended in n= ew +# code but we accept it, especially because there were too many before hav= ing +# address all other issues detected by shellcheck. +#shellcheck disable=3DSC2086 + . "$(dirname "${0}")/mptcp_lib.sh" =20 time_start=3D$(date +%s) @@ -13,7 +18,6 @@ sout=3D"" cin_disconnect=3D"" cin=3D"" cout=3D"" -ksft_skip=3D4 capture=3Dfalse timeout_poll=3D30 timeout_test=3D$((timeout_poll * 2 + 1)) @@ -129,6 +133,8 @@ ns4=3D"" TEST_COUNT=3D0 TEST_GROUP=3D"" =20 +# This function is used in the cleanup trap +#shellcheck disable=3DSC2317 cleanup() { rm -f "$cin_disconnect" "$cout_disconnect" @@ -211,8 +217,9 @@ set_ethtool_flags() { local dev=3D"$2" local flags=3D"$3" =20 - ip netns exec $ns ethtool -K $dev $flags 2>/dev/null - [ $? -eq 0 ] && echo "INFO: set $ns dev $dev: ethtool -K $flags" + if ip netns exec $ns ethtool -K $dev $flags 2>/dev/null; then + echo "INFO: set $ns dev $dev: ethtool -K $flags" + fi } =20 set_random_ethtool_flags() { @@ -307,7 +314,7 @@ do_transfer() local extra_args=3D"$7" =20 local port - port=3D$((10000+$TEST_COUNT)) + port=3D$((10000+TEST_COUNT)) TEST_COUNT=3D$((TEST_COUNT+1)) =20 if [ "$rcvbuf" -gt 0 ]; then @@ -365,12 +372,18 @@ do_transfer() nstat -n fi =20 - local stat_synrx_last_l=3D$(mptcp_lib_get_counter "${listener_ns}" "MPTcp= ExtMPCapableSYNRX") - local stat_ackrx_last_l=3D$(mptcp_lib_get_counter "${listener_ns}" "MPTcp= ExtMPCapableACKRX") - local stat_cookietx_last=3D$(mptcp_lib_get_counter "${listener_ns}" "TcpE= xtSyncookiesSent") - local stat_cookierx_last=3D$(mptcp_lib_get_counter "${listener_ns}" "TcpE= xtSyncookiesRecv") - local stat_csum_err_s=3D$(mptcp_lib_get_counter "${listener_ns}" "MPTcpEx= tDataCsumErr") - local stat_csum_err_c=3D$(mptcp_lib_get_counter "${connector_ns}" "MPTcpE= xtDataCsumErr") + local stat_synrx_last_l + local stat_ackrx_last_l + local stat_cookietx_last + local stat_cookierx_last + local stat_csum_err_s + local stat_csum_err_c + stat_synrx_last_l=3D$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPC= apableSYNRX") + stat_ackrx_last_l=3D$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPC= apableACKRX") + stat_cookietx_last=3D$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSync= ookiesSent") + stat_cookierx_last=3D$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSync= ookiesRecv") + stat_csum_err_s=3D$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataC= sumErr") + stat_csum_err_c=3D$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtData= CsumErr") =20 timeout ${timeout_test} \ ip netns exec ${listener_ns} \ @@ -433,11 +446,16 @@ do_transfer() mptcp_lib_check_transfer $cin $sout "file received by server" rets=3D$? =20 - local stat_synrx_now_l=3D$(mptcp_lib_get_counter "${listener_ns}" "MPTcpE= xtMPCapableSYNRX") - local stat_ackrx_now_l=3D$(mptcp_lib_get_counter "${listener_ns}" "MPTcpE= xtMPCapableACKRX") - local stat_cookietx_now=3D$(mptcp_lib_get_counter "${listener_ns}" "TcpEx= tSyncookiesSent") - local stat_cookierx_now=3D$(mptcp_lib_get_counter "${listener_ns}" "TcpEx= tSyncookiesRecv") - local stat_ooo_now=3D$(mptcp_lib_get_counter "${listener_ns}" "TcpExtTCPO= FOQueue") + local stat_synrx_now_l + local stat_ackrx_now_l + local stat_cookietx_now + local stat_cookierx_now + local stat_ooo_now + stat_synrx_now_l=3D$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCa= pableSYNRX") + stat_ackrx_now_l=3D$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtMPCa= pableACKRX") + stat_cookietx_now=3D$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSynco= okiesSent") + stat_cookierx_now=3D$(mptcp_lib_get_counter "${listener_ns}" "TcpExtSynco= okiesRecv") + stat_ooo_now=3D$(mptcp_lib_get_counter "${listener_ns}" "TcpExtTCPOFOQueu= e") =20 expect_synrx=3D$((stat_synrx_last_l)) expect_ackrx=3D$((stat_ackrx_last_l)) @@ -446,8 +464,8 @@ do_transfer() cookies=3D${cookies##*=3D} =20 if [ ${cl_proto} =3D "MPTCP" ] && [ ${srv_proto} =3D "MPTCP" ]; then - expect_synrx=3D$((stat_synrx_last_l+$connect_per_transfer)) - expect_ackrx=3D$((stat_ackrx_last_l+$connect_per_transfer)) + expect_synrx=3D$((stat_synrx_last_l+connect_per_transfer)) + expect_ackrx=3D$((stat_ackrx_last_l+connect_per_transfer)) fi =20 if [ ${stat_synrx_now_l} -lt ${expect_synrx} ]; then @@ -455,7 +473,7 @@ do_transfer() "${stat_synrx_now_l}" "${expect_synrx}" 1>&2 retc=3D1 fi - if [ ${stat_ackrx_now_l} -lt ${expect_ackrx} -a ${stat_ooo_now} -eq 0 ]; = then + if [ ${stat_ackrx_now_l} -lt ${expect_ackrx} ] && [ ${stat_ooo_now} -eq 0= ]; then if [ ${stat_ooo_now} -eq 0 ]; then printf "[ FAIL ] lower MPC ACK rx (%d) than expected (%d)\n" \ "${stat_ackrx_now_l}" "${expect_ackrx}" 1>&2 @@ -466,18 +484,20 @@ do_transfer() fi =20 if $checksum; then - local csum_err_s=3D$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDat= aCsumErr") - local csum_err_c=3D$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtDa= taCsumErr") + local csum_err_s + local csum_err_c + csum_err_s=3D$(mptcp_lib_get_counter "${listener_ns}" "MPTcpExtDataCsumE= rr") + csum_err_c=3D$(mptcp_lib_get_counter "${connector_ns}" "MPTcpExtDataCsum= Err") =20 local csum_err_s_nr=3D$((csum_err_s - stat_csum_err_s)) if [ $csum_err_s_nr -gt 0 ]; then - printf "[ FAIL ]\nserver got $csum_err_s_nr data checksum error[s]" + printf "[ FAIL ]\nserver got %d data checksum error[s]" ${csum_err_s_nr} rets=3D1 fi =20 local csum_err_c_nr=3D$((csum_err_c - stat_csum_err_c)) if [ $csum_err_c_nr -gt 0 ]; then - printf "[ FAIL ]\nclient got $csum_err_c_nr data checksum error[s]" + printf "[ FAIL ]\nclient got %d data checksum error[s]" ${csum_err_c_nr} retc=3D1 fi fi @@ -645,7 +665,7 @@ run_test_transparent() return fi =20 -ip netns exec "$listener_ns" nft -f /dev/stdin <<"EOF" + if ! ip netns exec "$listener_ns" nft -f /dev/stdin <<"EOF" flush ruleset table inet mangle { chain divert { @@ -656,7 +676,7 @@ table inet mangle { } } EOF - if [ $? -ne 0 ]; then + then echo "SKIP: $msg, could not load nft ruleset" mptcp_lib_fail_if_expected_feature "nft rules" mptcp_lib_result_skip "${TEST_GROUP}" @@ -671,8 +691,7 @@ EOF local_addr=3D"0.0.0.0" fi =20 - ip -net "$listener_ns" $r6flag rule add fwmark 1 lookup 100 - if [ $? -ne 0 ]; then + if ! ip -net "$listener_ns" $r6flag rule add fwmark 1 lookup 100; then ip netns exec "$listener_ns" nft flush ruleset echo "SKIP: $msg, ip $r6flag rule failed" mptcp_lib_fail_if_expected_feature "ip rule" @@ -680,8 +699,7 @@ EOF return fi =20 - ip -net "$listener_ns" route add local $local_addr/0 dev lo table 100 - if [ $? -ne 0 ]; then + if ! ip -net "$listener_ns" route add local $local_addr/0 dev lo table 10= 0; then ip netns exec "$listener_ns" nft flush ruleset ip -net "$listener_ns" $r6flag rule del fwmark 1 lookup 100 echo "SKIP: $msg, ip route add local $local_addr failed" @@ -844,7 +862,7 @@ stop_if_error "Could not even run ping tests" echo -n "INFO: Using loss of $tc_loss " test "$tc_delay" -gt 0 && echo -n "delay $tc_delay ms " =20 -reorder_delay=3D$(($tc_delay / 4)) +reorder_delay=3D$((tc_delay / 4)) =20 if [ -z "${tc_reorder}" ]; then reorder1=3D$((RANDOM%10)) --=20 2.43.0