* [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh
@ 2023-12-21 11:31 Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 01/15] selftests: mptcp: add mptcp_lib_evts_* helpers Geliang Tang
` (15 more replies)
0 siblings, 16 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
v6:
- rebased with:
v3 fixes for CURRESTAB
v5 dump for userspace pm
v5:
- rebased with "userspace pm enhancements" v13
v4:
- rebased with "userspace pm enhancements" v12
v3:
- merge squash-to patch for v2:
Squash to "selftests: mptcp: add mptcp_lib_ns_* helpers"
- add a new patch:
selftests: mptcp: simult flows: define missing vars
- update patches:
selftests: mptcp: export event macros in mptcp_lib
selftests: mptcp: export cin/cout/sin/sout vars
selftests: mptcp: netlink: fix positions of newline
- update some commit subjects and commit logs.
v2:
- add more patches.
Geliang Tang (15):
selftests: mptcp: add mptcp_lib_evts_* helpers
selftests: mptcp: userspace: capitalize test_name
selftests: mptcp: userspace: print colored output
selftests: mptcp: capitalize ok/fail/skip
selftests: mptcp: netlink: drop duplicate var ret
selftests: mptcp: export ret into mptcp_lib
selftests: mptcp: extract mptcp_lib_check_expected
selftests: mptcp: export event macros in mptcp_lib
selftests: mptcp: add mptcp_lib_verify_listener_events
selftests: mptcp: unify namespace names
selftests: mptcp: add mptcp_lib_ns_* helpers
selftests: mptcp: add ss mptcp support checks
selftests: mptcp: add mptcp_lib_check_tools helper
selftests: mptcp: add mptcp_lib_cleanup helper
selftests: mptcp: add mptcp_lib_check_output helper
tools/testing/selftests/net/mptcp/diag.sh | 75 ++---
.../selftests/net/mptcp/mptcp_connect.sh | 31 +-
.../testing/selftests/net/mptcp/mptcp_join.sh | 204 ++++---------
.../testing/selftests/net/mptcp/mptcp_lib.sh | 264 +++++++++++++++++
.../selftests/net/mptcp/mptcp_sockopt.sh | 48 +---
.../testing/selftests/net/mptcp/pm_netlink.sh | 48 +---
.../selftests/net/mptcp/simult_flows.sh | 30 +-
.../selftests/net/mptcp/userspace_pm.sh | 270 ++++++------------
8 files changed, 464 insertions(+), 506 deletions(-)
--
2.35.3
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 01/15] selftests: mptcp: add mptcp_lib_evts_* helpers
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 02/15] selftests: mptcp: userspace: capitalize test_name Geliang Tang
` (14 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: 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 <geliang.tang@linux.dev>
---
.../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/testing/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=0
check_invert=0
validate_checksum=0
init=0
-evts_ns1=""
-evts_ns2=""
-evts_ns1_pid=0
-evts_ns2_pid=0
last_test_failed=0
last_test_skipped=0
last_test_ignored=1
@@ -185,8 +181,7 @@ init() {
cin=$(mktemp)
cinsent=$(mktemp)
cout=$(mktemp)
- evts_ns1=$(mktemp)
- evts_ns2=$(mktemp)
+ mptcp_lib_evts_init
check_output_err=$(mktemp)
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
- :> "$evts_ns1"
- :> "$evts_ns2"
- ip netns exec $ns1 ./pm_nl_ctl events >> "$evts_ns1" 2>&1 &
- evts_ns1_pid=$!
- ip netns exec $ns2 ./pm_nl_ctl events >> "$evts_ns2" 2>&1 &
- evts_ns2_pid=$!
+ mptcp_lib_evts_start "${ns1}" "${ns2}"
}
reset_with_tcp_filter()
@@ -640,12 +630,6 @@ wait_mpj()
done
}
-kill_events_pids()
-{
- mptcp_lib_kill_wait $evts_ns1_pid
- mptcp_lib_kill_wait $evts_ns2_pid
-}
-
kill_tests_wait()
{
#shellcheck disable=SC2046
@@ -2922,9 +2906,9 @@ add_addr_ports_tests()
chk_add_nr 1 1 1
chk_rm_nr 1 1 invert
- verify_listener_events $evts_ns1 $LISTENER_CREATED $AF_INET 10.0.2.1 10100
- 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 10100
+ mptcp_lib_evts_kill
fi
# subflow and signal with port, remove
@@ -3297,10 +3281,10 @@ fail_tests()
# $1: ns ; $2: addr ; $3: id
userspace_pm_add_addr()
{
- local evts=$evts_ns1
+ local evts=$server_evts
local tk
- [ "$1" == "$ns2" ] && evts=$evts_ns2
+ [ "$1" == "$ns2" ] && evts=$client_evts
tk=$(mptcp_lib_evts_get_info token "$evts")
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=$evts_ns1
+ local evts=$server_evts
local tk
local cnt
- [ "$1" == "$ns2" ] && evts=$evts_ns2
+ [ "$1" == "$ns2" ] && evts=$client_evts
tk=$(mptcp_lib_evts_get_info token "$evts")
cnt=$(rm_addr_count ${1})
@@ -3325,10 +3309,10 @@ userspace_pm_rm_addr()
# $1: ns ; $2: addr ; $3: id
userspace_pm_add_sf()
{
- local evts=$evts_ns1
+ local evts=$server_evts
local tk da dp
- [ "$1" == "$ns2" ] && evts=$evts_ns2
+ [ "$1" == "$ns2" ] && evts=$client_evts
tk=$(mptcp_lib_evts_get_info token "$evts")
da=$(mptcp_lib_evts_get_info daddr4 "$evts")
dp=$(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=$evts_ns1
+ local evts=$server_evts
local t=${3:-1}
local ip=4
local tk da dp sp
local cnt
- [ "$1" == "$ns2" ] && evts=$evts_ns2
+ [ "$1" == "$ns2" ] && evts=$client_evts
if mptcp_lib_is_v6 $2; then ip=6; fi
tk=$(mptcp_lib_evts_get_info token "$evts")
da=$(mptcp_lib_evts_get_info "daddr$ip" "$evts" $t)
@@ -3363,10 +3347,10 @@ userspace_pm_rm_sf()
# $1: ns
userspace_pm_dump()
{
- local evts=$evts_ns1
+ local evts=$server_evts
local tk
- [ "$1" == "$ns2" ] && evts=$evts_ns2
+ [ "$1" == "$ns2" ] && evts=$client_evts
tk=$(mptcp_lib_evts_get_info token "$evts")
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=$evts_ns1
+ local evts=$server_evts
local tk
- [ "$1" == "$ns2" ] && evts=$evts_ns2
+ [ "$1" == "$ns2" ] && evts=$client_evts
tk=$(mptcp_lib_evts_get_info token "$evts")
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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=$1
+ local cestab=$2
+ local count
+
+ count=$(mptcp_lib_get_counter ${ns} "MPTcpExtMPCurrEstab")
+ if [ -z "$count" ]; then
+ mptcp_lib_print_warn "[ SKIP ]"
+ elif [ "$count" != "$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=""
+client_evts=""
+server_evts_pid=0
+client_evts_pid=0
+
+# 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=$(mktemp)
+ fi
+ if [ -z "${client_evts}" ]; then
+ client_evts=$(mktemp)
+ fi
+}
+
+# $1 ns1, $2 ns2
+mptcp_lib_evts_start() {
+ : "${server_evts:?}"
+ : "${client_evts:?}"
+ : "${server_evts_pid:?}"
+ : "${client_evts_pid:?}"
+
+ local ns_1="${1}"
+ local ns_2="${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=$!
+
+ 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=$!
+}
+
+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=0
+ client_evts_pid=0
+}
+
+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/testing/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=2
AF_INET6=10
file=""
-server_evts=""
-client_evts=""
-server_evts_pid=0
-client_evts_pid=0
client4_pid=0
server4_pid=0
client6_pid=0
@@ -116,18 +112,19 @@ cleanup()
# 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
local netns
for netns in "$ns1" "$ns2" ;do
ip netns del "$netns"
done
- rm -rf $file $client_evts $server_evts
+ rm -rf $file
+ mptcp_lib_evts_remove
_printf "Done\n"
}
@@ -186,24 +183,8 @@ make_connection()
# Capture netlink events over the two network namespaces running
# the MPTCP client and server
- if [ -z "$client_evts" ]; then
- client_evts=$(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=$!
- if [ -z "$server_evts" ]; then
- server_evts=$(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=$!
+ mptcp_lib_evts_init
+ mptcp_lib_evts_start "${ns1}" "${ns2}"
sleep 0.5
# Run the server
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 02/15] selftests: mptcp: userspace: capitalize test_name
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 01/15] selftests: mptcp: add mptcp_lib_evts_* helpers Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 03/15] selftests: mptcp: userspace: print colored output Geliang Tang
` (13 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
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 <geliang.tang@linux.dev>
---
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/testing/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=$(printf %x "$sec")-$(mktemp -u XXXXXX)
ns1="ns1-$rndh"
ns2="ns2-$rndh"
ret=0
-test_name=""
+TEST_NAME=""
_printf() {
stdbuf -o0 -e0 printf "${@}"
@@ -69,9 +69,9 @@ print_title()
# $1: test name
print_test()
{
- test_name="${1}"
+ TEST_NAME="${1}"
- _printf "%-63s" "${test_name}"
+ _printf "%-63s" "${TEST_NAME}"
}
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}"
}
test_skip()
{
print_results "SKIP"
- mptcp_lib_result_skip "${test_name}"
+ mptcp_lib_result_skip "${TEST_NAME}"
}
# $1: msg
@@ -101,7 +101,7 @@ test_fail()
_printf "\t%s\n" "${1}"
fi
- mptcp_lib_result_fail "${test_name}"
+ mptcp_lib_result_fail "${TEST_NAME}"
}
# This function is used in the cleanup trap
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 03/15] selftests: mptcp: userspace: print colored output
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 01/15] selftests: mptcp: add mptcp_lib_evts_* helpers Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 02/15] selftests: mptcp: userspace: capitalize test_name Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 04/15] selftests: mptcp: capitalize ok/fail/skip Geliang Tang
` (12 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang, Matthieu Baerts
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 <matttbe@kernel.org>
Signed-off-by: Geliang Tang <geliang.tang@linux.dev>
---
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/testing/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() {
print_title()
{
- _printf "INFO: %s\n" "${1}"
+ mptcp_lib_print_info "INFO: ${1}"
}
# $1: test name
@@ -74,27 +74,22 @@ print_test()
_printf "%-63s" "${TEST_NAME}"
}
-print_results()
-{
- _printf "[%s]\n" "${1}"
-}
-
test_pass()
{
- print_results " OK "
+ mptcp_lib_print_ok "[ OK ]${1:+ ${*}}"
mptcp_lib_result_pass "${TEST_NAME}"
}
test_skip()
{
- print_results "SKIP"
+ mptcp_lib_print_warn "[ SKIP ]${1:+ ${*}}"
mptcp_lib_result_skip "${TEST_NAME}"
}
# $1: msg
test_fail()
{
- print_results "FAIL"
+ mptcp_lib_print_err "[ FAIL ]${1:+ ${*}}"
ret=1
if [ -n "${1}" ]; then
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 04/15] selftests: mptcp: capitalize ok/fail/skip
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (2 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 03/15] selftests: mptcp: userspace: print colored output Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 05/15] selftests: mptcp: netlink: drop duplicate var ret Geliang Tang
` (11 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
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 <geliang.tang@linux.dev>
---
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/selftests/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 != $expected ]; then
if [ $nr = "$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=$test_cnt
fi
else
- echo "[ ok ]"
+ echo "[ OK ]"
mptcp_lib_result_pass "${msg}"
fi
test_cnt=$((test_cnt+1))
@@ -113,15 +113,15 @@ wait_msk_nr()
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=$test_cnt
elif [ $nr != $expected ]; then
- echo "[ fail ] expected $expected found $nr"
+ echo "[ FAIL ] expected $expected found $nr"
mptcp_lib_result_fail "${msg} # unexpected result"
ret=$test_cnt
else
- echo "[ ok ]"
+ echo "[ OK ]"
mptcp_lib_result_pass "${msg}"
fi
test_cnt=$((test_cnt+1))
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/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()
print_ok()
{
- mptcp_lib_print_ok "[ ok ]${1:+ ${*}}"
+ mptcp_lib_print_ok "[ OK ]${1:+ ${*}}"
}
print_fail()
{
- mptcp_lib_print_err "[fail]${1:+ ${*}}"
+ mptcp_lib_print_err "[ FAIL ]${1:+ ${*}}"
}
print_skip()
{
- mptcp_lib_print_warn "[skip]${1:+ ${*}}"
+ mptcp_lib_print_warn "[ SKIP ]${1:+ ${*}}"
}
# [ $1: fail msg ]
diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/testing/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
- 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 = :$port"
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 05/15] selftests: mptcp: netlink: drop duplicate var ret
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (3 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 04/15] selftests: mptcp: capitalize ok/fail/skip Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 06/15] selftests: mptcp: export ret into mptcp_lib Geliang Tang
` (10 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
The variable 'ret' are defined twice in pm_netlink.sh. This patch drops
this duplicate one.
Signed-off-by: Geliang Tang <geliang.tang@linux.dev>
---
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/testing/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=$(date +%s)
rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
ns1="ns1-$rndh"
err=$(mktemp)
-ret=0
cleanup()
{
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 06/15] selftests: mptcp: export ret into mptcp_lib
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (4 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 05/15] selftests: mptcp: netlink: drop duplicate var ret Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 07/15] selftests: mptcp: extract mptcp_lib_check_expected Geliang Tang
` (9 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
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 <geliang.tang@linux.dev>
---
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/selftests/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=4
test_cnt=1
timeout_poll=100
timeout_test=$((timeout_poll * 2 + 1))
-ret=0
flush_pids()
{
diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/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=$(date +%s)
optstring="S:R:d:e:l:r:h4cm:f:tC"
-ret=0
final_ret=0
sin=""
sout=""
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/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 @@
. "$(dirname "${0}")/mptcp_lib.sh"
-ret=0
sin=""
sinfail=""
sout=""
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=4
# shellcheck disable=SC2155 # declare and assign separately
readonly KSFT_TEST=$(basename "${0}" | sed 's/\.sh$//g')
+ret=0
+
MPTCP_LIB_SUBTESTS=()
# 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/testing/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 @@
. "$(dirname "${0}")/mptcp_lib.sh"
-ret=0
sin=""
sout=""
cin=""
diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testing/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"
ksft_skip=4
-ret=0
usage() {
echo "Usage: $0 [ -h ]"
diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/testing/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=4
timeout_poll=30
timeout_test=$((timeout_poll * 2 + 1))
test_cnt=1
-ret=0
bail=0
slack=50
diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/testing/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=$(date +%s)
rndh=$(printf %x "$sec")-$(mktemp -u XXXXXX)
ns1="ns1-$rndh"
ns2="ns2-$rndh"
-ret=0
TEST_NAME=""
_printf() {
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 07/15] selftests: mptcp: extract mptcp_lib_check_expected
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (5 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 06/15] selftests: mptcp: export ret into mptcp_lib Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 08/15] selftests: mptcp: export event macros in mptcp_lib Geliang Tang
` (8 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
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 <geliang.tang@linux.dev>
---
.../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() {
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="${1}"
+ local exp="e_${var}"
+ local prev_ret="${2}"
+
+ if [ "${!var}" = "${!exp}" ]
+ then
+ return 0
+ fi
+
+ if [ "${prev_ret}" = "0" ]
+ then
+ ret=${KSFT_FAIL}
+ fi
+
+ printf "\tExpected value for '%s': '%s', got '%s'.\n" \
+ "${var}" "${!exp}" "${!var}"
+ return 1
+ }
+
+ local rc=0
+ local var
+
+ for var in "${@}"
+ do
+ check_expected_one "${var}" "${rc}" || rc=1
+ 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/testing/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
}
-# $1: var name ; $2: prev ret
-check_expected_one()
-{
- local var="${1}"
- local exp="e_${var}"
- local prev_ret="${2}"
-
- if [ "${!var}" = "${!exp}" ]
- then
- return 0
- fi
-
- if [ "${prev_ret}" = "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=0
- local var
-
- for var in "${@}"
- do
- check_expected_one "${var}" "${rc}" || rc=1
- 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
}
verify_announce_event()
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 08/15] selftests: mptcp: export event macros in mptcp_lib
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (6 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 07/15] selftests: mptcp: extract mptcp_lib_check_expected Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 09/15] selftests: mptcp: add mptcp_lib_verify_listener_events Geliang Tang
` (7 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
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 <geliang.tang@linux.dev>
---
.../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/testing/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
}
-SUB_ESTABLISHED=10 # MPTCP_EVENT_SUB_ESTABLISHED
-LISTENER_CREATED=15 #MPTCP_EVENT_LISTENER_CREATED
-LISTENER_CLOSED=16 #MPTCP_EVENT_LISTENER_CLOSED
-
-AF_INET=2
-AF_INET6=10
-
verify_listener_events()
{
local evt=$1
@@ -2836,9 +2829,9 @@ verify_listener_events()
local sport
local name
- if [ $e_type = $LISTENER_CREATED ]; then
+ if [ $e_type = $MPTCP_LIB_LISTENER_CREATED ]; then
name="LISTENER_CREATED"
- elif [ $e_type = $LISTENER_CLOSED ]; then
+ elif [ $e_type = $MPTCP_LIB_LISTENER_CLOSED ]; then
name="LISTENER_CLOSED "
else
name="$e_type"
@@ -2905,8 +2898,10 @@ add_addr_ports_tests()
chk_add_nr 1 1 1
chk_rm_nr 1 1 invert
- 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 10100
+ 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
@@ -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=$(basename "${0}" | sed 's/\.sh$//g')
ret=0
+MPTCP_LIB_ANNOUNCED=6 # MPTCP_EVENT_ANNOUNCED
+MPTCP_LIB_REMOVED=7 # MPTCP_EVENT_REMOVED
+MPTCP_LIB_SUB_ESTABLISHED=10 # MPTCP_EVENT_SUB_ESTABLISHED
+MPTCP_LIB_SUB_CLOSED=11 # MPTCP_EVENT_SUB_CLOSED
+MPTCP_LIB_LISTENER_CREATED=15 #MPTCP_EVENT_LISTENER_CREATED
+MPTCP_LIB_LISTENER_CLOSED=16 #MPTCP_EVENT_LISTENER_CLOSED
+
+readonly AF_INET=2
+readonly AF_INET6=10
+
MPTCP_LIB_SUBTESTS=()
# 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/testing/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
-ANNOUNCED=6 # MPTCP_EVENT_ANNOUNCED
-REMOVED=7 # MPTCP_EVENT_REMOVED
-SUB_ESTABLISHED=10 # MPTCP_EVENT_SUB_ESTABLISHED
-SUB_CLOSED=11 # MPTCP_EVENT_SUB_CLOSED
-LISTENER_CREATED=15 #MPTCP_EVENT_LISTENER_CREATED
-LISTENER_CLOSED=16 #MPTCP_EVENT_LISTENER_CLOSED
-
-AF_INET=2
-AF_INET6=10
-
file=""
client4_pid=0
server4_pid=0
@@ -305,8 +295,8 @@ test_announce()
ns2eth1
print_test "ADD_ADDR id:${client_addr_id} 10.0.2.2 (ns2) => 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"
# 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) => 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_token" \
+ "dead:beef:2::2" "$client_addr_id" "$client6_port" "v6"
# 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) => ns1, new port"
sleep 0.5
- verify_announce_event "$server_evts" "$ANNOUNCED" "$server4_token" "10.0.2.2"\
+ verify_announce_event "$server_evts" "$MPTCP_LIB_ANNOUNCED" "$server4_token" "10.0.2.2"\
"$client_addr_id" "$new4_port"
# 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) => 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_token" "10.0.2.1"\
"$server_addr_id" "$app4_port"
# 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) => 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_token" \
+ "dead:beef:2::1" "$server_addr_id" "$app6_port" "v6"
# 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) => ns2, new 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_token" "10.0.2.1"\
"$server_addr_id" "$new4_port"
}
@@ -415,7 +405,7 @@ test_remove()
$client_addr_id
print_test "RM_ADDR id:${client_addr_id} ns2 => ns1"
sleep 0.5
- verify_remove_event "$server_evts" "$REMOVED" "$server4_token" "$client_addr_id"
+ verify_remove_event "$server_evts" "$MPTCP_LIB_REMOVED" "$server4_token" "$client_addr_id"
# 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 => ns1"
sleep 0.5
- verify_remove_event "$server_evts" "$REMOVED" "$server4_token" "$client_addr_id"
+ verify_remove_event "$server_evts" "$MPTCP_LIB_REMOVED" "$server4_token" "$client_addr_id"
# 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 => ns1"
sleep 0.5
- verify_remove_event "$server_evts" "$REMOVED" "$server6_token" "$client_addr_id"
+ verify_remove_event "$server_evts" "$MPTCP_LIB_REMOVED" "$server6_token" "$client_addr_id"
# 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 => ns2"
sleep 0.5
- verify_remove_event "$client_evts" "$REMOVED" "$client4_token" "$server_addr_id"
+ verify_remove_event "$client_evts" "$MPTCP_LIB_REMOVED" "$client4_token" "$server_addr_id"
# 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 => ns2"
sleep 0.5
- verify_remove_event "$client_evts" "$REMOVED" "$client4_token" "$server_addr_id"
+ verify_remove_event "$client_evts" "$MPTCP_LIB_REMOVED" "$client4_token" "$server_addr_id"
# 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 => ns2"
sleep 0.5
- verify_remove_event "$client_evts" "$REMOVED" "$client6_token" "$server_addr_id"
+ verify_remove_event "$client_evts" "$MPTCP_LIB_REMOVED" "$client6_token" "$server_addr_id"
}
verify_subflow_events()
@@ -488,7 +478,7 @@ verify_subflow_events()
info="${e_saddr} (${e_from}) => ${e_daddr} (${e_to})"
- if [ "$e_type" = "$SUB_ESTABLISHED" ]
+ if [ "$e_type" = "$MPTCP_LIB_SUB_ESTABLISHED" ]
then
if [ "$e_family" = "$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_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_ESTABLISHED $server4_token \
+ $AF_INET "10.0.2.1" "10.0.2.2" "$client4_port" "23" \
+ "$client_addr_id" "ns1" "ns2"
# Delete the listener from the client ns, if one was created
mptcp_lib_kill_wait $listener_pid
local sport
- sport=$(mptcp_lib_evts_get_info sport "$server_evts" $SUB_ESTABLISHED)
+ sport=$(mptcp_lib_evts_get_info sport "$server_evts" $MPTCP_LIB_SUB_ESTABLISHED)
# 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_token" \
+ "$AF_INET" "10.0.2.1" "10.0.2.2" "$client4_port" "23" \
+ "$client_addr_id" "ns1" "ns2"
# 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" "$server6_token" \
+ "$AF_INET6" "dead:beef:2::1" "dead:beef:2::2" "$client6_port" \
+ "23" "$client_addr_id" "ns1" "ns2"
# Delete the listener from the client ns, if one was created
mptcp_lib_kill_wait $listener_pid
- sport=$(mptcp_lib_evts_get_info sport "$server_evts" $SUB_ESTABLISHED)
+ sport=$(mptcp_lib_evts_get_info sport "$server_evts" $MPTCP_LIB_SUB_ESTABLISHED)
# DESTROY_SUBFLOW6 from server to client machine
:>"$server_evts"
ip netns exec "$ns1" ./pm_nl_ctl dsf lip dead:beef:2::1 lport "$sport" rip\
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_token" "$AF_INET6"\
"dead:beef:2::1" "dead:beef:2::2" "$client6_port" "23"\
"$client_addr_id" "ns1" "ns2"
@@ -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 rport\
$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" "$server4_token" \
+ "$AF_INET" "10.0.2.1" "10.0.2.2" "$new4_port" "23" \
"$client_addr_id" "ns1" "ns2"
# Delete the listener from the client ns, if one was created
mptcp_lib_kill_wait $listener_pid
- sport=$(mptcp_lib_evts_get_info sport "$server_evts" $SUB_ESTABLISHED)
+ sport=$(mptcp_lib_evts_get_info sport "$server_evts" $MPTCP_LIB_SUB_ESTABLISHED)
# 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_token" \
+ "$AF_INET" "10.0.2.1" "10.0.2.2" "$new4_port" "23" \
+ "$client_addr_id" "ns1" "ns2"
# 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 rport\
$app4_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" "$app4_port" "23" "$server_addr_id" "ns2" "ns1"
+ verify_subflow_events $client_evts $MPTCP_LIB_SUB_ESTABLISHED $client4_token $AF_INET \
+ "10.0.2.2" "10.0.2.1" "$app4_port" "23" "$server_addr_id" "ns2" "ns1"
# Delete the listener from the server ns, if one was created
mptcp_lib_kill_wait $listener_pid
- sport=$(mptcp_lib_evts_get_info sport "$client_evts" $SUB_ESTABLISHED)
+ sport=$(mptcp_lib_evts_get_info sport "$client_evts" $MPTCP_LIB_SUB_ESTABLISHED)
# 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_token" \
+ "$AF_INET" "10.0.2.2" "10.0.2.1" "$app4_port" "23" \
+ "$server_addr_id" "ns2" "ns1"
# 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" "$client6_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
- sport=$(mptcp_lib_evts_get_info sport "$client_evts" $SUB_ESTABLISHED)
+ sport=$(mptcp_lib_evts_get_info sport "$client_evts" $MPTCP_LIB_SUB_ESTABLISHED)
# DESTROY_SUBFLOW6 from client to server machine
:>"$client_evts"
ip netns exec "$ns2" ./pm_nl_ctl dsf lip dead:beef:2::2 lport "$sport" rip\
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"
# 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 rport\
$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" "$client4_token" \
+ "$AF_INET" "10.0.2.2" "10.0.2.1" "$new4_port" "23" \
+ "$server_addr_id" "ns2" "ns1"
# Delete the listener from the server ns, if one was created
mptcp_lib_kill_wait $listener_pid
- sport=$(mptcp_lib_evts_get_info sport "$client_evts" $SUB_ESTABLISHED)
+ sport=$(mptcp_lib_evts_get_info sport "$client_evts" $MPTCP_LIB_SUB_ESTABLISHED)
# 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_token" \
+ "$AF_INET" "10.0.2.2" "10.0.2.1" "$new4_port" "23" \
+ "$server_addr_id" "ns2" "ns1"
# 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) => 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_token" "10.0.2.1"\
"$server_addr_id" "$app6_port"
# 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 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" "$client6_token"\
"$AF_INET" "10.0.2.2" "10.0.2.1" "$app6_port" "23"\
"$server_addr_id" "ns2" "ns1"
# Delete the listener from the server ns, if one was created
mptcp_lib_kill_wait $listener_pid
- sport=$(mptcp_lib_evts_get_info sport "$client_evts" $SUB_ESTABLISHED)
+ sport=$(mptcp_lib_evts_get_info sport "$client_evts" $MPTCP_LIB_SUB_ESTABLISHED)
# 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_token" \
"$AF_INET" "10.0.2.2" "10.0.2.1" "$app6_port" "23"\
"$server_addr_id" "ns2" "ns1"
@@ -888,7 +885,8 @@ test_listener()
local listener_pid=$!
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
# 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
sleep 0.5
- verify_listener_events $client_evts $LISTENER_CLOSED $AF_INET 10.0.2.2 $client4_port
+ verify_listener_events $client_evts $MPTCP_LIB_LISTENER_CLOSED \
+ $AF_INET 10.0.2.2 $client4_port
}
print_title "Make connections"
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 09/15] selftests: mptcp: add mptcp_lib_verify_listener_events
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (7 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 08/15] selftests: mptcp: export event macros in mptcp_lib Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 10/15] selftests: mptcp: unify namespace names Geliang Tang
` (6 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
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 <geliang.tang@linux.dev>
---
.../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/testing/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()
verify_listener_events()
{
- local evt=$1
local e_type=$2
local e_family=$3
local e_saddr=$4
local e_sport=$5
- local type
- local family
- local saddr
- local sport
local name
if [ $e_type = $MPTCP_LIB_LISTENER_CREATED ]; then
@@ -2844,23 +2839,8 @@ verify_listener_events()
return
fi
- type=$(mptcp_lib_evts_get_info type "$evt" "$e_type")
- family=$(mptcp_lib_evts_get_info family "$evt" "$e_type")
- sport=$(mptcp_lib_evts_get_info sport "$evt" "$e_type")
- if [ $family ] && [ $family = $AF_INET6 ]; then
- saddr=$(mptcp_lib_evts_get_info saddr6 "$evt" "$e_type")
- else
- saddr=$(mptcp_lib_evts_get_info saddr4 "$evt" "$e_type")
- fi
-
- if [ $type ] && [ $type = $e_type ] &&
- [ $family ] && [ $family = $e_family ] &&
- [ $saddr ] && [ $saddr = $e_saddr ] &&
- [ $sport ] && [ $sport = $e_sport ]; then
- print_ok
- return 0
- fi
- fail_test "$e_type:$type $e_family:$family $e_saddr:$saddr $e_sport:$sport"
+ mptcp_lib_verify_listener_events ${*}
+ [ $? -eq 1 ] && fail_test "$e_type $e_family $e_saddr $e_sport"
}
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() {
return 1
}
+
+mptcp_lib_verify_listener_events() {
+ local evt=$1
+ local e_type=$2
+ local e_family=$3
+ local e_saddr=$4
+ local e_sport=$5
+ local type
+ local family
+ local saddr
+ local sport
+
+ type=$(mptcp_lib_evts_get_info type "$evt" "$e_type")
+ family=$(mptcp_lib_evts_get_info family "$evt" "$e_type")
+ if [ $family ] && [ $family = $AF_INET6 ]; then
+ saddr=$(mptcp_lib_evts_get_info saddr6 "$evt" "$e_type")
+ else
+ saddr=$(mptcp_lib_evts_get_info saddr4 "$evt" "$e_type")
+ fi
+ sport=$(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/testing/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()
verify_listener_events()
{
- local evt=$1
- local e_type=$2
- local e_family=$3
- local e_saddr=$4
- local e_sport=$5
- local type
- local family
- local saddr
- local sport
-
- if [ $e_type = $LISTENER_CREATED ]; then
- print_test "CREATE_LISTENER $e_saddr:$e_sport"
- elif [ $e_type = $LISTENER_CLOSED ]; then
- print_test "CLOSE_LISTENER $e_saddr:$e_sport"
- fi
-
- type=$(mptcp_lib_evts_get_info type $evt $e_type)
- family=$(mptcp_lib_evts_get_info family $evt $e_type)
- sport=$(mptcp_lib_evts_get_info sport $evt $e_type)
- if [ $family ] && [ $family = $AF_INET6 ]; then
- saddr=$(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=$(mptcp_lib_evts_get_info saddr4 $evt $e_type)
+ test_fail
fi
-
- check_expected "type" "family" "saddr" "sport"
}
test_listener()
@@ -879,6 +859,7 @@ test_listener()
# Capture events on the network namespace running the client
:>$client_evts
+ print_test "Listener event LISTENER_CREATED 10.0.2.2:$client4_port"
# Attempt to add a listener at 10.0.2.2:<subflow-port>
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
+ 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
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 10/15] selftests: mptcp: unify namespace names
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (8 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 09/15] selftests: mptcp: add mptcp_lib_verify_listener_events Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 11/15] selftests: mptcp: add mptcp_lib_ns_* helpers Geliang Tang
` (5 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: 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 <geliang.tang@linux.dev>
---
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/selftests/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 @@
sec=$(date +%s)
rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-ns="ns1-$rndh"
+ns1="ns1-$rndh"
ksft_skip=4
test_cnt=1
timeout_poll=100
@@ -17,19 +17,19 @@ flush_pids()
# give it some time
sleep 1.1
- 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
for _ in $(seq 10); do
- [ -z "$(ip netns pids "${ns}")" ] && break
+ [ -z "$(ip netns pids "${ns1}")" ] && break
sleep 0.1
done
}
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
- ip netns del $ns
+ ip netns del $ns1
}
mptcp_lib_check_mptcp
@@ -47,7 +47,7 @@ fi
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}'
}
__chk_nr()
@@ -82,7 +82,7 @@ __chk_msk_nr()
local condition=$1
shift 1
- __chk_nr "ss -inmHMN $ns | $condition" "$@"
+ __chk_nr "ss -inmHMN $ns1 | $condition" "$@"
}
chk_msk_nr()
@@ -103,7 +103,7 @@ wait_msk_nr()
msg=$*
while [ $i -lt $timeout ]; do
- nr=$(ss -inmHMN $ns | $condition)
+ nr=$(ss -inmHMN $ns1 | $condition)
[ $nr == $expected ] && break;
[ $nr -gt $max ] && max=$nr
i=$((i + 1))
@@ -142,7 +142,7 @@ __chk_listen()
local expected=$2
local msg="$3"
- __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
}
chk_msk_listen()
@@ -168,7 +168,7 @@ chk_msk_inuse()
local msg="$2"
local listen_nr
- listen_nr=$(ss -N "${ns}" -Ml | grep -c LISTEN)
+ listen_nr=$(ss -N "${ns1}" -Ml | grep -c LISTEN)
expected=$((expected + listen_nr))
for _ in $(seq 10); do
@@ -186,7 +186,7 @@ chk_msk_cestab()
{
local cestab=$1
- __chk_nr "mptcp_lib_get_counter ${ns} MPTcpExtMPCurrEstab" \
+ __chk_nr "mptcp_lib_get_counter ${ns1} MPTcpExtMPCurrEstab" \
"${cestab}" "....chk ${cestab} cestab" ""
}
@@ -205,24 +205,24 @@ wait_connected()
}
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
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
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
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=100
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))
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/testing/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=$(date +%s)
rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
ns1="ns1-$rndh"
ns2="ns2-$rndh"
-ns_sbox="ns_sbox-$rndh"
+ns3="ns3-$rndh"
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=1
@@ -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
- ip netns exec "$ns_sbox" ./mptcp_sockopt
+ ip netns exec "$ns3" ./mptcp_sockopt
lret=$?
if [ $lret -ne 0 ]; then
@@ -250,7 +250,7 @@ do_mptcp_sockopt_tests()
fi
mptcp_lib_result_pass "sockopt v4"
- ip netns exec "$ns_sbox" ./mptcp_sockopt -6
+ ip netns exec "$ns3" ./mptcp_sockopt -6
lret=$?
if [ $lret -ne 0 ]; then
@@ -281,7 +281,7 @@ run_tests()
do_tcpinq_test()
{
- ip netns exec "$ns_sbox" ./mptcp_inq "$@"
+ ip netns exec "$ns3" ./mptcp_inq "$@"
local lret=$?
if [ $lret -ne 0 ];then
ret=$lret
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 11/15] selftests: mptcp: add mptcp_lib_ns_* helpers
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (9 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 10/15] selftests: mptcp: unify namespace names Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 12/15] selftests: mptcp: add ss mptcp support checks Geliang Tang
` (4 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: 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 <geliang.tang@linux.dev>
---
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/selftests/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 @@
. "$(dirname "${0}")/mptcp_lib.sh"
-sec=$(date +%s)
-rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-ns1="ns1-$rndh"
+mptcp_lib_ns_init
ksft_skip=4
test_cnt=1
timeout_poll=100
@@ -29,7 +27,7 @@ cleanup()
{
ip netns pids "${ns1}" | xargs --no-run-if-empty kill -SIGKILL &>/dev/null
- ip netns del $ns1
+ mptcp_lib_ns_exit
}
mptcp_lib_check_mptcp
@@ -205,8 +203,6 @@ wait_connected()
}
trap cleanup EXIT
-ip netns add $ns1
-ip -n $ns1 link set dev lo up
echo "a" | \
timeout ${timeout_test} \
diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/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
-sec=$(date +%s)
-rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-ns1="ns1-$rndh"
-ns2="ns2-$rndh"
-ns3="ns3-$rndh"
-ns4="ns4-$rndh"
+mptcp_lib_ns_init
TEST_COUNT=0
TEST_GROUP=""
@@ -137,11 +132,7 @@ cleanup()
rm -f "$sin" "$sout"
rm -f "$capout"
- 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
}
mptcp_lib_check_mptcp
@@ -162,11 +153,6 @@ cin_disconnect="$cin".disconnect
cout_disconnect="$cout".disconnect
trap cleanup EXIT
-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
check_mptcp_disabled()
{
+ : "${rndh:?}"
+
local disabled_ns="ns_disabled-$rndh"
ip netns add ${disabled_ns} || exit $ksft_skip
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/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=""
cout=""
check_output_err=""
capout=""
-ns1=""
-ns2=""
ksft_skip=4
iptables="iptables"
ip6tables="ip6tables"
@@ -81,21 +79,12 @@ init_partial()
{
capout=$(mktemp)
- local sec rndh
- sec=$(date +%s)
- rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-
- ns1="ns1-$rndh"
- ns2="ns2-$rndh"
+ mptcp_lib_ns_init
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=1
ip netns exec $netns sysctl -q net.mptcp.pm_type=0 2>/dev/null || true
- ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=0
- ip netns exec $netns sysctl -q net.ipv4.conf.default.rp_filter=0
if [ $checksum -eq 1 ]; then
ip netns exec $netns sysctl -q net.mptcp.checksum_enabled=1
fi
@@ -140,11 +129,7 @@ cleanup_partial()
{
rm -f "$capout"
- local netns
- for netns in "$ns1" "$ns2"; do
- ip netns del $netns
- rm -f /tmp/$netns.{nstat,out}
- done
+ mptcp_lib_ns_exit
}
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
}
-# $1: ns, $2: cestab nr
-mptcp_lib_chk_cestab_nr() {
- local ns=$1
- local cestab=$2
- local count
-
- count=$(mptcp_lib_get_counter ${ns} "MPTcpExtMPCurrEstab")
- if [ -z "$count" ]; then
- mptcp_lib_print_warn "[ SKIP ]"
- elif [ "$count" != "$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=""
client_evts=""
server_evts_pid=0
@@ -457,3 +439,49 @@ mptcp_lib_verify_listener_events() {
mptcp_lib_check_expected "type" "family" "saddr" "sport"
}
+
+rndh=""
+ns1=""
+ns2=""
+ns3=""
+ns4=""
+
+mptcp_lib_ns_init() {
+ : "${rndh?}"
+ : "${ns1?}"
+ : "${ns2?}"
+ : "${ns3?}"
+ : "${ns4?}"
+
+ local sec
+
+ sec=$(date +%s)
+ rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
+
+ ns1="ns1-$rndh"
+ ns2="ns2-$rndh"
+ ns3="ns3-$rndh"
+ ns4="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=0
+ ip netns exec $netns sysctl -q net.ipv4.conf.default.rp_filter=0
+ 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/testing/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=$((timeout_poll * 2 + 1))
iptables="iptables"
ip6tables="ip6tables"
-sec=$(date +%s)
-rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-ns1="ns1-$rndh"
-ns2="ns2-$rndh"
-ns3="ns3-$rndh"
+mptcp_lib_ns_init
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=1
- ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=0
- ip netns exec $netns sysctl -q net.ipv4.conf.default.rp_filter=0
done
local i
@@ -78,10 +70,7 @@ init()
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/testing/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
-sec=$(date +%s)
-rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-ns1="ns1-$rndh"
+mptcp_lib_ns_init
err=$(mktemp)
cleanup()
{
rm -f $err
- ip netns del $ns1
+ mptcp_lib_ns_exit
}
mptcp_lib_check_mptcp
@@ -44,8 +42,6 @@ fi
trap cleanup EXIT
-ip netns add $ns1 || exit $ksft_skip
-ip -net $ns1 link set lo up
ip netns exec $ns1 sysctl -q net.mptcp.enabled=1
check()
diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/testing/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 @@
. "$(dirname "${0}")/mptcp_lib.sh"
-sec=$(date +%s)
-rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
-ns1="ns1-$rndh"
-ns2="ns2-$rndh"
-ns3="ns3-$rndh"
+mptcp_lib_ns_init
capture=false
ksft_skip=4
timeout_poll=30
@@ -29,10 +25,7 @@ cleanup()
rm -f "$large" "$small"
rm -f "$capout"
- local netns
- for netns in "$ns1" "$ns2" "$ns3";do
- ip netns del $netns
- done
+ mptcp_lib_ns_exit
}
mptcp_lib_check_mptcp
@@ -63,13 +56,6 @@ setup()
trap cleanup EXIT
- 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=0
- ip netns exec $i sysctl -q net.ipv4.conf.default.rp_filter=0
- 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/testing/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=50004
client_addr_id=${RANDOM:0:2}
server_addr_id=${RANDOM:0:2}
-sec=$(date +%s)
-rndh=$(printf %x "$sec")-$(mktemp -u XXXXXX)
-ns1="ns1-$rndh"
-ns2="ns2-$rndh"
+mptcp_lib_ns_init
TEST_NAME=""
_printf() {
@@ -102,10 +99,7 @@ cleanup()
done
mptcp_lib_evts_kill
- local netns
- for netns in "$ns1" "$ns2" ;do
- ip netns del "$netns"
- done
+ mptcp_lib_ns_exit
rm -rf $file
mptcp_lib_evts_remove
@@ -117,8 +111,6 @@ trap cleanup EXIT
# 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=1
ip netns exec "$i" sysctl -q net.mptcp.pm_type=1
done
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 12/15] selftests: mptcp: add ss mptcp support checks
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (10 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 11/15] selftests: mptcp: add mptcp_lib_ns_* helpers Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 13/15] selftests: mptcp: add mptcp_lib_check_tools helper Geliang Tang
` (3 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
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 <geliang.tang@linux.dev>
---
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/testing/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
+ss -h | grep -q MPTCP
+if [ $? -ne 0 ];then
+ echo "SKIP: ss tool does not support MPTCP"
+ exit $ksft_skip
+fi
+
sin=$(mktemp)
sout=$(mktemp)
cin=$(mktemp)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/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
+ 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="iptables-legacy"
diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/testing/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
+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="iptables-legacy"
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 13/15] selftests: mptcp: add mptcp_lib_check_tools helper
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (11 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 12/15] selftests: mptcp: add ss mptcp support checks Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 14/15] selftests: mptcp: add mptcp_lib_cleanup helper Geliang Tang
` (2 subsequent siblings)
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: Geliang Tang
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 <geliang.tang@linux.dev>
---
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/selftests/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
}
-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"
get_msk_inuse()
{
diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/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
}
-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"
sin=$(mktemp)
sout=$(mktemp)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/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=""
check_output_err=""
capout=""
ksft_skip=4
-iptables="iptables"
-ip6tables="ip6tables"
timeout_poll=30
timeout_test=$((timeout_poll * 2 + 1))
capture=0
@@ -132,39 +130,10 @@ cleanup_partial()
mptcp_lib_ns_exit
}
-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="iptables-legacy"
- ip6tables="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=1
- check_tools
+ mptcp_lib_check_tools "ip" "ss" "iptables"
sin=$(mktemp)
sout=$(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="iptables"
+ip6tables="ip6tables"
+
+mptcp_lib_check_tools() {
+ : "${iptables:?}"
+ : "${ip6tables:?}"
+
+ mptcp_lib_check_mptcp
+ mptcp_lib_check_kallsyms
+
+ if [ "${1:-""}" == "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:-""}" == "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:-""}" == "iptables" ]; then
+ # Use the legacy version if available to support old kernel versions
+ if iptables-legacy -V &> /dev/null; then
+ iptables="iptables-legacy"
+ ip6tables="ip6tables-legacy"
+ elif ! iptables -V &> /dev/null; then
+ mptcp_lib_print_warn "SKIP: Could not run all tests without iptables tool"
+ exit $ksft_skip
+ elif ! ip6tables -V &> /dev/null; then
+ mptcp_lib_print_warn "SKIP: Could not run all tests without ip6tables tool"
+ exit $ksft_skip
+ fi
+ fi
+}
diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/testing/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=""
ksft_skip=4
timeout_poll=30
timeout_test=$((timeout_poll * 2 + 1))
-iptables="iptables"
-ip6tables="ip6tables"
mptcp_lib_ns_init
@@ -75,32 +73,7 @@ cleanup()
rm -f "$sin" "$sout"
}
-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="iptables-legacy"
- ip6tables="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"
check_mark()
{
diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testing/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
}
-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"
trap cleanup EXIT
diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/testing/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
}
-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"
# "$ns1" ns2 ns3
# ns1eth1 ns2eth1 ns2eth3 ns3eth1
diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/testing/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 @@
. "$(dirname "${0}")/mptcp_lib.sh"
-mptcp_lib_check_mptcp
-mptcp_lib_check_kallsyms
+mptcp_lib_check_tools "ip"
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
-if ! ip -Version &> /dev/null; then
- echo "SKIP: Cannot not run test without ip tool"
- exit ${KSFT_SKIP}
-fi
-
file=""
client4_pid=0
server4_pid=0
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 14/15] selftests: mptcp: add mptcp_lib_cleanup helper
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (12 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 13/15] selftests: mptcp: add mptcp_lib_check_tools helper Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 15/15] selftests: mptcp: add mptcp_lib_check_output helper Geliang Tang
2024-02-13 4:25 ` [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: 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 <geliang.tang@linux.dev>
---
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/selftests/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
mptcp_lib_ns_exit
+ mptcp_lib_cleanup
}
mptcp_lib_check_tools "ip" "ss"
diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/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"
mptcp_lib_ns_exit
+ mptcp_lib_cleanup
}
mptcp_lib_check_tools "ip" "ss"
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/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
}
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/testing/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
}
mptcp_lib_check_tools "ip" "ss" "iptables"
diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testing/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
}
mptcp_lib_check_tools "ip"
diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/testing/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"
mptcp_lib_ns_exit
+ mptcp_lib_cleanup
}
mptcp_lib_check_tools "ip"
diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/testing/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
+ mptcp_lib_cleanup
_printf "Done\n"
}
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH mptcp-next v6 15/15] selftests: mptcp: add mptcp_lib_check_output helper
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (13 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 14/15] selftests: mptcp: add mptcp_lib_cleanup helper Geliang Tang
@ 2023-12-21 11:31 ` Geliang Tang
2024-02-13 4:25 ` [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
15 siblings, 0 replies; 20+ messages in thread
From: Geliang Tang @ 2023-12-21 11:31 UTC (permalink / raw)
To: mptcp; +Cc: 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 <geliang.tang@linux.dev>
---
.../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/testing/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=""
cinsent=""
tmpfile=""
cout=""
-check_output_err=""
capout=""
ksft_skip=4
timeout_poll=30
@@ -141,7 +140,6 @@ init() {
cinsent=$(mktemp)
cout=$(mktemp)
mptcp_lib_evts_init
- check_output_err=$(mktemp)
trap cleanup EXIT
@@ -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
}
-check_output()
-{
- local cmd="$1"
- local expected="$2"
- local msg="$3"
- local out=`$cmd 2>$check_output_err`
- local cmd_ret=$?
-
- printf "%-42s" "$msg"
- if [ $cmd_ret -ne 0 ]; then
- mptcp_lib_print_err "[ FAIL ] command execution '$cmd' stderr "
- cat $check_output_err
- ret=${KSFT_FAIL}
- return $cmd_ret
- elif [ "$out" = "$expected" ]; then
- mptcp_lib_print_ok "[ OK ]"
- return 0
- else
- mptcp_lib_print_err "[ FAIL ] expected '$expected' got '$out'"
- ret=${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="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="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
}
+check_output_err=$(mktemp)
+
+mptcp_lib_check_output() {
+ : "${check_output_err:?}"
+ : "${ret:?}"
+
+ local cmd="$1"
+ local expected="$2"
+ local msg="$3"
+ local out=`$cmd 2>$check_output_err`
+ local cmd_ret=$?
+
+ printf "%-42s" "$msg"
+ if [ $cmd_ret -ne 0 ]; then
+ mptcp_lib_print_err "[ FAIL ] command execution '$cmd' stderr "
+ cat $check_output_err
+ ret=${KSFT_FAIL}
+ return $cmd_ret
+ elif [ "$out" = "$expected" ]; then
+ mptcp_lib_print_ok "[ OK ]"
+ return 0
+ else
+ mptcp_lib_print_err "[ FAIL ] expected '$expected' got '$out'"
+ ret=${KSFT_FAIL}
+ return 1
+ fi
+}
+
mptcp_lib_cleanup() {
+ : "${check_output_err:?}"
+
echo "cleanup"
+ rm -f $check_output_err
}
echo -e "\n${KSFT_TEST}\n"
diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testing/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
mptcp_lib_ns_init
-err=$(mktemp)
cleanup()
{
- rm -f $err
mptcp_lib_ns_exit
mptcp_lib_cleanup
}
@@ -41,26 +39,15 @@ ip netns exec $ns1 sysctl -q net.mptcp.enabled=1
check()
{
- local cmd="$1"
- local expected="$2"
- local msg="$3"
- local out=`$cmd 2>$err`
- local cmd_ret=$?
-
- 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=1
- elif [ "$out" = "$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=$?
+ 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=1
+ mptcp_lib_result_fail "${3} # error ${rc}"
fi
}
--
2.35.3
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
` (14 preceding siblings ...)
2023-12-21 11:31 ` [PATCH mptcp-next v6 15/15] selftests: mptcp: add mptcp_lib_check_output helper Geliang Tang
@ 2024-02-13 4:25 ` Geliang Tang
2024-02-13 12:02 ` Matthieu Baerts
15 siblings, 1 reply; 20+ messages in thread
From: Geliang Tang @ 2024-02-13 4:25 UTC (permalink / raw)
To: Geliang Tang; +Cc: mptcp
On Thu, Dec 21, 2023 at 07:31:03PM +0800, Geliang Tang wrote:
> v6:
> - rebased with:
> v3 fixes for CURRESTAB
> v5 dump for userspace pm
>
> v5:
> - rebased with "userspace pm enhancements" v13
>
> v4:
> - rebased with "userspace pm enhancements" v12
>
> v3:
> - merge squash-to patch for v2:
> Squash to "selftests: mptcp: add mptcp_lib_ns_* helpers"
> - add a new patch:
> selftests: mptcp: simult flows: define missing vars
> - update patches:
> selftests: mptcp: export event macros in mptcp_lib
> selftests: mptcp: export cin/cout/sin/sout vars
> selftests: mptcp: netlink: fix positions of newline
> - update some commit subjects and commit logs.
>
> v2:
> - add more patches.
>
> Geliang Tang (15):
> selftests: mptcp: add mptcp_lib_evts_* helpers
> selftests: mptcp: userspace: capitalize test_name
> selftests: mptcp: userspace: print colored output
> selftests: mptcp: capitalize ok/fail/skip
> selftests: mptcp: netlink: drop duplicate var ret
> selftests: mptcp: export ret into mptcp_lib
> selftests: mptcp: extract mptcp_lib_check_expected
> selftests: mptcp: export event macros in mptcp_lib
> selftests: mptcp: add mptcp_lib_verify_listener_events
> selftests: mptcp: unify namespace names
> selftests: mptcp: add mptcp_lib_ns_* helpers
> selftests: mptcp: add ss mptcp support checks
> selftests: mptcp: add mptcp_lib_check_tools helper
> selftests: mptcp: add mptcp_lib_cleanup helper
> selftests: mptcp: add mptcp_lib_check_output helper
New version of this series was sent out, please change them as
"Superseded" on Patchwork.
Thanks,
-Geliang
>
> tools/testing/selftests/net/mptcp/diag.sh | 75 ++---
> .../selftests/net/mptcp/mptcp_connect.sh | 31 +-
> .../testing/selftests/net/mptcp/mptcp_join.sh | 204 ++++---------
> .../testing/selftests/net/mptcp/mptcp_lib.sh | 264 +++++++++++++++++
> .../selftests/net/mptcp/mptcp_sockopt.sh | 48 +---
> .../testing/selftests/net/mptcp/pm_netlink.sh | 48 +---
> .../selftests/net/mptcp/simult_flows.sh | 30 +-
> .../selftests/net/mptcp/userspace_pm.sh | 270 ++++++------------
> 8 files changed, 464 insertions(+), 506 deletions(-)
>
> --
> 2.35.3
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh
2024-02-13 4:25 ` [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
@ 2024-02-13 12:02 ` Matthieu Baerts
2024-02-13 13:58 ` Geliang Tang
0 siblings, 1 reply; 20+ messages in thread
From: Matthieu Baerts @ 2024-02-13 12:02 UTC (permalink / raw)
To: Geliang Tang, Geliang Tang; +Cc: mptcp
Hi Geliang,
On 13/02/2024 05:25, Geliang Tang wrote:
> On Thu, Dec 21, 2023 at 07:31:03PM +0800, Geliang Tang wrote:
>> v6:
>> - rebased with:
>> v3 fixes for CURRESTAB
>> v5 dump for userspace pm
>>
>> v5:
>> - rebased with "userspace pm enhancements" v13
>>
>> v4:
>> - rebased with "userspace pm enhancements" v12
>>
>> v3:
>> - merge squash-to patch for v2:
>> Squash to "selftests: mptcp: add mptcp_lib_ns_* helpers"
>> - add a new patch:
>> selftests: mptcp: simult flows: define missing vars
>> - update patches:
>> selftests: mptcp: export event macros in mptcp_lib
>> selftests: mptcp: export cin/cout/sin/sout vars
>> selftests: mptcp: netlink: fix positions of newline
>> - update some commit subjects and commit logs.
>>
>> v2:
>> - add more patches.
>>
>> Geliang Tang (15):
>> selftests: mptcp: add mptcp_lib_evts_* helpers
>> selftests: mptcp: userspace: capitalize test_name
>> selftests: mptcp: userspace: print colored output
>> selftests: mptcp: capitalize ok/fail/skip
>> selftests: mptcp: netlink: drop duplicate var ret
>> selftests: mptcp: export ret into mptcp_lib
>> selftests: mptcp: extract mptcp_lib_check_expected
>> selftests: mptcp: export event macros in mptcp_lib
>> selftests: mptcp: add mptcp_lib_verify_listener_events
>> selftests: mptcp: unify namespace names
>> selftests: mptcp: add mptcp_lib_ns_* helpers
>> selftests: mptcp: add ss mptcp support checks
>> selftests: mptcp: add mptcp_lib_check_tools helper
>> selftests: mptcp: add mptcp_lib_cleanup helper
>> selftests: mptcp: add mptcp_lib_check_output helper
>
> New version of this series was sent out, please change them as
> "Superseded" on Patchwork.
Thank you for the notification!
Sorry, I'm taking a long time to do the review. But I will do it.
Because I took so long to finish it, I can do the rebase of the other
patches if you prefer, that's the least I can do.
I marked patches 5/15 and 12/15 as superseded. Best to not mark them all
like that if the new version is not published.
Should I "drop" others?
Cheers,
Matt
--
Sponsored by the NGI0 Core fund.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh
2024-02-13 12:02 ` Matthieu Baerts
@ 2024-02-13 13:58 ` Geliang Tang
2024-02-13 14:51 ` Matthieu Baerts
0 siblings, 1 reply; 20+ messages in thread
From: Geliang Tang @ 2024-02-13 13:58 UTC (permalink / raw)
To: Matthieu Baerts; +Cc: mptcp
Hi Matt,
On Tue, Feb 13, 2024 at 01:02:42PM +0100, Matthieu Baerts wrote:
> Hi Geliang,
>
> On 13/02/2024 05:25, Geliang Tang wrote:
> > On Thu, Dec 21, 2023 at 07:31:03PM +0800, Geliang Tang wrote:
> >> v6:
> >> - rebased with:
> >> v3 fixes for CURRESTAB
> >> v5 dump for userspace pm
> >>
> >> v5:
> >> - rebased with "userspace pm enhancements" v13
> >>
> >> v4:
> >> - rebased with "userspace pm enhancements" v12
> >>
> >> v3:
> >> - merge squash-to patch for v2:
> >> Squash to "selftests: mptcp: add mptcp_lib_ns_* helpers"
> >> - add a new patch:
> >> selftests: mptcp: simult flows: define missing vars
> >> - update patches:
> >> selftests: mptcp: export event macros in mptcp_lib
> >> selftests: mptcp: export cin/cout/sin/sout vars
> >> selftests: mptcp: netlink: fix positions of newline
> >> - update some commit subjects and commit logs.
> >>
> >> v2:
> >> - add more patches.
> >>
> >> Geliang Tang (15):
> >> selftests: mptcp: add mptcp_lib_evts_* helpers
> >> selftests: mptcp: userspace: capitalize test_name
> >> selftests: mptcp: userspace: print colored output
> >> selftests: mptcp: capitalize ok/fail/skip
> >> selftests: mptcp: netlink: drop duplicate var ret
> >> selftests: mptcp: export ret into mptcp_lib
> >> selftests: mptcp: extract mptcp_lib_check_expected
> >> selftests: mptcp: export event macros in mptcp_lib
> >> selftests: mptcp: add mptcp_lib_verify_listener_events
> >> selftests: mptcp: unify namespace names
> >> selftests: mptcp: add mptcp_lib_ns_* helpers
> >> selftests: mptcp: add ss mptcp support checks
> >> selftests: mptcp: add mptcp_lib_check_tools helper
> >> selftests: mptcp: add mptcp_lib_cleanup helper
> >> selftests: mptcp: add mptcp_lib_check_output helper
> >
> > New version of this series was sent out, please change them as
> > "Superseded" on Patchwork.
>
> Thank you for the notification!
>
> Sorry, I'm taking a long time to do the review. But I will do it.
> Because I took so long to finish it, I can do the rebase of the other
> patches if you prefer, that's the least I can do.
Sorry, I put too many patches into one series. This makes the review
difficult. This time I'll split them into smaller series to make the
review simpler.
>
> I marked patches 5/15 and 12/15 as superseded. Best to not mark them all
> like that if the new version is not published.
>
> Should I "drop" others?
We can "drop" them in this series. New version is very different from
this one.
Thanks,
-Geliang
>
> Cheers,
> Matt
> --
> Sponsored by the NGI0 Core fund.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh
2024-02-13 13:58 ` Geliang Tang
@ 2024-02-13 14:51 ` Matthieu Baerts
0 siblings, 0 replies; 20+ messages in thread
From: Matthieu Baerts @ 2024-02-13 14:51 UTC (permalink / raw)
To: Geliang Tang; +Cc: mptcp
On 13/02/2024 14:58, Geliang Tang wrote:
> Hi Matt,
>
> On Tue, Feb 13, 2024 at 01:02:42PM +0100, Matthieu Baerts wrote:
>> Hi Geliang,
>>
>> On 13/02/2024 05:25, Geliang Tang wrote:
>>> On Thu, Dec 21, 2023 at 07:31:03PM +0800, Geliang Tang wrote:
>>>> v6:
>>>> - rebased with:
>>>> v3 fixes for CURRESTAB
>>>> v5 dump for userspace pm
>>>>
>>>> v5:
>>>> - rebased with "userspace pm enhancements" v13
>>>>
>>>> v4:
>>>> - rebased with "userspace pm enhancements" v12
>>>>
>>>> v3:
>>>> - merge squash-to patch for v2:
>>>> Squash to "selftests: mptcp: add mptcp_lib_ns_* helpers"
>>>> - add a new patch:
>>>> selftests: mptcp: simult flows: define missing vars
>>>> - update patches:
>>>> selftests: mptcp: export event macros in mptcp_lib
>>>> selftests: mptcp: export cin/cout/sin/sout vars
>>>> selftests: mptcp: netlink: fix positions of newline
>>>> - update some commit subjects and commit logs.
>>>>
>>>> v2:
>>>> - add more patches.
>>>>
>>>> Geliang Tang (15):
>>>> selftests: mptcp: add mptcp_lib_evts_* helpers
>>>> selftests: mptcp: userspace: capitalize test_name
>>>> selftests: mptcp: userspace: print colored output
>>>> selftests: mptcp: capitalize ok/fail/skip
>>>> selftests: mptcp: netlink: drop duplicate var ret
>>>> selftests: mptcp: export ret into mptcp_lib
>>>> selftests: mptcp: extract mptcp_lib_check_expected
>>>> selftests: mptcp: export event macros in mptcp_lib
>>>> selftests: mptcp: add mptcp_lib_verify_listener_events
>>>> selftests: mptcp: unify namespace names
>>>> selftests: mptcp: add mptcp_lib_ns_* helpers
>>>> selftests: mptcp: add ss mptcp support checks
>>>> selftests: mptcp: add mptcp_lib_check_tools helper
>>>> selftests: mptcp: add mptcp_lib_cleanup helper
>>>> selftests: mptcp: add mptcp_lib_check_output helper
>>>
>>> New version of this series was sent out, please change them as
>>> "Superseded" on Patchwork.
>>
>> Thank you for the notification!
>>
>> Sorry, I'm taking a long time to do the review. But I will do it.
>> Because I took so long to finish it, I can do the rebase of the other
>> patches if you prefer, that's the least I can do.
>
> Sorry, I put too many patches into one series. This makes the review
> difficult. This time I'll split them into smaller series to make the
> review simpler.
All good, thank you for your patience!
>> I marked patches 5/15 and 12/15 as superseded. Best to not mark them all
>> like that if the new version is not published.
>>
>> Should I "drop" others?
>
> We can "drop" them in this series. New version is very different from
> this one.
OK, I just marked the whole series as superseded then.
Cheers,
Matt
--
Sponsored by the NGI0 Core fund.
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2024-02-13 14:51 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-21 11:31 [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 01/15] selftests: mptcp: add mptcp_lib_evts_* helpers Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 02/15] selftests: mptcp: userspace: capitalize test_name Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 03/15] selftests: mptcp: userspace: print colored output Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 04/15] selftests: mptcp: capitalize ok/fail/skip Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 05/15] selftests: mptcp: netlink: drop duplicate var ret Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 06/15] selftests: mptcp: export ret into mptcp_lib Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 07/15] selftests: mptcp: extract mptcp_lib_check_expected Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 08/15] selftests: mptcp: export event macros in mptcp_lib Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 09/15] selftests: mptcp: add mptcp_lib_verify_listener_events Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 10/15] selftests: mptcp: unify namespace names Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 11/15] selftests: mptcp: add mptcp_lib_ns_* helpers Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 12/15] selftests: mptcp: add ss mptcp support checks Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 13/15] selftests: mptcp: add mptcp_lib_check_tools helper Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 14/15] selftests: mptcp: add mptcp_lib_cleanup helper Geliang Tang
2023-12-21 11:31 ` [PATCH mptcp-next v6 15/15] selftests: mptcp: add mptcp_lib_check_output helper Geliang Tang
2024-02-13 4:25 ` [PATCH mptcp-next v6 00/15] add helpers and vars in mptcp_lib.sh Geliang Tang
2024-02-13 12:02 ` Matthieu Baerts
2024-02-13 13:58 ` Geliang Tang
2024-02-13 14:51 ` Matthieu Baerts
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox