From nobody Tue May 14 03:06:34 2024 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 9CD9D22098 for ; Mon, 19 Feb 2024 09:29:49 +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=1708334989; cv=none; b=PTYRk/jnykA2JCFcd30cBO0IJlxb/HmulbL1poWjM9CAenRnjps1Z3hK11bxScfto0BHkHjbx7s+prYqK4/0vHORET9u1ou3HE0ci4XgswWcnPUyx/7OEYBbZJmY/1VrAbLRg/wo7GmUWbWGbhmZGrJ8AKUWaz4xYBGDRkSxfPE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708334989; c=relaxed/simple; bh=xBJfR4p/erNifF7urg+dlUQATygfDOnlNGHA+M/fUY0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=A10qEj0diWxEyOCgxFgYvLIs+4mWA4w1jnTPIal7mWL2GgprQxbLoLPzjDNzwtssbIixEyY/+B6r3zq6dlbybi/du6BtsefTUFsPRCi5kis6729E3l9yfY0oUu4UcQS8mAHxJP32AGGuQvtd8kzTx0MSc7vUuPogjJX3hEkXmSY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qeTrQIXh; 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="qeTrQIXh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 03013C433C7; Mon, 19 Feb 2024 09:29:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708334989; bh=xBJfR4p/erNifF7urg+dlUQATygfDOnlNGHA+M/fUY0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qeTrQIXh+Lcpc18W4pXSfzF0VC6piF5idDzNv01StogKs9KFhtQbpIDW048MQQ/RZ FsSBqCho6CMzbNp90X2saiM+xC+bNr3dIyuwEJ2TB3vCjAm9mN6pvzcRHWkQuxTtRW /wQKEcKMQNaqhZ+OHVagvH5Cpv1cpB0ZR1dzxx1MkbAArv1J3uOHCZomdzNunF5nH3 740Bh7PopJE4XuXGSaJTqMJ22H4m4eKMtuJwb8j/8ktxFfoq8vHavE1owR+XUUTOId qtJGvjXPM+lPhTUX6Qn0wUHSN3u5k0ZLEf91+ZgDfoWuoeVwfcMiTmszp/q/gDdHJR hZNraJ6oYhPNw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 1/5] selftests: mptcp: unify namespace names to ns1/2/3/4 Date: Mon, 19 Feb 2024 17:29:31 +0800 Message-Id: X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang 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 60a7009ce1b5..e91dde816543 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=3D30 @@ -18,19 +18,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 @@ -38,7 +38,7 @@ mptcp_lib_check_tools ip ss =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() @@ -73,7 +73,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() @@ -94,7 +94,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)) @@ -133,7 +133,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() @@ -163,7 +163,7 @@ chk_msk_inuse() msg+=3D" after flush" fi =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() msg+=3D" after flush" fi =20 - __chk_nr "mptcp_lib_get_counter ${ns} MPTcpExtMPCurrEstab" \ + __chk_nr "mptcp_lib_get_counter ${ns1} MPTcpExtMPCurrEstab" \ "${expected}" "${msg}" "" } =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 "2->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_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 fd7de1b3dc55..eb06c3f6184b 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -18,7 +18,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() { @@ -41,7 +41,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 @@ -80,7 +80,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" @@ -223,7 +223,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 @@ -234,7 +234,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 @@ -265,7 +265,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.40.1 From nobody Tue May 14 03:06:34 2024 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 CFA5179D1 for ; Mon, 19 Feb 2024 09:29:51 +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=1708334991; cv=none; b=Jlyau+OVbRLsv9A6UrY7geWw9EiSxfmOQuEnMFWDL5zxek2Jty9Um+wpeJv1x6lrPl8Ku6NLKOI2hpDkE34UtIQJ1qMJzBqNy4d02Mks3bnNg9+f7LGSo5swJLkSYgnfmlllXPJdQsFqF2EQnVcfXkNZ0KKjcV34DWgSkg8hgXU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708334991; c=relaxed/simple; bh=MGeJcuVJlSdUeKeXeLlspf+oFqzfqripLHZoNLXDevg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=n0Rju/+ucS203C1K2awZJqONuwVQMj8pw57I+U5EJlZ7PDbS02efzqbDvlUxHXYGwLLmPLCec1XAvjhaiXy2XmXZLJUbTibd95HqeIu3BxZs3sRtIwlAQFX9GFbSuYwR2cbFSO1Lh0khKKb8J9A6kBoTeRvIGbb3JAR2WhHjjsI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pXe2TJ8T; 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="pXe2TJ8T" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D2E73C433F1; Mon, 19 Feb 2024 09:29:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708334991; bh=MGeJcuVJlSdUeKeXeLlspf+oFqzfqripLHZoNLXDevg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pXe2TJ8TdpOc81+xST47x7ktEBJU1NSMEIb1S/OpHFXa+G1q8MgPaMTBy3WVf3bd8 rf6F8FvQAhyVeBt0MoSxsbZTfpx/JuDQGUM+MYocHo0PU0ibexOf4TOKyzixO9XJKt lWMFIPZUFB7TTkYqnrpGtUPZu/RILjdCxva1rDxMJG+4N3r2UQ7dmlpUDrw3k/KUgI mINkU/GY1aQfu2DU1t22vLWOIMY2BEfplYV9qpTF3PhLu5bZout5vP80FPas8j34pA Gvmp0JF8/220CIi65PKXSl8xeF59KkOXc/IMHiVXXshVvVTE3fm6vnOH7H8jly3//n wDupoZZ8FxBKw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 2/5] selftests: mptcp: add mptcp_lib_ns_* helpers Date: Mon, 19 Feb 2024 17:29:32 +0800 Message-Id: X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang 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 | 59 +++++++++++++++++++ .../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, 75 insertions(+), 84 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index e91dde816543..40fc04e8e592 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 1 ksft_skip=3D4 test_cnt=3D1 timeout_poll=3D30 @@ -30,7 +28,7 @@ cleanup() { ip netns pids "${ns1}" | xargs --no-run-if-empty kill -SIGKILL &>/dev/null =20 - ip netns del $ns1 + mptcp_lib_ns_exit 1 } =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 ea52110c3fbc..00527f4c3b98 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -121,12 +121,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"" @@ -138,11 +133,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 @@ -158,11 +149,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% @@ -251,6 +237,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 a8d08554efc9..7e354ff5d717 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -23,8 +23,6 @@ tmpfile=3D"" cout=3D"" check_output_err=3D"" capout=3D"" -ns1=3D"" -ns2=3D"" ksft_skip=3D4 iptables=3D"iptables" ip6tables=3D"ip6tables" @@ -86,21 +84,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 2 =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; then ip netns exec $netns sysctl -q net.mptcp.checksum_enabled=3D1 fi @@ -145,11 +134,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 2 } =20 init() { diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 6d9a2af85a8d..bfc535594675 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -350,3 +350,62 @@ mptcp_lib_check_tools() { esac done } + +rndh=3D"" +ns1=3D"" +ns2=3D"" +ns3=3D"" +ns4=3D"" + +mptcp_lib_ns_init() { + : "${rndh?}" + : "${ns1?}" + : "${ns2?}" + : "${ns3?}" + : "${ns4?}" + + local nr=3D"${1:-4}" + local i=3D1 + 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 + if [ "$i" -gt "$nr" ]; then + break + fi + 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 + i=3D$((i + 1)) + done +} + +mptcp_lib_ns_exit() { + : "${ns1:?}" + : "${ns2:?}" + : "${ns3:?}" + : "${ns4:?}" + + local nr=3D"${1:-4}" + local i=3D1 + + local netns + for netns in "$ns1" "$ns2" "$ns3" "$ns4"; do + if [ "$i" -gt "$nr" ]; then + break + fi + ip netns del "$netns" + rm -f /tmp/"$netns".{nstat,out} + i=3D$((i + 1)) + done +} diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index eb06c3f6184b..5d8881d11fb0 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -14,11 +14,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 3 =20 add_mark_rules() { @@ -42,11 +38,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 @@ -79,10 +71,7 @@ init() =20 cleanup() { - local netns - for netns in "$ns1" "$ns2" "$ns3"; do - ip netns del $netns - done + mptcp_lib_ns_exit 3 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 cb6ea67e688b..2ea80f1b0aee 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -24,15 +24,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 1 err=3D$(mktemp) =20 cleanup() { rm -f $err - ip netns del $ns1 + mptcp_lib_ns_exit 1 } =20 mptcp_lib_check_mptcp @@ -40,8 +38,6 @@ mptcp_lib_check_tools ip =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 7d8388ecc966..a45b6ad41aea 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 3 capture=3Dfalse ksft_skip=3D4 timeout_poll=3D30 @@ -36,10 +32,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 3 } =20 mptcp_lib_check_mptcp @@ -65,13 +58,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 629fc5d0ecc5..71caa6b449a8 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -50,10 +50,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 2 ret=3D0 test_name=3D"" =20 @@ -118,10 +115,7 @@ cleanup() mptcp_lib_kill_wait $pid done =20 - local netns - for netns in "$ns1" "$ns2" ;do - ip netns del "$netns" - done + mptcp_lib_ns_exit 2 =20 rm -rf $file $client_evts $server_evts =20 @@ -132,8 +126,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.40.1 From nobody Tue May 14 03:06:34 2024 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 AB9C122098 for ; Mon, 19 Feb 2024 09:29:53 +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=1708334993; cv=none; b=CDdxa7FvVl83VYv97mkXAm7ufiYRz+05gSZ9mYqw+m5xcGmLJveqGx5Vd4bRcYcVNJRPTBSvsLYBO1wEYGRyj1RO4PaA3n0O6M+BW+X7dltLE4JfW/+46mxwtFyyicvQ/SaekdqoGRQX1/z9cZc/8Fw53ukJfSrndCepevXxAbA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708334993; c=relaxed/simple; bh=iSf8O56WlSfF6At2xOHXGc+qEC/HTxSffJRvs3rJl70=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=WOb7maBrHA+T2T8oqXENYhqbyn8Jhoc/vMiFv579ebGm39k/uBKpfiem9umq7norEya2PZaxdpAMohOLW7ECRF7QjwwoZmQx/j5JfuRpGwT/J7lmQMJfrTkQSTPIzdKMmxRStZkX/kKQMO5W+DXTiTF4QUQnkzNyaD9DBNcbRFk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SU9DtflZ; 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="SU9DtflZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 010CDC433C7; Mon, 19 Feb 2024 09:29:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708334993; bh=iSf8O56WlSfF6At2xOHXGc+qEC/HTxSffJRvs3rJl70=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SU9DtflZAEFoD6UtU78YFbQ7SY+SxDw5+9x8ERmQ/UfNV7qdLyZYZzibK3Zt3sIvA KC0FIXVrNuYUH/dWWNDx0EcmB4o3ewG4hWV9KuCT4jfhy7XzB8xyJEv/V9badxZmOq lnKl0077S+21z0PDbbbooFmMMEvFXOMDRQdxEoULLKN2tATqTBt8VRqbmD5jgrDNAo FDRHmUwsQqwGdmgo2/THpKdYCO+vodImba0X+0TZ3V8DU2sXqAl/qJdNJ7bMNGtFYm /OA3LcM2CsyHwbxBNH6Dlcnnj0LlTbtpl7PyasT214saTBJWtIWyCIknOurJg1s6Ud U0z9wsg36XlTQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 3/5] selftests: mptcp: add mptcp_lib_cleanup helper Date: Mon, 19 Feb 2024 17:29:33 +0800 Message-Id: <476cd38ffa68c114d97b949e248a3fb1d29e58fa.1708334850.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang 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 | 4 ++++ 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, 11 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index 40fc04e8e592..bd6c8def8b5b 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -29,6 +29,7 @@ cleanup() ip netns pids "${ns1}" | xargs --no-run-if-empty kill -SIGKILL &>/dev/null =20 mptcp_lib_ns_exit 1 + mptcp_lib_cleanup } =20 mptcp_lib_check_mptcp diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index 00527f4c3b98..5273650a78f2 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -134,6 +134,7 @@ cleanup() rm -f "$capout" =20 mptcp_lib_ns_exit + mptcp_lib_cleanup } =20 mptcp_lib_check_mptcp diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 7e354ff5d717..ceaaf155cc32 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -166,6 +166,7 @@ cleanup() rm -f "$tmpfile" rm -rf $evts_ns1 $evts_ns2 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 bfc535594675..01b0e43eaa80 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -409,3 +409,7 @@ mptcp_lib_ns_exit() { i=3D$((i + 1)) done } + +mptcp_lib_cleanup() { + echo "cleanup" +} diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index 5d8881d11fb0..f82553c56512 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -74,6 +74,7 @@ cleanup() mptcp_lib_ns_exit 3 rm -f "$cin" "$cout" rm -f "$sin" "$sout" + mptcp_lib_cleanup } =20 mptcp_lib_check_mptcp diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 2ea80f1b0aee..5da9ccafc47e 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -31,6 +31,7 @@ cleanup() { rm -f $err mptcp_lib_ns_exit 1 + mptcp_lib_cleanup } =20 mptcp_lib_check_mptcp diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index a45b6ad41aea..e9820aec7ffa 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -33,6 +33,7 @@ cleanup() rm -f "$capout" =20 mptcp_lib_ns_exit 3 + mptcp_lib_cleanup } =20 mptcp_lib_check_mptcp diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 71caa6b449a8..dab9115738d7 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -119,6 +119,7 @@ cleanup() =20 rm -rf $file $client_evts $server_evts =20 + mptcp_lib_cleanup _printf "Done\n" } =20 --=20 2.40.1 From nobody Tue May 14 03:06:34 2024 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 5E87D23769 for ; Mon, 19 Feb 2024 09:29:55 +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=1708334995; cv=none; b=LJPlj6+Fc9xKny1t1sOvw4IVGjDlUE6UArqOId2VINW8cQESbJQ3hS26Ll5FzZi+rpkYZTdkTT6XBNzqOpbXrMPpXQNeCgKUPze5UULLUjO3YXQX36R2y5gtmfMxb7z8wGhaurRwRHmVrjfuG6+U6pGHrmkpXLb1EIpJo55lId4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708334995; c=relaxed/simple; bh=apje5hz9yQ+sRC9YLz9pz5+ymYo97pW1XfGRazAHmuI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ch0dTvcnK2jDPozg6ubvM/Jffva8Gaj4Ewn6I2+0/B4J1am9AVmX6GteEh0lzN6T3DL20pvbVOLqqopBhsyCml5khCjRtRrsSHnAIy8z7XFPQWFgZLGD1isFSSxp01BEtXy/+YzmzF1FV9xC+irZrB0mxRAeuHZb9vUtjPg8rbI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MU9ddtfZ; 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="MU9ddtfZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CEE23C433F1; Mon, 19 Feb 2024 09:29:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708334994; bh=apje5hz9yQ+sRC9YLz9pz5+ymYo97pW1XfGRazAHmuI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MU9ddtfZ+zzLWikIvCxyBlPWD9yFh5vE88L8a2+ScXZZddP7plmBupDb/n6OcOSWl GhMseO7n1KGqa4qVzHQYsEYCPxi/axgs6FuwBRK6X5iNJd8bMXyCQU8lRKsT4rfWRX lxwsLFN9tAj9wSJnxYbFIzbJMknJ/uIFDBW4P67URDlvbYy7A5YM78OgDxMjb8OW+x 0AZtOodlMZkglrTviZKm1JDJNTVbSSyadrF69Go5ycIOYTGlbsAfZEmQ2B3NNC5wAZ c0jQHbQsPv/mEErSmFEpHUomrm+/Kdj5TU34lez8ksqlh96ICtiyhej/DgKSc6aFLD /6KKVCRT/lGZw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 4/5] selftests: mptcp: add mptcp_lib_check_output helper Date: Mon, 19 Feb 2024 17:29:34 +0800 Message-Id: X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang 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 | 21 +----------- .../testing/selftests/net/mptcp/mptcp_lib.sh | 32 +++++++++++++++++++ .../testing/selftests/net/mptcp/pm_netlink.sh | 24 ++++---------- 3 files changed, 40 insertions(+), 37 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index ceaaf155cc32..f75d22dbb28d 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -21,7 +21,6 @@ cinfail=3D"" cinsent=3D"" tmpfile=3D"" cout=3D"" -check_output_err=3D"" capout=3D"" ksft_skip=3D4 iptables=3D"iptables" @@ -151,7 +150,6 @@ init() { cout=3D$(mktemp) evts_ns1=3D$(mktemp) evts_ns2=3D$(mktemp) - check_output_err=3D$(mktemp) =20 trap cleanup EXIT =20 @@ -165,7 +163,6 @@ cleanup() rm -f "$sin" "$sout" "$cinsent" "$cinfail" rm -f "$tmpfile" rm -rf $evts_ns1 $evts_ns2 - rm -f $check_output_err mptcp_lib_cleanup cleanup_partial } @@ -3345,26 +3342,10 @@ userspace_pm_get_addr() =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$? =20 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_check_output "${1}" "${2}" } =20 userspace_tests() diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 01b0e43eaa80..fd2ed3b5137c 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -410,6 +410,38 @@ mptcp_lib_ns_exit() { done } =20 +check_output_err=3D$(mktemp) + +mptcp_lib_check_output() { + : "${check_output_err:?}" + : "${ret:?}" + + local cmd=3D"$1" + local expected=3D"$2" + local out + local cmd_ret + + out=3D$($cmd 2>"$check_output_err") + cmd_ret=3D$? + + 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" } diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 5da9ccafc47e..eb3440d2620e 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -25,11 +25,9 @@ while getopts "$optstring" option;do done =20 mptcp_lib_ns_init 1 -err=3D$(mktemp) =20 cleanup() { - rm -f $err mptcp_lib_ns_exit 1 mptcp_lib_cleanup } @@ -43,26 +41,18 @@ 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$? =20 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 ]" + # ${*} doesn't work here since there're spaces in some arguments. + mptcp_lib_check_output "${1}" "${2}" + local rc=3D$? + if [ ${rc} -eq 0 ]; then mptcp_lib_result_pass "${msg}" - else - echo -n "[FAIL] " - echo "expected '$expected' got '$out'" + elif [ ${rc} -eq 1 ]; then mptcp_lib_result_fail "${msg} # different output" - ret=3D1 + else + mptcp_lib_result_fail "${msg} # error ${rc}" fi } =20 --=20 2.40.1 From nobody Tue May 14 03:06:34 2024 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 3247022F03 for ; Mon, 19 Feb 2024 09:29:56 +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=1708334997; cv=none; b=bWxLqSPXh0YDma+B1hhLLJUdv5HAtPuRN75F50ERnlWm/9FmCzr3hCKXnhOxQtvEQklunLWSvGtc6Cseeid9sUI8YR/SQTlKR5IwBD7NeBlk8V/VQx0+Nq7OOqvdYlWQQ80mlnc2vbc9PiZndvEUQAqMpAKTy09vjGWz+7lOX/E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708334997; c=relaxed/simple; bh=9zn6pWvxP077i+FuZV1ERxRYKo2MNwdjiwNlrYB001Q=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oMfbm7mN+dGuO6uGu608L9q8Mmy+NoXBqMzIW//eVoe43iCrBCJA68MKnMrDYlYAWbxFRvd5K02f6uK+XzSJCiqIIGz7QnaLJgMnp5ywE03ki4ffOXbOUJ1QoVvjl4BkswrcBYwBoO/fWEaXu5EHZhrWfpWZyH+MGVx/6DUjuPE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BU3pyT14; 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="BU3pyT14" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F3FDC433C7; Mon, 19 Feb 2024 09:29:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708334996; bh=9zn6pWvxP077i+FuZV1ERxRYKo2MNwdjiwNlrYB001Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BU3pyT14o1DqVNNtrNlAX/+fhM9SNmGOlMvhCBwTtD7WPuNz6cd5UAlUBP2bIdeOX 4HG4KuZh8223VgYlO6uh0i+3VFwBzAzySlRM/VhIhePFMkzminGTqpsg/R7hBdmpCI kfVJTIBp+JC28U9vu5l9jxf5AKBv6lo58l1pEu09RQT6Bv3tQ3RbTNXDhsF1zxq87m e3gtJefLWNFzJWXOB+r2owF4V5kG7aqR3iHwAje185X7bHc1ew0XfmD/ffg/g3lbxG CZb8ZiaNg/Mx51Z+VO07cdA+/gYpZt0xY6eB3w9hZdHwH/ULVwAv8ORkTf5VR1ZPij Vies7mWYi2CFg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 5/5] selftests: mptcp: add mptcp_lib_evts_* helpers Date: Mon, 19 Feb 2024 17:29:35 +0800 Message-Id: <1fbd9490d9c18f54b0685eb07da910749e43a0d5.1708334850.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang 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 | 62 +++++++----------- .../testing/selftests/net/mptcp/mptcp_lib.sh | 63 +++++++++++++++++++ .../selftests/net/mptcp/userspace_pm.sh | 31 ++------- 3 files changed, 92 insertions(+), 64 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index f75d22dbb28d..d4798495a17d 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -33,10 +33,6 @@ ip_mptcp=3D0 check_invert=3D0 validate_checksum=3Dfalse 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 @@ -148,8 +144,7 @@ init() { cin=3D$(mktemp) cinsent=3D$(mktemp) cout=3D$(mktemp) - evts_ns1=3D$(mktemp) - evts_ns2=3D$(mktemp) + mptcp_lib_evts_init =20 trap cleanup EXIT =20 @@ -162,7 +157,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 mptcp_lib_cleanup cleanup_partial } @@ -427,12 +422,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() @@ -602,12 +592,6 @@ wait_mpj() done } =20 -kill_events_pids() -{ - mptcp_lib_kill_wait $evts_ns1_pid - mptcp_lib_kill_wait $evts_ns2_pid -} - pm_nl_set_limits() { local ns=3D$1 @@ -2877,9 +2861,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 @@ -3252,10 +3236,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 @@ -3265,11 +3249,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}) @@ -3280,10 +3264,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") @@ -3296,13 +3280,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 local tk da dp sp local cnt =20 - [ "$1" =3D=3D "$ns2" ] && evts=3D$evts_ns2 + [ "$1" =3D=3D "$ns2" ] && evts=3D$client_evts [ -n "$(mptcp_lib_evts_get_info "saddr4" "$evts" $t)" ] && ip=3D4 [ -n "$(mptcp_lib_evts_get_info "saddr6" "$evts" $t)" ] && ip=3D6 tk=3D$(mptcp_lib_evts_get_info token "$evts") @@ -3319,10 +3303,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 @@ -3331,10 +3315,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 @@ -3468,7 +3452,7 @@ userspace_tests() chk_rm_nr 2 2 invert chk_mptcp_info subflows 0 subflows 0 chk_subflows_total 1 1 - kill_events_pids + mptcp_lib_evts_kill mptcp_lib_kill_wait $tests_pid fi =20 @@ -3505,7 +3489,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 mptcp_lib_kill_wait $tests_pid fi =20 @@ -3529,7 +3513,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 mptcp_lib_kill_wait $tests_pid fi =20 @@ -3553,7 +3537,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 mptcp_lib_kill_wait $tests_pid fi =20 @@ -3579,7 +3563,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 mptcp_lib_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 fd2ed3b5137c..67ceefe70059 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -439,6 +439,69 @@ mptcp_lib_check_output() { fi } =20 +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}" +} + mptcp_lib_cleanup() { : "${check_output_err:?}" =20 diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index dab9115738d7..57fb990cefe9 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -30,10 +30,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 @@ -109,15 +105,16 @@ 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 mptcp_lib_ns_exit 2 =20 - rm -rf $file $client_evts $server_evts + rm -rf $file + mptcp_lib_evts_remove =20 mptcp_lib_cleanup _printf "Done\n" @@ -175,24 +172,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.40.1