Commit 0e115c45 authored by Arseny Krasnov's avatar Arseny Krasnov Committed by Michael S. Tsirkin
Browse files

vsock_test: update message bounds test for MSG_EOR



Set 'MSG_EOR' in one of message sent, check that 'MSG_EOR'
is visible in corresponding message at receiver.

Signed-off-by: default avatarArseny Krasnov <arseny.krasnov@kaspersky.com>
Reviewed-by: default avatarStefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20210903123321.3273866-1-arseny.krasnov@kaspersky.com


Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 8fc92b7c
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -282,6 +282,7 @@ static void test_stream_msg_peek_server(const struct test_opts *opts)
}

#define MESSAGES_CNT 7
#define MSG_EOR_IDX (MESSAGES_CNT / 2)
static void test_seqpacket_msg_bounds_client(const struct test_opts *opts)
{
	int fd;
@@ -294,7 +295,7 @@ static void test_seqpacket_msg_bounds_client(const struct test_opts *opts)

	/* Send several messages, one with MSG_EOR flag */
	for (int i = 0; i < MESSAGES_CNT; i++)
		send_byte(fd, 1, 0);
		send_byte(fd, 1, (i == MSG_EOR_IDX) ? MSG_EOR : 0);

	control_writeln("SENDDONE");
	close(fd);
@@ -324,6 +325,11 @@ static void test_seqpacket_msg_bounds_server(const struct test_opts *opts)
			perror("message bound violated");
			exit(EXIT_FAILURE);
		}

		if ((i == MSG_EOR_IDX) ^ !!(msg.msg_flags & MSG_EOR)) {
			perror("MSG_EOR");
			exit(EXIT_FAILURE);
		}
	}

	close(fd);