mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 22:26:55 +00:00
selftests/tls: add test for poll() with data in TLS ULP
Add a test which checks if leftover record data in TLS layer correctly wakes up poll(). Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
13aecb17ac
commit
81a89ef6be
1 changed files with 26 additions and 0 deletions
|
@ -644,6 +644,32 @@ TEST_F(tls, poll_wait)
|
||||||
EXPECT_EQ(recv(self->cfd, recv_mem, send_len, MSG_WAITALL), send_len);
|
EXPECT_EQ(recv(self->cfd, recv_mem, send_len, MSG_WAITALL), send_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(tls, poll_wait_split)
|
||||||
|
{
|
||||||
|
struct pollfd fd = { 0, 0, 0 };
|
||||||
|
char send_mem[20] = {};
|
||||||
|
char recv_mem[15];
|
||||||
|
|
||||||
|
fd.fd = self->cfd;
|
||||||
|
fd.events = POLLIN;
|
||||||
|
/* Send 20 bytes */
|
||||||
|
EXPECT_EQ(send(self->fd, send_mem, sizeof(send_mem), 0),
|
||||||
|
sizeof(send_mem));
|
||||||
|
/* Poll with inf. timeout */
|
||||||
|
EXPECT_EQ(poll(&fd, 1, -1), 1);
|
||||||
|
EXPECT_EQ(fd.revents & POLLIN, 1);
|
||||||
|
EXPECT_EQ(recv(self->cfd, recv_mem, sizeof(recv_mem), MSG_WAITALL),
|
||||||
|
sizeof(recv_mem));
|
||||||
|
|
||||||
|
/* Now the remaining 5 bytes of record data are in TLS ULP */
|
||||||
|
fd.fd = self->cfd;
|
||||||
|
fd.events = POLLIN;
|
||||||
|
EXPECT_EQ(poll(&fd, 1, -1), 1);
|
||||||
|
EXPECT_EQ(fd.revents & POLLIN, 1);
|
||||||
|
EXPECT_EQ(recv(self->cfd, recv_mem, sizeof(recv_mem), 0),
|
||||||
|
sizeof(send_mem) - sizeof(recv_mem));
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(tls, blocking)
|
TEST_F(tls, blocking)
|
||||||
{
|
{
|
||||||
size_t data = 100000;
|
size_t data = 100000;
|
||||||
|
|
Loading…
Reference in a new issue