* [PATCH net-next v2 1/5] selftests: mptcp: lib: add time per subtests in TAP output
2024-09-06 18:46 [PATCH net-next v2 0/5] selftests: mptcp: add time per subtests in TAP output Matthieu Baerts (NGI0)
@ 2024-09-06 18:46 ` Matthieu Baerts (NGI0)
2024-09-06 18:46 ` [PATCH net-next v2 2/5] selftests: mptcp: connect: remote time " Matthieu Baerts (NGI0)
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-09-06 18:46 UTC (permalink / raw)
To: mptcp, Mat Martineau, Geliang Tang, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Shuah Khan
Cc: netdev, linux-kselftest, linux-kernel, Matthieu Baerts (NGI0)
It adds 'time=<N>ms' in the diagnostic data of the TAP output, e.g.
ok 1 - pm_netlink: defaults addr list # time=9ms
This addition is useful to quickly identify which subtests are taking a
longer time than the others, or more than expected.
Note that there are no specific formats to follow to show this time
according to the TAP 13 [1], TAP 14 [2] and KTAP [3] specifications.
Let's then define this one here.
Link: https://testanything.org/tap-version-13-specification.html [1]
Link: https://testanything.org/tap-version-14-specification.html [2]
Link: https://docs.kernel.org/dev-tools/ktap.html [3]
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
tools/testing/selftests/net/mptcp/mptcp_lib.sh | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
index 4578a331041e..975d4d4c862a 100644
--- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
@@ -29,6 +29,7 @@ declare -rx MPTCP_LIB_AF_INET6=10
MPTCP_LIB_SUBTESTS=()
MPTCP_LIB_SUBTESTS_DUPLICATED=0
MPTCP_LIB_SUBTEST_FLAKY=0
+MPTCP_LIB_SUBTESTS_LAST_TS_MS=
MPTCP_LIB_TEST_COUNTER=0
MPTCP_LIB_TEST_FORMAT="%02u %-50s"
MPTCP_LIB_IP_MPTCP=0
@@ -205,6 +206,11 @@ mptcp_lib_kversion_ge() {
mptcp_lib_fail_if_expected_feature "kernel version ${1} lower than ${v}"
}
+mptcp_lib_subtests_last_ts_reset() {
+ MPTCP_LIB_SUBTESTS_LAST_TS_MS="$(date +%s%3N)"
+}
+mptcp_lib_subtests_last_ts_reset
+
__mptcp_lib_result_check_duplicated() {
local subtest
@@ -219,13 +225,22 @@ __mptcp_lib_result_check_duplicated() {
__mptcp_lib_result_add() {
local result="${1}"
+ local time="time="
+ local ts_prev_ms
shift
local id=$((${#MPTCP_LIB_SUBTESTS[@]} + 1))
__mptcp_lib_result_check_duplicated "${*}"
- MPTCP_LIB_SUBTESTS+=("${result} ${id} - ${KSFT_TEST}: ${*}")
+ # not to add two '#'
+ [[ "${*}" != *"#"* ]] && time="# ${time}"
+
+ ts_prev_ms="${MPTCP_LIB_SUBTESTS_LAST_TS_MS}"
+ mptcp_lib_subtests_last_ts_reset
+ time+="$((MPTCP_LIB_SUBTESTS_LAST_TS_MS - ts_prev_ms))ms"
+
+ MPTCP_LIB_SUBTESTS+=("${result} ${id} - ${KSFT_TEST}: ${*} ${time}")
}
# $1: test name
--
2.45.2
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH net-next v2 2/5] selftests: mptcp: connect: remote time in TAP output
2024-09-06 18:46 [PATCH net-next v2 0/5] selftests: mptcp: add time per subtests in TAP output Matthieu Baerts (NGI0)
2024-09-06 18:46 ` [PATCH net-next v2 1/5] selftests: mptcp: lib: " Matthieu Baerts (NGI0)
@ 2024-09-06 18:46 ` Matthieu Baerts (NGI0)
2024-09-06 18:46 ` [PATCH net-next v2 3/5] selftests: mptcp: reset the last TS before the first test Matthieu Baerts (NGI0)
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-09-06 18:46 UTC (permalink / raw)
To: mptcp, Mat Martineau, Geliang Tang, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Shuah Khan
Cc: netdev, linux-kselftest, linux-kernel, Matthieu Baerts (NGI0)
It is now added by the MPTCP lib automatically, see the parent commit.
The time in the TAP output might be slightly different from the one
displayed before, but that's OK.
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
v2:
- Fixed typo in the commit message (Jakub)
---
tools/testing/selftests/net/mptcp/mptcp_connect.sh | 1 -
1 file changed, 1 deletion(-)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index b77fb7065bfb..f61e2f5870ea 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -431,7 +431,6 @@ do_transfer()
local duration
duration=$((stop-start))
- result_msg+=" # time=${duration}ms"
printf "(duration %05sms) " "${duration}"
if [ ${rets} -ne 0 ] || [ ${retc} -ne 0 ]; then
mptcp_lib_pr_fail "client exit code $retc, server $rets"
--
2.45.2
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH net-next v2 3/5] selftests: mptcp: reset the last TS before the first test
2024-09-06 18:46 [PATCH net-next v2 0/5] selftests: mptcp: add time per subtests in TAP output Matthieu Baerts (NGI0)
2024-09-06 18:46 ` [PATCH net-next v2 1/5] selftests: mptcp: lib: " Matthieu Baerts (NGI0)
2024-09-06 18:46 ` [PATCH net-next v2 2/5] selftests: mptcp: connect: remote time " Matthieu Baerts (NGI0)
@ 2024-09-06 18:46 ` Matthieu Baerts (NGI0)
2024-09-06 18:46 ` [PATCH net-next v2 4/5] selftests: mptcp: diag: remove trailing whitespace Matthieu Baerts (NGI0)
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-09-06 18:46 UTC (permalink / raw)
To: mptcp, Mat Martineau, Geliang Tang, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Shuah Khan
Cc: netdev, linux-kselftest, linux-kernel, Matthieu Baerts (NGI0)
Just to slightly improve the precision of the duration of the first
test.
In mptcp_join.sh, the last append_prev_results is now done as soon as
the last test is over: this will add the last result in the list, and
get a more precise time for this last test.
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
tools/testing/selftests/net/mptcp/mptcp_connect.sh | 2 ++
tools/testing/selftests/net/mptcp/mptcp_join.sh | 3 ++-
tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 1 +
tools/testing/selftests/net/mptcp/pm_netlink.sh | 2 ++
tools/testing/selftests/net/mptcp/simult_flows.sh | 1 +
tools/testing/selftests/net/mptcp/userspace_pm.sh | 1 +
6 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index f61e2f5870ea..49d90c4dbc01 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -847,6 +847,8 @@ stop_if_error()
make_file "$cin" "client"
make_file "$sin" "server"
+mptcp_lib_subtests_last_ts_reset
+
check_mptcp_disabled
stop_if_error "The kernel configuration is not valid for MPTCP"
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 43f8a9bd84c4..3564cd06643c 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -3959,9 +3959,11 @@ if [ ${#tests[@]} -eq 0 ]; then
tests=("${all_tests_names[@]}")
fi
+mptcp_lib_subtests_last_ts_reset
for subtests in "${tests[@]}"; do
"${subtests}"
done
+append_prev_results
if [ ${ret} -ne 0 ]; then
echo
@@ -3972,7 +3974,6 @@ if [ ${ret} -ne 0 ]; then
echo
fi
-append_prev_results
mptcp_lib_result_print_all_tap
exit $ret
diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
index 68899a303a1a..5e8d5b83e2d0 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
@@ -349,6 +349,7 @@ init
make_file "$cin" "client" 1
make_file "$sin" "server" 1
trap cleanup EXIT
+mptcp_lib_subtests_last_ts_reset
run_tests $ns1 $ns2 10.0.1.1
run_tests $ns1 $ns2 dead:beef:1::1
diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testing/selftests/net/mptcp/pm_netlink.sh
index 2757378b1b13..2e6648a2b2c0 100755
--- a/tools/testing/selftests/net/mptcp/pm_netlink.sh
+++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh
@@ -137,6 +137,8 @@ check()
fi
}
+mptcp_lib_subtests_last_ts_reset
+
check "show_endpoints" "" "defaults addr list"
default_limits="$(get_limits)"
diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/testing/selftests/net/mptcp/simult_flows.sh
index f74e1c3c126d..8fa77c8e9b65 100755
--- a/tools/testing/selftests/net/mptcp/simult_flows.sh
+++ b/tools/testing/selftests/net/mptcp/simult_flows.sh
@@ -286,6 +286,7 @@ while getopts "bcdhi" option;do
done
setup
+mptcp_lib_subtests_last_ts_reset
run_test 10 10 0 0 "balanced bwidth"
run_test 10 10 1 25 "balanced bwidth with unbalanced delay"
diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/testing/selftests/net/mptcp/userspace_pm.sh
index 9cb05978269d..3651f73451cf 100755
--- a/tools/testing/selftests/net/mptcp/userspace_pm.sh
+++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh
@@ -150,6 +150,7 @@ mptcp_lib_events "${ns2}" "${client_evts}" client_evts_pid
server_evts=$(mktemp)
mptcp_lib_events "${ns1}" "${server_evts}" server_evts_pid
sleep 0.5
+mptcp_lib_subtests_last_ts_reset
print_title "Init"
print_test "Created network namespaces ns1, ns2"
--
2.45.2
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH net-next v2 4/5] selftests: mptcp: diag: remove trailing whitespace
2024-09-06 18:46 [PATCH net-next v2 0/5] selftests: mptcp: add time per subtests in TAP output Matthieu Baerts (NGI0)
` (2 preceding siblings ...)
2024-09-06 18:46 ` [PATCH net-next v2 3/5] selftests: mptcp: reset the last TS before the first test Matthieu Baerts (NGI0)
@ 2024-09-06 18:46 ` Matthieu Baerts (NGI0)
2024-09-06 18:46 ` [PATCH net-next v2 5/5] selftests: mptcp: connect: remove duplicated spaces in TAP output Matthieu Baerts (NGI0)
2024-09-10 0:00 ` [PATCH net-next v2 0/5] selftests: mptcp: add time per subtests " patchwork-bot+netdevbpf
5 siblings, 0 replies; 7+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-09-06 18:46 UTC (permalink / raw)
To: mptcp, Mat Martineau, Geliang Tang, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Shuah Khan
Cc: netdev, linux-kselftest, linux-kernel, Matthieu Baerts (NGI0)
It doesn't need to be there, and it can cause some issues with TAP
parsers expecting only one space around the directive delimiter (#).
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
tools/testing/selftests/net/mptcp/diag.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/selftests/net/mptcp/diag.sh
index 776d43a6922d..2bd0c1eb70c5 100755
--- a/tools/testing/selftests/net/mptcp/diag.sh
+++ b/tools/testing/selftests/net/mptcp/diag.sh
@@ -284,7 +284,7 @@ echo "b" | \
./mptcp_connect -p 10000 -r 0 -t ${timeout_poll} -w 20 \
127.0.0.1 >/dev/null &
wait_connected $ns 10000
-chk_msk_nr 2 "after MPC handshake "
+chk_msk_nr 2 "after MPC handshake"
chk_last_time_info 10000
chk_msk_remote_key_nr 2 "....chk remote_key"
chk_msk_fallback_nr 0 "....chk no fallback"
--
2.45.2
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH net-next v2 5/5] selftests: mptcp: connect: remove duplicated spaces in TAP output
2024-09-06 18:46 [PATCH net-next v2 0/5] selftests: mptcp: add time per subtests in TAP output Matthieu Baerts (NGI0)
` (3 preceding siblings ...)
2024-09-06 18:46 ` [PATCH net-next v2 4/5] selftests: mptcp: diag: remove trailing whitespace Matthieu Baerts (NGI0)
@ 2024-09-06 18:46 ` Matthieu Baerts (NGI0)
2024-09-10 0:00 ` [PATCH net-next v2 0/5] selftests: mptcp: add time per subtests " patchwork-bot+netdevbpf
5 siblings, 0 replies; 7+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-09-06 18:46 UTC (permalink / raw)
To: mptcp, Mat Martineau, Geliang Tang, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Shuah Khan
Cc: netdev, linux-kselftest, linux-kernel, Matthieu Baerts (NGI0)
It is nice to have a visual alignment in the test output to present the
different results, but it makes less sense in the TAP output that is
there for computers.
It sounds then better to remove the duplicated whitespaces in the TAP
output, also because it can cause some issues with TAP parsers expecting
only one space around the directive delimiter (#).
While at it, change the variable name (result_msg) to something more
explicit.
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
tools/testing/selftests/net/mptcp/mptcp_connect.sh | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
index 49d90c4dbc01..57325d57e4c6 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh
@@ -345,9 +345,11 @@ do_transfer()
local addr_port
addr_port=$(printf "%s:%d" ${connect_addr} ${port})
- local result_msg
- result_msg="$(printf "%.3s %-5s -> %.3s (%-20s) %-5s" ${connector_ns} ${cl_proto} ${listener_ns} ${addr_port} ${srv_proto})"
- mptcp_lib_print_title "${result_msg}"
+ local pretty_title
+ pretty_title="$(printf "%.3s %-5s -> %.3s (%-20s) %-5s" ${connector_ns} ${cl_proto} ${listener_ns} ${addr_port} ${srv_proto})"
+ mptcp_lib_print_title "${pretty_title}"
+
+ local tap_title="${connector_ns:0:3} ${cl_proto} -> ${listener_ns:0:3} (${addr_port}) ${srv_proto}"
if $capture; then
local capuser
@@ -443,7 +445,7 @@ do_transfer()
echo
cat "$capout"
- mptcp_lib_result_fail "${TEST_GROUP}: ${result_msg}"
+ mptcp_lib_result_fail "${TEST_GROUP}: ${tap_title}"
return 1
fi
@@ -543,12 +545,12 @@ do_transfer()
if [ $retc -eq 0 ] && [ $rets -eq 0 ]; then
mptcp_lib_pr_ok "${extra:1}"
- mptcp_lib_result_pass "${TEST_GROUP}: ${result_msg}"
+ mptcp_lib_result_pass "${TEST_GROUP}: ${tap_title}"
else
if [ -n "${extra}" ]; then
mptcp_lib_print_warn "${extra:1}"
fi
- mptcp_lib_result_fail "${TEST_GROUP}: ${result_msg}"
+ mptcp_lib_result_fail "${TEST_GROUP}: ${tap_title}"
fi
cat "$capout"
--
2.45.2
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH net-next v2 0/5] selftests: mptcp: add time per subtests in TAP output
2024-09-06 18:46 [PATCH net-next v2 0/5] selftests: mptcp: add time per subtests in TAP output Matthieu Baerts (NGI0)
` (4 preceding siblings ...)
2024-09-06 18:46 ` [PATCH net-next v2 5/5] selftests: mptcp: connect: remove duplicated spaces in TAP output Matthieu Baerts (NGI0)
@ 2024-09-10 0:00 ` patchwork-bot+netdevbpf
5 siblings, 0 replies; 7+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-09-10 0:00 UTC (permalink / raw)
To: Matthieu Baerts
Cc: mptcp, martineau, geliang, davem, edumazet, kuba, pabeni, shuah,
netdev, linux-kselftest, linux-kernel
Hello:
This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Fri, 06 Sep 2024 20:46:06 +0200 you wrote:
> Patches here add 'time=<N>ms' in the diagnostic data of the TAP output,
> e.g.
>
> ok 1 - pm_netlink: defaults addr list # time=9ms
>
> This addition is useful to quickly identify which subtests are taking a
> longer time than the others, or more than expected.
>
> [...]
Here is the summary with links:
- [net-next,v2,1/5] selftests: mptcp: lib: add time per subtests in TAP output
https://git.kernel.org/netdev/net-next/c/f58817c852e9
- [net-next,v2,2/5] selftests: mptcp: connect: remote time in TAP output
https://git.kernel.org/netdev/net-next/c/1a38cee4bbd0
- [net-next,v2,3/5] selftests: mptcp: reset the last TS before the first test
https://git.kernel.org/netdev/net-next/c/d4e192728efc
- [net-next,v2,4/5] selftests: mptcp: diag: remove trailing whitespace
https://git.kernel.org/netdev/net-next/c/a5b6be42aac0
- [net-next,v2,5/5] selftests: mptcp: connect: remove duplicated spaces in TAP output
https://git.kernel.org/netdev/net-next/c/a92d1db0c989
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 7+ messages in thread