aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2025-08-14 12:43:23 -0700
committerJakub Kicinski <kuba@kernel.org>2025-08-15 18:07:27 -0700
commit715c7a36d59f54162a26fac1d1ed8dc087a24cf1 (patch)
treea9825109053fd6248b60e12e7cbc043c1b477812
parentnet: libwx: Fix the size in RSS hash key population (diff)
downloadwireguard-linux-715c7a36d59f54162a26fac1d1ed8dc087a24cf1.tar.xz
wireguard-linux-715c7a36d59f54162a26fac1d1ed8dc087a24cf1.zip
selftests: tls: make the new data_steal test less flaky
The CI has hit a couple of cases of: RUN global.data_steal ... tls.c:2762:data_steal:Expected recv(cfd, buf2, sizeof(buf2), MSG_DONTWAIT) (20000) == -1 (-1) data_steal: Test terminated by timeout FAIL global.data_steal Looks like the 2msec sleep is not long enough. Make the sleep longer, and then instead of second sleep wait for the thieving process to exit. That way we can be sure it called recv() before us. While at it also avoid trying to steal more than a record, this seems to be causing issues in manual testing as well. Fixes: d7e82594a45c ("selftests: tls: test TCP stealing data from under the TLS socket") Link: https://patch.msgid.link/20250814194323.2014650-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--tools/testing/selftests/net/tls.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/tools/testing/selftests/net/tls.c b/tools/testing/selftests/net/tls.c
index d8cfcf9bb825..2b8387a83bc7 100644
--- a/tools/testing/selftests/net/tls.c
+++ b/tools/testing/selftests/net/tls.c
@@ -2748,17 +2748,18 @@ TEST(data_steal) {
pid = fork();
ASSERT_GE(pid, 0);
if (!pid) {
- EXPECT_EQ(recv(cfd, buf, sizeof(buf), MSG_WAITALL),
- sizeof(buf));
+ EXPECT_EQ(recv(cfd, buf, sizeof(buf) / 2, MSG_WAITALL),
+ sizeof(buf) / 2);
exit(!__test_passed(_metadata));
}
- usleep(2000);
+ usleep(10000);
ASSERT_EQ(setsockopt(fd, SOL_TLS, TLS_TX, &tls, tls.len), 0);
ASSERT_EQ(setsockopt(cfd, SOL_TLS, TLS_RX, &tls, tls.len), 0);
EXPECT_EQ(send(fd, buf, sizeof(buf), 0), sizeof(buf));
- usleep(2000);
+ EXPECT_EQ(wait(&status), pid);
+ EXPECT_EQ(status, 0);
EXPECT_EQ(recv(cfd, buf2, sizeof(buf2), MSG_DONTWAIT), -1);
/* Don't check errno, the error will be different depending
* on what random bytes TLS interpreted as the record length.
@@ -2766,9 +2767,6 @@ TEST(data_steal) {
close(fd);
close(cfd);
-
- EXPECT_EQ(wait(&status), pid);
- EXPECT_EQ(status, 0);
}
static void __attribute__((constructor)) fips_check(void) {