Re: [RFC PATCH v1 3/3] vsock_test: POLLIN + SO_RCVLOWAT test.
From: Stefano Garzarella <sgarzare@redhat.com>
Date: 2022-07-19 13:38:17
Also in:
kvm, lkml, virtualization
From: Stefano Garzarella <sgarzare@redhat.com>
Date: 2022-07-19 13:38:17
Also in:
kvm, lkml, virtualization
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 <redacted> --- 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 *optclose(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()?