]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
selftests: mptcp: sockopt: fix error messages
authorGeliang Tang <tanggeliang@kylinos.cn>
Fri, 12 Sep 2025 12:52:24 +0000 (14:52 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Sep 2025 09:13:43 +0000 (11:13 +0200)
[ Upstream commit b86418beade11d45540a2d20c4ec1128849b6c27 ]

This patch fixes several issues in the error reporting of the MPTCP sockopt
selftest:

1. Fix diff not printed: The error messages for counter mismatches had
   the actual difference ('diff') as argument, but it was missing in the
   format string. Displaying it makes the debugging easier.

2. Fix variable usage: The error check for 'mptcpi_bytes_acked' incorrectly
   used 'ret2' (sent bytes) for both the expected value and the difference
   calculation. It now correctly uses 'ret' (received bytes), which is the
   expected value for bytes_acked.

3. Fix off-by-one in diff: The calculation for the 'mptcpi_rcv_delta' diff
   was 's.mptcpi_rcv_delta - ret', which is off-by-one. It has been
   corrected to 's.mptcpi_rcv_delta - (ret + 1)' to match the expected
   value in the condition above it.

Fixes: 5dcff89e1455 ("selftests: mptcp: explicitly tests aggregate counters")
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20250912-net-mptcp-pm-uspace-deny_join_id0-v1-5-40171884ade8@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/testing/selftests/net/mptcp/mptcp_sockopt.c

index 926b0be87c9905e763cfb5ba6df974d3518f0b49..1dc2bd6ee4a50ec1fb5ff694435126837b633242 100644 (file)
@@ -658,22 +658,26 @@ static void process_one_client(int fd, int pipefd)
 
        do_getsockopts(&s, fd, ret, ret2);
        if (s.mptcpi_rcv_delta != (uint64_t)ret + 1)
-               xerror("mptcpi_rcv_delta %" PRIu64 ", expect %" PRIu64, s.mptcpi_rcv_delta, ret + 1, s.mptcpi_rcv_delta - ret);
+               xerror("mptcpi_rcv_delta %" PRIu64 ", expect %" PRIu64 ", diff %" PRId64,
+                      s.mptcpi_rcv_delta, ret + 1, s.mptcpi_rcv_delta - (ret + 1));
 
        /* be nice when running on top of older kernel */
        if (s.pkt_stats_avail) {
                if (s.last_sample.mptcpi_bytes_sent != ret2)
-                       xerror("mptcpi_bytes_sent %" PRIu64 ", expect %" PRIu64,
+                       xerror("mptcpi_bytes_sent %" PRIu64 ", expect %" PRIu64
+                              ", diff %" PRId64,
                               s.last_sample.mptcpi_bytes_sent, ret2,
                               s.last_sample.mptcpi_bytes_sent - ret2);
                if (s.last_sample.mptcpi_bytes_received != ret)
-                       xerror("mptcpi_bytes_received %" PRIu64 ", expect %" PRIu64,
+                       xerror("mptcpi_bytes_received %" PRIu64 ", expect %" PRIu64
+                              ", diff %" PRId64,
                               s.last_sample.mptcpi_bytes_received, ret,
                               s.last_sample.mptcpi_bytes_received - ret);
                if (s.last_sample.mptcpi_bytes_acked != ret)
-                       xerror("mptcpi_bytes_acked %" PRIu64 ", expect %" PRIu64,
-                              s.last_sample.mptcpi_bytes_acked, ret2,
-                              s.last_sample.mptcpi_bytes_acked - ret2);
+                       xerror("mptcpi_bytes_acked %" PRIu64 ", expect %" PRIu64
+                              ", diff %" PRId64,
+                              s.last_sample.mptcpi_bytes_acked, ret,
+                              s.last_sample.mptcpi_bytes_acked - ret);
        }
 
        close(fd);