Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

selftests: tls: add a test for timeo vs lock

Add a test for recv timeout. Place it in the tls_err
group, so it only runs for TLS 1.2 and 1.3 but not
for every AEAD out there.

Link: https://lore.kernel.org/r/20220720203701.2179034-2-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+32
+32
tools/testing/selftests/net/tls.c
··· 1597 1597 EXPECT_EQ(errno, EBADMSG); 1598 1598 } 1599 1599 1600 + TEST_F(tls_err, timeo) 1601 + { 1602 + struct timeval tv = { .tv_usec = 10000, }; 1603 + char buf[128]; 1604 + int ret; 1605 + 1606 + if (self->notls) 1607 + SKIP(return, "no TLS support"); 1608 + 1609 + ret = setsockopt(self->cfd2, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); 1610 + ASSERT_EQ(ret, 0); 1611 + 1612 + ret = fork(); 1613 + ASSERT_GE(ret, 0); 1614 + 1615 + if (ret) { 1616 + usleep(1000); /* Give child a head start */ 1617 + 1618 + EXPECT_EQ(recv(self->cfd2, buf, sizeof(buf), 0), -1); 1619 + EXPECT_EQ(errno, EAGAIN); 1620 + 1621 + EXPECT_EQ(recv(self->cfd2, buf, sizeof(buf), 0), -1); 1622 + EXPECT_EQ(errno, EAGAIN); 1623 + 1624 + wait(&ret); 1625 + } else { 1626 + EXPECT_EQ(recv(self->cfd2, buf, sizeof(buf), 0), -1); 1627 + EXPECT_EQ(errno, EAGAIN); 1628 + exit(0); 1629 + } 1630 + } 1631 + 1600 1632 TEST(non_established) { 1601 1633 struct tls12_crypto_info_aes_gcm_256 tls12; 1602 1634 struct sockaddr_in addr;