unit/lvol: unit tests for hot remove functionality

Signed-off-by: Maciej Szwed <maciej.szwed@intel.com>
Change-Id: I58c14300b900709b20fed245cb4a9ae8d1677918
Reviewed-on: https://review.gerrithub.io/378577
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Maciej Szwed 2017-09-21 13:48:52 +02:00 committed by Jim Harris
parent 99ba2b25e6
commit 67169cd707

View File

@ -125,6 +125,7 @@ spdk_lvs_unload(struct spdk_lvol_store *lvs, spdk_lvs_op_complete cb_fn,
struct spdk_lvol_store_req *req = cb_arg;
free(req);
free(lvs);
g_lvol_store = NULL;
return 0;
}
@ -360,6 +361,35 @@ ut_lvol_init(void)
}
static void
ut_lvol_hotremove(void)
{
int rc = 0;
lvol_store_initialize_fail = false;
lvol_store_initialize_cb_fail = false;
lvol_already_opened = false;
g_bs_dev = NULL;
/* Lvol store is succesfully created */
rc = vbdev_lvs_create(&g_bdev, lvol_store_op_with_handle_complete, NULL);
CU_ASSERT(rc == 0);
CU_ASSERT(g_lvserrno == 0);
CU_ASSERT(g_lvol_store != NULL);
CU_ASSERT(g_bs_dev != NULL);
/* Hot remove callback with NULL - stability check */
vbdev_lvs_hotremove_cb(NULL);
/* Hot remove lvs on bdev removal */
vbdev_lvs_hotremove_cb(&g_bdev);
CU_ASSERT(g_lvol_store == NULL);
CU_ASSERT(TAILQ_EMPTY(&g_spdk_lvol_pairs));
}
static void
ut_lvol_resize(void)
{
@ -496,7 +526,8 @@ int main(int argc, char **argv)
if (
CU_add_test(suite, "ut_lvs_init", ut_lvs_init) == NULL ||
CU_add_test(suite, "ut_lvol_init", ut_lvol_init) == NULL ||
CU_add_test(suite, "ut_lvol_resize", ut_lvol_resize) == NULL
CU_add_test(suite, "ut_lvol_resize", ut_lvol_resize) == NULL ||
CU_add_test(suite, "lvol_hotremove", ut_lvol_hotremove) == NULL
) {
CU_cleanup_registry();
return CU_get_error();