]> git.dujemihanovic.xyz Git - linux.git/commitdiff
selftests: mptcp: lib: add time per subtests in TAP output
authorMatthieu Baerts (NGI0) <matttbe@kernel.org>
Fri, 6 Sep 2024 18:46:07 +0000 (20:46 +0200)
committerJakub Kicinski <kuba@kernel.org>
Mon, 9 Sep 2024 23:52:04 +0000 (16:52 -0700)
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
Link: https://testanything.org/tap-version-14-specification.html
Link: https://docs.kernel.org/dev-tools/ktap.html
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20240906-net-next-mptcp-ksft-subtest-time-v2-1-31d5ee4f3bdf@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/mptcp/mptcp_lib.sh

index 4578a331041ed4b354bd7203a047695d5b7be3f4..975d4d4c862afff2e685e86dc08a892dbd09d783 100644 (file)
@@ -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