]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - queue-5.1/selftests-tls-test-for-lowat-overshoot-with-multiple-records.patch
4.14-stable patches
[thirdparty/kernel/stable-queue.git] / queue-5.1 / selftests-tls-test-for-lowat-overshoot-with-multiple-records.patch
1 From foo@baz Fri 31 May 2019 03:16:39 PM PDT
2 From: Jakub Kicinski <jakub.kicinski@netronome.com>
3 Date: Fri, 24 May 2019 10:34:31 -0700
4 Subject: selftests/tls: test for lowat overshoot with multiple records
5
6 From: Jakub Kicinski <jakub.kicinski@netronome.com>
7
8 [ Upstream commit 7718a855cd7ae9fc27a2aa1532ee105d52eb7634 ]
9
10 Set SO_RCVLOWAT and test it gets respected when gathering
11 data from multiple records.
12
13 Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
14 Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com>
15 Signed-off-by: David S. Miller <davem@davemloft.net>
16 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
17 ---
18 tools/testing/selftests/net/tls.c | 19 +++++++++++++++++++
19 1 file changed, 19 insertions(+)
20
21 --- a/tools/testing/selftests/net/tls.c
22 +++ b/tools/testing/selftests/net/tls.c
23 @@ -575,6 +575,25 @@ TEST_F(tls, recv_peek_large_buf_mult_rec
24 EXPECT_EQ(memcmp(test_str, buf, len), 0);
25 }
26
27 +TEST_F(tls, recv_lowat)
28 +{
29 + char send_mem[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
30 + char recv_mem[20];
31 + int lowat = 8;
32 +
33 + EXPECT_EQ(send(self->fd, send_mem, 10, 0), 10);
34 + EXPECT_EQ(send(self->fd, send_mem, 5, 0), 5);
35 +
36 + memset(recv_mem, 0, 20);
37 + EXPECT_EQ(setsockopt(self->cfd, SOL_SOCKET, SO_RCVLOWAT,
38 + &lowat, sizeof(lowat)), 0);
39 + EXPECT_EQ(recv(self->cfd, recv_mem, 1, MSG_WAITALL), 1);
40 + EXPECT_EQ(recv(self->cfd, recv_mem + 1, 6, MSG_WAITALL), 6);
41 + EXPECT_EQ(recv(self->cfd, recv_mem + 7, 10, 0), 8);
42 +
43 + EXPECT_EQ(memcmp(send_mem, recv_mem, 10), 0);
44 + EXPECT_EQ(memcmp(send_mem, recv_mem + 10, 5), 0);
45 +}
46
47 TEST_F(tls, pollin)
48 {