Commit f97f8032 authored by KanKuox123's avatar KanKuox123 Committed by Tomasz Zawadzki
Browse files

UT/sock:add test case for the struct sock_net_impl



Signed-off-by: default avatarKanKuox123 <kuox.kan@intel.com>
Change-Id: Ib7394b553544bd07b7ac5b14922e752b60ca0d43
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13528


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarDong Yi <dongx.yi@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
parent 256bfe76
Loading
Loading
Loading
Loading
+58 −0
Original line number Diff line number Diff line
@@ -200,6 +200,12 @@ spdk_ut_sock_writev(struct spdk_sock *_sock, struct iovec *iov, int iovcnt)
	return iov[0].iov_len;
}

static int
spdk_ut_sock_flush(struct spdk_sock *sock)
{
	return -1;
}

static int
spdk_ut_sock_set_recvlowat(struct spdk_sock *_sock, int nbytes)
{
@@ -313,6 +319,7 @@ static struct spdk_net_impl g_ut_net_impl = {
	.recv		= spdk_ut_sock_recv,
	.readv		= spdk_ut_sock_readv,
	.writev		= spdk_ut_sock_writev,
	.flush          = spdk_ut_sock_flush,
	.set_recvlowat	= spdk_ut_sock_set_recvlowat,
	.set_recvbuf	= spdk_ut_sock_set_recvbuf,
	.set_sendbuf	= spdk_ut_sock_set_sendbuf,
@@ -339,6 +346,7 @@ _sock(const char *ip, int port, char *impl_name)
	char buffer[64];
	ssize_t bytes_read, bytes_written;
	struct iovec iov;
	int nbytes;
	int rc;

	listen_sock = spdk_sock_listen(ip, port, impl_name);
@@ -362,6 +370,36 @@ _sock(const char *ip, int port, char *impl_name)
	CU_ASSERT(spdk_sock_is_connected(client_sock) == true);
	CU_ASSERT(spdk_sock_is_connected(server_sock) == true);

	/* Test spdk_sock_set_default_impl */
	rc = spdk_sock_set_default_impl(impl_name);
	CU_ASSERT(rc == 0);
	CU_ASSERT(g_default_impl != NULL);

	/* Test spdk_sock_set_default_impl when name is NULL */
	rc = spdk_sock_set_default_impl(NULL);
	CU_ASSERT(rc == -1);
	CU_ASSERT(errno == EINVAL);

	/* Test spdk_sock_is _ipv6 */
	CU_ASSERT(!spdk_sock_is_ipv6(client_sock));

	/* Test spdk_sock_is _ipv4 */
	CU_ASSERT(spdk_sock_is_ipv4(client_sock));

	nbytes = 2048;

	/* Test spdk_sock_set_recvlowat */
	rc = spdk_sock_set_recvlowat(client_sock, nbytes);
	CU_ASSERT(rc == 0);

	/* Test spdk_sock_set_recvbuf */
	rc = spdk_sock_set_recvbuf(client_sock, nbytes);
	CU_ASSERT(rc == 0);

	/* Test spdk_sock_set_sendbuf */
	rc = spdk_sock_set_sendbuf(client_sock, nbytes);
	CU_ASSERT(rc == 0);

	/* Test spdk_sock_recv */
	iov.iov_base = test_string;
	iov.iov_len = 7;
@@ -451,6 +489,7 @@ static void
_sock_group(const char *ip, int port, char *impl_name)
{
	struct spdk_sock_group *group;
	struct spdk_sock_group *hint;
	struct spdk_sock *listen_sock;
	struct spdk_sock *server_sock;
	struct spdk_sock *client_sock;
@@ -477,6 +516,9 @@ _sock_group(const char *ip, int port, char *impl_name)
	group = spdk_sock_group_create(NULL);
	SPDK_CU_ASSERT_FATAL(group != NULL);

	hint = spdk_sock_group_create(NULL);
	SPDK_CU_ASSERT_FATAL(hint != NULL);

	/* pass null cb_fn */
	rc = spdk_sock_group_add_sock(group, server_sock, NULL, NULL);
	CU_ASSERT(rc == -1);
@@ -518,6 +560,10 @@ _sock_group(const char *ip, int port, char *impl_name)
	CU_ASSERT(client_sock == NULL);
	CU_ASSERT(rc == 0);

	/* Test get_optimal_sock_group */
	rc = spdk_sock_get_optimal_sock_group(server_sock, &group, hint);
	CU_ASSERT(rc == 0);

	/* Try to close sock_group while it still has sockets. */
	rc = spdk_sock_group_close(&group);
	CU_ASSERT(rc == -1);
@@ -535,6 +581,10 @@ _sock_group(const char *ip, int port, char *impl_name)
	CU_ASSERT(group == NULL);
	CU_ASSERT(rc == 0);

	rc = spdk_sock_group_close(&hint);
	CU_ASSERT(hint == NULL);
	CU_ASSERT(rc == 0);

	rc = spdk_sock_close(&server_sock);
	CU_ASSERT(server_sock == NULL);
	CU_ASSERT(rc == 0);
@@ -753,6 +803,14 @@ _sock_close(const char *ip, int port, char *impl_name)
	spdk_sock_writev_async(server_sock, req2);
	CU_ASSERT(cb_arg2 == false);

	/* Test spdk_sock_flush when sock is NULL */
	rc = spdk_sock_flush(NULL);
	CU_ASSERT(rc == -EBADF);

	/* Test spdk_sock_flush when sock is not NULL */
	rc = spdk_sock_flush(client_sock);
	CU_ASSERT(rc == 0);

	/* Poll the socket so the writev_async's send. The first one's
	 * callback will close the socket. */
	spdk_sock_group_poll(group);