From nobody Sun Mar 22 10:03:37 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3111F35836F for ; Tue, 17 Mar 2026 09:13:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773738833; cv=none; b=TGPRsnZr3oxVaJAEt9lLdO/ZlXOHMOsj78F2LJrVlyA0vXT95nkUt4yTieHK+TcFQ/lXO9Xz6ANlz/WHy831m+zWzFPOl72hpe5CQHwSkiUsvV0J2La0nw0uDyRqSrF5DkIKLp52aYAPsugJxJvYBblDnZ11EBS7mHLq+IP+CqA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773738833; c=relaxed/simple; bh=wz2TPddIX2ais3ZwMSM2O0EVMElNivilhxtgca2EIvE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=j2k88xNdmRCKjRGl9qLRy/+bXA0MgXQs6tL6ShqQhHwmpUTnsl4n7nvWVnrhxb6zBYCIidQkKiBzqUYeRlQT09dkUPtCvz3V8k+69y4ooiwhLmm2KEHnbgdXciKW3xumtyXkugm67dNJL0OJmlB9nK/cLKVbPpZ9wQ3RmO9LnJA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lD4pxD4u; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="lD4pxD4u" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DE4B9C4CEF7; Tue, 17 Mar 2026 09:13:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773738833; bh=wz2TPddIX2ais3ZwMSM2O0EVMElNivilhxtgca2EIvE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lD4pxD4uAnoUNs0v4OmnhQqK8EpxI2Wf9CRrYb+pBJffP255FdDZnbNqd2OS9nGa2 BXu9X9laqgyCjWUkChhp34/B13HCteh2e8qnqov0/agJX5h+E/fQs+fElC9smFEeMt u9LDjCIP1fqfCHZQwAvcpac+2KZyIua4Dfpt3XxK7sglJLzl3O3mp5y0L0WYfSH86f 2IvoBhPn+wZahyE4jirB7ZnPEpPVmhjBzaX83r8ok60JCAetPv6StE0HTkV7S/OnNM vGmMrHzzTtkZiOh/ELSej7JTgTW5/HFryTf2LwUHv/0bxrasvFMdnC0/zsqYgN68jU PZurt0+s7f7iQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang , Gang Yan Subject: [RFC mptcp-next v10 12/14] selftests: tls: adjust timeouts and data for MPTCP Date: Tue, 17 Mar 2026 17:12:48 +0800 Message-ID: X-Mailer: git-send-email 2.53.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang MPTCP requires longer timeouts in poll/epoll tests due to subflow establishment delays and slower state transitions. Increase timeout values to prevent false failures. Double the data size in nonblocking test to accommodate MPTCP's multi-subflow behavior and ensure sufficient data for testing. In shutdown_reuse tests, add a delay after shutdown to ensure sockets transition to TCPF_CLOSE before bind() reuse. Co-developed-by: Gang Yan Signed-off-by: Gang Yan Signed-off-by: Geliang Tang --- tools/testing/selftests/net/tls.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/tools/testing/selftests/net/tls.c b/tools/testing/selftests/ne= t/tls.c index 539a2bbea103..24ed6deb40fd 100644 --- a/tools/testing/selftests/net/tls.c +++ b/tools/testing/selftests/net/tls.c @@ -1293,6 +1293,7 @@ TEST_F(tls, bidir) =20 TEST_F(tls, pollin) { + int timeout =3D variant->mptcp ? 100 : 20; char const *test_str =3D "test_poll"; struct pollfd fd =3D { 0, 0, 0 }; char buf[10]; @@ -1302,11 +1303,11 @@ TEST_F(tls, pollin) fd.fd =3D self->cfd; fd.events =3D POLLIN; =20 - EXPECT_EQ(poll(&fd, 1, 20), 1); + EXPECT_EQ(poll(&fd, 1, timeout), 1); EXPECT_EQ(fd.revents & POLLIN, 1); EXPECT_EQ(recv(self->cfd, buf, send_len, MSG_WAITALL), send_len); /* Test timing out */ - EXPECT_EQ(poll(&fd, 1, 20), 0); + EXPECT_EQ(poll(&fd, 1, timeout), 0); } =20 TEST_F(tls, poll_wait) @@ -1398,6 +1399,9 @@ TEST_F(tls, nonblocking) int flags; int res; =20 + if (variant->mptcp) + data *=3D 2; + flags =3D fcntl(self->fd, F_GETFL, 0); fcntl(self->fd, F_SETFL, flags | O_NONBLOCK); fcntl(self->cfd, F_SETFL, flags | O_NONBLOCK); @@ -1677,6 +1681,9 @@ TEST_F(tls, shutdown_reuse) shutdown(self->cfd, SHUT_RDWR); close(self->cfd); =20 + if (variant->mptcp) + usleep(500000); + addr.sin_family =3D AF_INET; addr.sin_addr.s_addr =3D htonl(INADDR_ANY); addr.sin_port =3D 0; @@ -2725,6 +2732,7 @@ TEST_F(tls_err, timeo) =20 TEST_F(tls_err, poll_partial_rec) { + int timeout =3D variant->mptcp ? 100 : 1; struct pollfd pfd =3D { }; ssize_t rec_len; char rec[256]; @@ -2735,7 +2743,7 @@ TEST_F(tls_err, poll_partial_rec) =20 pfd.fd =3D self->cfd2; pfd.events =3D POLLIN; - EXPECT_EQ(poll(&pfd, 1, 1), 0); + EXPECT_EQ(poll(&pfd, 1, timeout), 0); =20 memrnd(buf, sizeof(buf)); EXPECT_EQ(send(self->fd, buf, sizeof(buf), 0), sizeof(buf)); @@ -2747,18 +2755,19 @@ TEST_F(tls_err, poll_partial_rec) /* ... no full record should mean no POLLIN */ pfd.fd =3D self->cfd2; pfd.events =3D POLLIN; - EXPECT_EQ(poll(&pfd, 1, 1), 0); + EXPECT_EQ(poll(&pfd, 1, timeout), 0); /* Now write the rest, and it should all pop out of the other end. */ EXPECT_EQ(send(self->fd2, rec + 100, rec_len - 100, 0), rec_len - 100); pfd.fd =3D self->cfd2; pfd.events =3D POLLIN; - EXPECT_EQ(poll(&pfd, 1, 1), 1); + EXPECT_EQ(poll(&pfd, 1, timeout), 1); EXPECT_EQ(recv(self->cfd2, rec, sizeof(rec), 0), sizeof(buf)); EXPECT_EQ(memcmp(buf, rec, sizeof(buf)), 0); } =20 TEST_F(tls_err, epoll_partial_rec) { + int timeout =3D variant->mptcp ? 100 : 0; struct epoll_event ev, events[10]; ssize_t rec_len; char rec[256]; @@ -2776,7 +2785,7 @@ TEST_F(tls_err, epoll_partial_rec) ev.data.fd =3D self->cfd2; ASSERT_GE(epoll_ctl(epollfd, EPOLL_CTL_ADD, self->cfd2, &ev), 0); =20 - EXPECT_EQ(epoll_wait(epollfd, events, 10, 0), 0); + EXPECT_EQ(epoll_wait(epollfd, events, 10, timeout), 0); =20 memrnd(buf, sizeof(buf)); EXPECT_EQ(send(self->fd, buf, sizeof(buf), 0), sizeof(buf)); @@ -2786,10 +2795,10 @@ TEST_F(tls_err, epoll_partial_rec) /* Write 100B, not the full record ... */ EXPECT_EQ(send(self->fd2, rec, 100, 0), 100); /* ... no full record should mean no POLLIN */ - EXPECT_EQ(epoll_wait(epollfd, events, 10, 0), 0); + EXPECT_EQ(epoll_wait(epollfd, events, 10, timeout), 0); /* Now write the rest, and it should all pop out of the other end. */ EXPECT_EQ(send(self->fd2, rec + 100, rec_len - 100, 0), rec_len - 100); - EXPECT_EQ(epoll_wait(epollfd, events, 10, 0), 1); + EXPECT_EQ(epoll_wait(epollfd, events, 10, timeout), 1); EXPECT_EQ(recv(self->cfd2, rec, sizeof(rec), 0), sizeof(buf)); EXPECT_EQ(memcmp(buf, rec, sizeof(buf)), 0); =20 @@ -2798,6 +2807,7 @@ TEST_F(tls_err, epoll_partial_rec) =20 TEST_F(tls_err, poll_partial_rec_async) { + int timeout =3D variant->mptcp ? 100 : 20; struct pollfd pfd =3D { }; char token =3D '\0'; ssize_t rec_len; @@ -2841,13 +2851,13 @@ TEST_F(tls_err, poll_partial_rec_async) /* Child should sleep in poll(), never get a wake */ pfd.fd =3D self->cfd2; pfd.events =3D POLLIN; - EXPECT_EQ(poll(&pfd, 1, 20), 0); + EXPECT_EQ(poll(&pfd, 1, timeout), 0); =20 EXPECT_EQ(write(p[1], &token, 1), 1); /* Barrier #1 */ =20 pfd.fd =3D self->cfd2; pfd.events =3D POLLIN; - EXPECT_EQ(poll(&pfd, 1, 20), 1); + EXPECT_EQ(poll(&pfd, 1, timeout), 1); =20 exit(!__test_passed(_metadata)); } --=20 2.53.0