Stefano Garzarella
2022-Jul-19 12:52 UTC
[RFC PATCH v1 3/3] vsock_test: POLLIN + SO_RCVLOWAT test.
On Mon, Jul 18, 2022 at 08:19:06AM +0000, Arseniy Krasnov wrote:>This adds test to check, that when poll() returns POLLIN and >POLLRDNORM bits, next read call won't block. > >Signed-off-by: Arseniy Krasnov <AVKrasnov at sberdevices.ru> >--- > tools/testing/vsock/vsock_test.c | 90 ++++++++++++++++++++++++++++++++ > 1 file changed, 90 insertions(+) > >diff --git a/tools/testing/vsock/vsock_test.c b/tools/testing/vsock/vsock_test.c >index dc577461afc2..8e394443eaf6 100644 >--- a/tools/testing/vsock/vsock_test.c >+++ b/tools/testing/vsock/vsock_test.c >@@ -18,6 +18,7 @@ > #include <sys/socket.h> > #include <time.h> > #include <sys/mman.h> >+#include <poll.h> > > #include "timeout.h" > #include "control.h" >@@ -596,6 +597,90 @@ static void test_seqpacket_invalid_rec_buffer_server(const struct test_opts *opt > close(fd); > } > >+static void test_stream_poll_rcvlowat_server(const struct test_opts *opts) >+{ >+#define RCVLOWAT_BUF_SIZE 128 >+ int fd; >+ int i; >+ >+ fd = vsock_stream_accept(VMADDR_CID_ANY, 1234, NULL); >+ if (fd < 0) { >+ perror("accept"); >+ exit(EXIT_FAILURE); >+ } >+ >+ /* Send 1 byte. */ >+ send_byte(fd, 1, 0); >+ >+ control_writeln("SRVSENT"); >+ >+ /* Just empirically delay value. */ >+ sleep(4);Why we need this sleep()?