]>
Commit | Line | Data |
---|---|---|
ffc20820 GKH |
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:33 -0700 | |
4 | Subject: selftests/tls: add test for sleeping even though there is data | |
5 | ||
6 | From: Jakub Kicinski <jakub.kicinski@netronome.com> | |
7 | ||
8 | [ Upstream commit 043556d0917a1a5ea58795fe1656a2bce06d2649 ] | |
9 | ||
10 | Add a test which sends 15 bytes of data, and then tries | |
11 | to read 10 byes twice. Previously the second read would | |
12 | sleep indifinitely, since the record was already decrypted | |
13 | and there is only 5 bytes left, not full 10. | |
14 | ||
15 | Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> | |
16 | Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> | |
17 | Signed-off-by: David S. Miller <davem@davemloft.net> | |
18 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
19 | --- | |
20 | tools/testing/selftests/net/tls.c | 15 +++++++++++++++ | |
21 | 1 file changed, 15 insertions(+) | |
22 | ||
23 | --- a/tools/testing/selftests/net/tls.c | |
24 | +++ b/tools/testing/selftests/net/tls.c | |
25 | @@ -442,6 +442,21 @@ TEST_F(tls, multiple_send_single_recv) | |
26 | EXPECT_EQ(memcmp(send_mem, recv_mem + send_len, send_len), 0); | |
27 | } | |
28 | ||
29 | +TEST_F(tls, single_send_multiple_recv_non_align) | |
30 | +{ | |
31 | + const unsigned int total_len = 15; | |
32 | + const unsigned int recv_len = 10; | |
33 | + char recv_mem[recv_len * 2]; | |
34 | + char send_mem[total_len]; | |
35 | + | |
36 | + EXPECT_GE(send(self->fd, send_mem, total_len, 0), 0); | |
37 | + memset(recv_mem, 0, total_len); | |
38 | + | |
39 | + EXPECT_EQ(recv(self->cfd, recv_mem, recv_len, 0), recv_len); | |
40 | + EXPECT_EQ(recv(self->cfd, recv_mem + recv_len, recv_len, 0), 5); | |
41 | + EXPECT_EQ(memcmp(send_mem, recv_mem, total_len), 0); | |
42 | +} | |
43 | + | |
44 | TEST_F(tls, recv_partial) | |
45 | { | |
46 | char const *test_str = "test_read_partial"; |