summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVakul Garg <vakul.garg@nxp.com>2018-08-29 15:30:14 +0530
committerDavid S. Miller <davem@davemloft.net>2018-09-01 19:52:50 -0700
commitc2ad647c6442cf6730ffd86cbadbbce101dea937 (patch)
tree75768594b9fac89ac68e30b275457f80994376c7
parent94524d8fc965a7a0facdef6d1b01d5ef6d71a802 (diff)
downloadlinux-c2ad647c6442cf6730ffd86cbadbbce101dea937.tar.gz
linux-c2ad647c6442cf6730ffd86cbadbbce101dea937.tar.bz2
linux-c2ad647c6442cf6730ffd86cbadbbce101dea937.zip
selftests/tls: Add test for recv(PEEK) spanning across multiple records
Added test case to receive multiple records with a single recvmsg() operation with a MSG_PEEK set. Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--tools/testing/selftests/net/tls.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/tools/testing/selftests/net/tls.c b/tools/testing/selftests/net/tls.c
index b3ebf2646e52..07daff076ce0 100644
--- a/tools/testing/selftests/net/tls.c
+++ b/tools/testing/selftests/net/tls.c
@@ -502,6 +502,28 @@ TEST_F(tls, recv_peek_multiple)
EXPECT_EQ(memcmp(test_str, buf, send_len), 0);
}
+TEST_F(tls, recv_peek_large_buf_mult_recs)
+{
+ char const *test_str = "test_read_peek_mult_recs";
+ char const *test_str_first = "test_read_peek";
+ char const *test_str_second = "_mult_recs";
+ int len;
+ char buf[64];
+
+ len = strlen(test_str_first);
+ EXPECT_EQ(send(self->fd, test_str_first, len, 0), len);
+
+ len = strlen(test_str_second) + 1;
+ EXPECT_EQ(send(self->fd, test_str_second, len, 0), len);
+
+ len = sizeof(buf);
+ memset(buf, 0, len);
+ EXPECT_NE(recv(self->cfd, buf, len, MSG_PEEK), -1);
+
+ len = strlen(test_str) + 1;
+ EXPECT_EQ(memcmp(test_str, buf, len), 0);
+}
+
TEST_F(tls, pollin)
{
char const *test_str = "test_poll";