ut/vhost: initialize vhost libraries

Vhost library was not initialized as part of the test,
it will become necessary later in the series.

Suite startup/cleanup have no matching CUnit test case,
so only assert() can be used. Rather than CU_ASSERT().

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: Ieaa3d2f6b6f1899105362181f285f585ff9724d7
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10945
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Tomasz Zawadzki 2021-12-29 11:25:22 +01:00
parent 7ac08606e9
commit 69820927da

View File

@ -38,7 +38,7 @@
#include "spdk_cunit.h"
#include "spdk/thread.h"
#include "spdk_internal/mock.h"
#include "common/lib/test_env.c"
#include "common/lib/ut_multithread.c"
#include "unit/lib/json_mock.c"
#include "vhost/vhost.c"
@ -95,6 +95,17 @@ DEFINE_STUB(rte_vhost_get_vring_base_from_inflight, int,
DEFINE_STUB(rte_vhost_extern_callback_register, int,
(int vid, struct rte_vhost_user_extern_ops const *const ops, void *ctx), 0);
/* rte_vhost_user.c shutdowns vhost_user sessions in a separte pthread */
DECLARE_WRAPPER(pthread_create, int, (pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void *), void *arg));
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *),
void *arg)
{
start_routine(arg);
return 0;
}
DEFINE_STUB(pthread_detach, int, (pthread_t thread), 0);
void *
spdk_call_unaffinitized(void *cb(void *arg), void *arg)
{
@ -104,9 +115,54 @@ spdk_call_unaffinitized(void *cb(void *arg), void *arg)
static struct spdk_vhost_dev_backend g_vdev_backend;
static struct spdk_vhost_user_dev_backend g_vdev_user_backend;
static bool g_init_fail;
static void
init_cb(int rc)
{
g_init_fail = rc;
}
static int
test_setup(void)
{
allocate_cores(1);
allocate_threads(1);
set_thread(0);
g_init_fail = true;
spdk_vhost_scsi_init(init_cb);
assert(g_init_fail == false);
g_init_fail = true;
spdk_vhost_blk_init(init_cb);
assert(g_init_fail == false);
return 0;
}
static bool g_fini_fail;
static void
fini_cb(void)
{
g_fini_fail = false;
}
static int
test_cleanup(void)
{
g_fini_fail = true;
spdk_vhost_scsi_fini(fini_cb);
poll_threads();
assert(g_fini_fail == false);
g_fini_fail = true;
spdk_vhost_blk_fini(fini_cb);
poll_threads();
assert(g_fini_fail == false);
free_threads();
free_cores();
return 0;
}
@ -582,7 +638,7 @@ main(int argc, char **argv)
CU_set_error_action(CUEA_ABORT);
CU_initialize_registry();
suite = CU_add_suite("vhost_suite", test_setup, NULL);
suite = CU_add_suite("vhost_suite", test_setup, test_cleanup);
CU_ADD_TEST(suite, desc_to_iov_test);
CU_ADD_TEST(suite, create_controller_test);