Skip to content

Commit

Permalink
selftests: tls: add a test for timeo vs lock
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jakub Kicinski committed Jul 22, 2022
1 parent dde06aa commit 842463f
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions tools/testing/selftests/net/tls.c
Original file line number Diff line number Diff line change
Expand Up @@ -1597,6 +1597,38 @@ TEST_F(tls_err, bad_cmsg)
EXPECT_EQ(errno, EBADMSG);
}

TEST_F(tls_err, timeo)
{
struct timeval tv = { .tv_usec = 10000, };
char buf[128];
int ret;

if (self->notls)
SKIP(return, "no TLS support");

ret = setsockopt(self->cfd2, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
ASSERT_EQ(ret, 0);

ret = fork();
ASSERT_GE(ret, 0);

if (ret) {
usleep(1000); /* Give child a head start */

EXPECT_EQ(recv(self->cfd2, buf, sizeof(buf), 0), -1);
EXPECT_EQ(errno, EAGAIN);

EXPECT_EQ(recv(self->cfd2, buf, sizeof(buf), 0), -1);
EXPECT_EQ(errno, EAGAIN);

wait(&ret);
} else {
EXPECT_EQ(recv(self->cfd2, buf, sizeof(buf), 0), -1);
EXPECT_EQ(errno, EAGAIN);
exit(0);
}
}

TEST(non_established) {
struct tls12_crypto_info_aes_gcm_256 tls12;
struct sockaddr_in addr;
Expand Down

0 comments on commit 842463f

Please sign in to comment.