selftests: tls: test skb copy under mem pressure and OOB
authorJakub Kicinski <kuba@kernel.org>
Wed, 17 Sep 2025 00:28:14 +0000 (17:28 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 18 Sep 2025 10:43:54 +0000 (12:43 +0200)
Add a test which triggers mem pressure via OOB writes.

Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Link: https://patch.msgid.link/20250917002814.1743558-2-kuba@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tools/testing/selftests/net/tls.c

index 0f5640d8dc7fbf410013ba0e5b43023f3d3e0c10..dd093f9df6f147dcb1558dc524560eae09e487bf 100644 (file)
@@ -2770,6 +2770,22 @@ TEST_F(tls_err, poll_partial_rec_async)
        }
 }
 
+/* Use OOB+large send to trigger copy mode due to memory pressure.
+ * OOB causes a short read.
+ */
+TEST_F(tls_err, oob_pressure)
+{
+       char buf[1<<16];
+       int i;
+
+       memrnd(buf, sizeof(buf));
+
+       EXPECT_EQ(send(self->fd2, buf, 5, MSG_OOB), 5);
+       EXPECT_EQ(send(self->fd2, buf, sizeof(buf), 0), sizeof(buf));
+       for (i = 0; i < 64; i++)
+               EXPECT_EQ(send(self->fd2, buf, 5, MSG_OOB), 5);
+}
+
 TEST(non_established) {
        struct tls12_crypto_info_aes_gcm_256 tls12;
        struct sockaddr_in addr;