buf = (char *)malloc(st.st_size);
 
        EXPECT_EQ(send(self->fd, test_str, to_send, 0), to_send);
-       EXPECT_EQ(recv(self->cfd, recv_buf, to_send, 0), to_send);
+       EXPECT_EQ(recv(self->cfd, recv_buf, to_send, MSG_WAITALL), to_send);
        EXPECT_EQ(memcmp(test_str, recv_buf, to_send), 0);
 
        EXPECT_GE(sendfile(self->fd, filefd, 0, st.st_size), 0);
-       EXPECT_EQ(recv(self->cfd, buf, st.st_size, 0), st.st_size);
+       EXPECT_EQ(recv(self->cfd, buf, st.st_size, MSG_WAITALL), st.st_size);
 }
 
 TEST_F(tls, recv_max)
        EXPECT_EQ(send(self->fd, test_str, send_len, MSG_MORE), send_len);
        EXPECT_EQ(recv(self->cfd, buf, send_len, MSG_DONTWAIT), -1);
        EXPECT_EQ(send(self->fd, test_str, send_len, 0), send_len);
-       EXPECT_EQ(recv(self->cfd, buf, send_len * 2, MSG_DONTWAIT),
+       EXPECT_EQ(recv(self->cfd, buf, send_len * 2, MSG_WAITALL),
                  send_len * 2);
        EXPECT_EQ(memcmp(buf, test_str, send_len), 0);
 }
        msg.msg_iov = &vec;
        msg.msg_iovlen = 1;
        EXPECT_EQ(sendmsg(self->fd, &msg, 0), send_len);
-       EXPECT_EQ(recv(self->cfd, buf, send_len, 0), send_len);
+       EXPECT_EQ(recv(self->cfd, buf, send_len, MSG_WAITALL), send_len);
        EXPECT_EQ(memcmp(buf, test_str, send_len), 0);
 }
 
        EXPECT_GE(splice(p[0], NULL, self->fd, NULL, 8000, 0), 0);
        EXPECT_GE(write(p2[1], mem_send + 8000, 8000), 0);
        EXPECT_GE(splice(p2[0], NULL, self->fd, NULL, 8000, 0), 0);
-       EXPECT_GE(recv(self->cfd, mem_recv, send_len, 0), 0);
+       EXPECT_EQ(recv(self->cfd, mem_recv, send_len, MSG_WAITALL), send_len);
        EXPECT_EQ(memcmp(mem_send, mem_recv, send_len), 0);
 }
 
        EXPECT_GE(send(self->fd, send_mem, send_len, 0), 0);
        EXPECT_GE(send(self->fd, send_mem, send_len, 0), 0);
        memset(recv_mem, 0, total_len);
-       EXPECT_EQ(recv(self->cfd, recv_mem, total_len, 0), total_len);
+       EXPECT_EQ(recv(self->cfd, recv_mem, total_len, MSG_WAITALL), total_len);
 
        EXPECT_EQ(memcmp(send_mem, recv_mem, send_len), 0);
        EXPECT_EQ(memcmp(send_mem, recv_mem + send_len, send_len), 0);
 
        EXPECT_EQ(poll(&fd, 1, 20), 1);
        EXPECT_EQ(fd.revents & POLLIN, 1);
-       EXPECT_EQ(recv(self->cfd, buf, send_len, 0), send_len);
+       EXPECT_EQ(recv(self->cfd, buf, send_len, MSG_WAITALL), send_len);
        /* Test timing out */
        EXPECT_EQ(poll(&fd, 1, 20), 0);
 }
        /* Set timeout to inf. secs */
        EXPECT_EQ(poll(&fd, 1, -1), 1);
        EXPECT_EQ(fd.revents & POLLIN, 1);
-       EXPECT_EQ(recv(self->cfd, recv_mem, send_len, 0), send_len);
+       EXPECT_EQ(recv(self->cfd, recv_mem, send_len, MSG_WAITALL), send_len);
 }
 
 TEST_F(tls, blocking)
        EXPECT_EQ(recv(self->cfd, buf, send_len, 0), -1);
 
        vec.iov_base = buf;
-       EXPECT_EQ(recvmsg(self->cfd, &msg, 0), send_len);
+       EXPECT_EQ(recvmsg(self->cfd, &msg, MSG_WAITALL), send_len);
        cmsg = CMSG_FIRSTHDR(&msg);
        EXPECT_NE(cmsg, NULL);
        EXPECT_EQ(cmsg->cmsg_level, SOL_TLS);