ut/sock: Add get/set_opts unit tests for posix sockets
Signed-off-by: Evgeniy Kochetov <evgeniik@mellanox.com> Change-Id: If53c1da8501c0c2abf8443643cfc8198c3254811 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/611 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
74b184e73a
commit
9bcc052bfe
@ -869,6 +869,87 @@ ut_sock_impl_get_set_opts(void)
|
|||||||
CU_ASSERT(errno == ENOTSUP);
|
CU_ASSERT(errno == ENOTSUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
posix_sock_impl_get_set_opts(void)
|
||||||
|
{
|
||||||
|
int rc;
|
||||||
|
size_t len = 0;
|
||||||
|
struct spdk_sock_impl_opts opts = {};
|
||||||
|
struct spdk_sock_impl_opts long_opts[2];
|
||||||
|
|
||||||
|
rc = spdk_sock_impl_get_opts("posix", NULL, &len);
|
||||||
|
CU_ASSERT(rc == -1);
|
||||||
|
CU_ASSERT(errno == EINVAL);
|
||||||
|
rc = spdk_sock_impl_get_opts("posix", &opts, NULL);
|
||||||
|
CU_ASSERT(rc == -1);
|
||||||
|
CU_ASSERT(errno == EINVAL);
|
||||||
|
|
||||||
|
/* Check default opts */
|
||||||
|
len = sizeof(opts);
|
||||||
|
rc = spdk_sock_impl_get_opts("posix", &opts, &len);
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
CU_ASSERT(len == sizeof(opts));
|
||||||
|
CU_ASSERT(opts.recv_buf_size == MIN_SO_RCVBUF_SIZE);
|
||||||
|
CU_ASSERT(opts.send_buf_size == MIN_SO_SNDBUF_SIZE);
|
||||||
|
|
||||||
|
/* Try to request more opts */
|
||||||
|
len = sizeof(long_opts);
|
||||||
|
rc = spdk_sock_impl_get_opts("posix", long_opts, &len);
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
CU_ASSERT(len == sizeof(opts));
|
||||||
|
|
||||||
|
/* Try to request zero opts */
|
||||||
|
len = 0;
|
||||||
|
rc = spdk_sock_impl_get_opts("posix", &opts, &len);
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
CU_ASSERT(len == 0);
|
||||||
|
|
||||||
|
rc = spdk_sock_impl_set_opts("posix", NULL, len);
|
||||||
|
CU_ASSERT(rc == -1);
|
||||||
|
CU_ASSERT(errno == EINVAL);
|
||||||
|
|
||||||
|
opts.recv_buf_size = 16;
|
||||||
|
opts.send_buf_size = 4;
|
||||||
|
rc = spdk_sock_impl_set_opts("posix", &opts, sizeof(opts));
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
len = sizeof(opts);
|
||||||
|
memset(&opts, 0, sizeof(opts));
|
||||||
|
rc = spdk_sock_impl_get_opts("posix", &opts, &len);
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
CU_ASSERT(opts.recv_buf_size == 16);
|
||||||
|
CU_ASSERT(opts.send_buf_size == 4);
|
||||||
|
|
||||||
|
/* Try to set more opts */
|
||||||
|
long_opts[0].recv_buf_size = 4;
|
||||||
|
long_opts[0].send_buf_size = 6;
|
||||||
|
long_opts[1].recv_buf_size = 0;
|
||||||
|
long_opts[1].send_buf_size = 0;
|
||||||
|
rc = spdk_sock_impl_set_opts("posix", long_opts, sizeof(long_opts));
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
|
||||||
|
/* Try to set less opts. Opts in the end should be untouched */
|
||||||
|
opts.recv_buf_size = 5;
|
||||||
|
opts.send_buf_size = 10;
|
||||||
|
rc = spdk_sock_impl_set_opts("posix", &opts, sizeof(opts.recv_buf_size));
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
len = sizeof(opts);
|
||||||
|
memset(&opts, 0, sizeof(opts));
|
||||||
|
rc = spdk_sock_impl_get_opts("posix", &opts, &len);
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
CU_ASSERT(opts.recv_buf_size == 5);
|
||||||
|
CU_ASSERT(opts.send_buf_size == 6);
|
||||||
|
|
||||||
|
/* Try to set partial option. It should not be changed */
|
||||||
|
opts.recv_buf_size = 1000;
|
||||||
|
rc = spdk_sock_impl_set_opts("posix", &opts, 1);
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
len = sizeof(opts);
|
||||||
|
memset(&opts, 0, sizeof(opts));
|
||||||
|
rc = spdk_sock_impl_get_opts("posix", &opts, &len);
|
||||||
|
CU_ASSERT(rc == 0);
|
||||||
|
CU_ASSERT(opts.recv_buf_size == 5);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
@ -888,6 +969,7 @@ main(int argc, char **argv)
|
|||||||
CU_ADD_TEST(suite, _posix_sock_close);
|
CU_ADD_TEST(suite, _posix_sock_close);
|
||||||
CU_ADD_TEST(suite, sock_get_default_opts);
|
CU_ADD_TEST(suite, sock_get_default_opts);
|
||||||
CU_ADD_TEST(suite, ut_sock_impl_get_set_opts);
|
CU_ADD_TEST(suite, ut_sock_impl_get_set_opts);
|
||||||
|
CU_ADD_TEST(suite, posix_sock_impl_get_set_opts);
|
||||||
|
|
||||||
CU_basic_set_mode(CU_BRM_VERBOSE);
|
CU_basic_set_mode(CU_BRM_VERBOSE);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user