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>
This commit is contained in:
parent
dde06aaa89
commit
842463f253
|
@ -1597,6 +1597,38 @@ TEST_F(tls_err, bad_cmsg)
|
||||||
EXPECT_EQ(errno, EBADMSG);
|
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) {
|
TEST(non_established) {
|
||||||
struct tls12_crypto_info_aes_gcm_256 tls12;
|
struct tls12_crypto_info_aes_gcm_256 tls12;
|
||||||
struct sockaddr_in addr;
|
struct sockaddr_in addr;
|
||||||
|
|
Loading…
Reference in New Issue