TLS test cases recv_partial & recv_peek_large_buf_mult_recs expect to
receive a certain amount of data and then compare it against known
strings using memcmp. To prevent recvmsg() from returning lesser than
expected number of bytes (compared in memcmp), MSG_WAITALL needs to be
passed in recvmsg().

Signed-off-by: Vakul Garg <vakul.g...@nxp.com>
---
 tools/testing/selftests/net/tls.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/tools/testing/selftests/net/tls.c 
b/tools/testing/selftests/net/tls.c
index fac68d710f35..ff68ed19c0ef 100644
--- a/tools/testing/selftests/net/tls.c
+++ b/tools/testing/selftests/net/tls.c
@@ -452,10 +452,12 @@ TEST_F(tls, recv_partial)
 
        memset(recv_mem, 0, sizeof(recv_mem));
        EXPECT_EQ(send(self->fd, test_str, send_len, 0), send_len);
-       EXPECT_NE(recv(self->cfd, recv_mem, strlen(test_str_first), 0), -1);
+       EXPECT_NE(recv(self->cfd, recv_mem, strlen(test_str_first),
+                      MSG_WAITALL), -1);
        EXPECT_EQ(memcmp(test_str_first, recv_mem, strlen(test_str_first)), 0);
        memset(recv_mem, 0, sizeof(recv_mem));
-       EXPECT_NE(recv(self->cfd, recv_mem, strlen(test_str_second), 0), -1);
+       EXPECT_NE(recv(self->cfd, recv_mem, strlen(test_str_second),
+                      MSG_WAITALL), -1);
        EXPECT_EQ(memcmp(test_str_second, recv_mem, strlen(test_str_second)),
                  0);
 }
@@ -565,10 +567,10 @@ TEST_F(tls, recv_peek_large_buf_mult_recs)
        len = strlen(test_str_second) + 1;
        EXPECT_EQ(send(self->fd, test_str_second, len, 0), len);
 
-       len = sizeof(buf);
+       len = strlen(test_str) + 1;
        memset(buf, 0, len);
-       EXPECT_NE(recv(self->cfd, buf, len, MSG_PEEK), -1);
-
+       EXPECT_NE((len = recv(self->cfd, buf, len,
+                             MSG_PEEK | MSG_WAITALL)), -1);
        len = strlen(test_str) + 1;
        EXPECT_EQ(memcmp(test_str, buf, len), 0);
 }
-- 
2.13.6

Reply via email to