]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
selftests: mptcp: drop nanoseconds width specifier
authorMatthieu Baerts (NGI0) <matttbe@kernel.org>
Fri, 15 May 2026 04:27:37 +0000 (06:27 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 19 May 2026 13:36:35 +0000 (15:36 +0200)
Using the format specifier +%s%3N with GNU date is honoured, and only
prints 3 digits of the nanoseconds portion of the seconds since epoch,
which corresponds to the milliseconds.

The uutils implementation of date currently does not honour this, and
always prints all 9 digits. This is a known issue [1], but can be worked
around by adapting this test to use nanoseconds instead of microseconds,
and then divide it by 1e6.

This fix is similar to what has been done on systemd side [2], and it is
needed to run the selftests on Ubuntu 26.04, containing uutils 0.8.0.

Note that the Fixes tag is there even if this patch doesn't fix an issue
in the kernel selftests, but it is useful for those using uutils 0.8.0.

Fixes: 048d19d444be ("mptcp: add basic kselftest for mptcp")
Cc: stable@vger.kernel.org
Link: https://github.com/uutils/coreutils/issues/11658
Link: https://github.com/systemd/systemd/pull/41627
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20260515-net-mptcp-misc-fixes-7-1-rc4-v2-6-701e96419f2f@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tools/testing/selftests/net/mptcp/mptcp_connect.sh
tools/testing/selftests/net/mptcp/mptcp_lib.sh

index a6447f7a31fe53563b74ea4c84ceb76d56f95144..d158678fa6ab0e074388434b5f28009bb47ade8d 100755 (executable)
@@ -401,7 +401,7 @@ do_transfer()
        mptcp_lib_wait_local_port_listen "${listener_ns}" "${port}"
 
        local start
-       start=$(date +%s%3N)
+       start=$(date +%s%N)
        ip netns exec ${connector_ns} \
                ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
                        $extra_args $connect_addr < "$cin" > "$cout" &
@@ -423,7 +423,7 @@ do_transfer()
        fi
 
        local stop
-       stop=$(date +%s%3N)
+       stop=$(date +%s%N)
 
        if $capture; then
                sleep 1
@@ -439,7 +439,7 @@ do_transfer()
        fi
 
        local duration
-       duration=$((stop-start))
+       duration=$(((stop-start) / 1000000))
        printf "(duration %05sms) " "${duration}"
        if [ ${rets} -ne 0 ] || [ ${retc} -ne 0 ] || [ ${timeout_pid} -ne 0 ]; then
                mptcp_lib_pr_fail "client exit code $retc, server $rets"
index 989a5975dcea62ca3d5c394521893a8f30e96944..5ef6033775c86d3e6ee6e6790ba69eebaef84517 100644 (file)
@@ -28,7 +28,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_SUBTESTS_LAST_TS_NS=
 MPTCP_LIB_TEST_COUNTER=0
 MPTCP_LIB_TEST_FORMAT="%02u %-50s"
 MPTCP_LIB_IP_MPTCP=0
@@ -236,7 +236,7 @@ mptcp_lib_kversion_ge() {
 }
 
 mptcp_lib_subtests_last_ts_reset() {
-       MPTCP_LIB_SUBTESTS_LAST_TS_MS="$(date +%s%3N)"
+       MPTCP_LIB_SUBTESTS_LAST_TS_NS="$(date +%s%N)"
 }
 mptcp_lib_subtests_last_ts_reset
 
@@ -255,7 +255,7 @@ __mptcp_lib_result_check_duplicated() {
 __mptcp_lib_result_add() {
        local result="${1}"
        local time="time="
-       local ts_prev_ms
+       local ts_prev_ns
        shift
 
        local id=$((${#MPTCP_LIB_SUBTESTS[@]} + 1))
@@ -265,9 +265,9 @@ __mptcp_lib_result_add() {
        # not to add two '#'
        [[ "${*}" != *"#"* ]] && time="# ${time}"
 
-       ts_prev_ms="${MPTCP_LIB_SUBTESTS_LAST_TS_MS}"
+       ts_prev_ns="${MPTCP_LIB_SUBTESTS_LAST_TS_NS}"
        mptcp_lib_subtests_last_ts_reset
-       time+="$((MPTCP_LIB_SUBTESTS_LAST_TS_MS - ts_prev_ms))ms"
+       time+="$(((MPTCP_LIB_SUBTESTS_LAST_TS_NS - ts_prev_ns) / 1000000))ms"
 
        MPTCP_LIB_SUBTESTS+=("${result} ${id} - ${KSFT_TEST}: ${*} ${time}")
 }