ut/vbdev_lvol: create and destroy vbdev_lvs on lvol tests

Previously on all ut_lvol_* tests, creation of lvs was mocked.
There is no reason to keep it that way instead of creating
actual lvs using same code that is unit tested.

Change-Id: Id0a7816da0c195d596a6da516471b3f46bb4e475
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.gerrithub.io/419562
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Maciej Szwed <maciej.szwed@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
This commit is contained in:
Tomasz Zawadzki 2018-07-17 10:54:59 -04:00 committed by Ben Walker
parent 63bd96d08d
commit 70ec42ad6a

View File

@ -720,31 +720,21 @@ ut_lvs_destroy(void)
static void static void
ut_lvol_init(void) ut_lvol_init(void)
{ {
struct spdk_lvol_store *lvs;
int sz = 10; int sz = 10;
int rc; int rc;
g_lvs = calloc(1, sizeof(*g_lvs)); /* Lvol store is succesfully created */
SPDK_CU_ASSERT_FATAL(g_lvs != NULL); rc = vbdev_lvs_create(&g_bdev, "lvs", 0, lvol_store_op_with_handle_complete, NULL);
TAILQ_INIT(&g_lvs->lvols); CU_ASSERT(rc == 0);
g_lvs_bdev = calloc(1, sizeof(*g_lvs_bdev)); CU_ASSERT(g_lvserrno == 0);
SPDK_CU_ASSERT_FATAL(g_lvs_bdev != NULL); SPDK_CU_ASSERT_FATAL(g_lvol_store != NULL);
g_base_bdev = calloc(1, sizeof(*g_base_bdev)); CU_ASSERT(g_lvol_store->bs_dev != NULL);
SPDK_CU_ASSERT_FATAL(g_base_bdev != NULL); lvs = g_lvol_store;
/* Assign name to lvs */
snprintf(g_lvs->name, sizeof(g_lvs->name), "UNIT_TEST_LVS_NAME");
SPDK_CU_ASSERT_FATAL(g_lvs->name != NULL);
g_lvs_bdev->lvs = g_lvs;
g_lvs_bdev->bdev = g_base_bdev;
spdk_uuid_generate(&g_lvs->uuid);
TAILQ_INSERT_TAIL(&g_spdk_lvol_pairs, g_lvs_bdev, lvol_stores);
/* Successful lvol create */ /* Successful lvol create */
g_lvolerrno = -1; g_lvolerrno = -1;
rc = vbdev_lvol_create(g_lvs, "lvol", sz, false, vbdev_lvol_create_complete, NULL); rc = vbdev_lvol_create(lvs, "lvol", sz, false, vbdev_lvol_create_complete, NULL);
SPDK_CU_ASSERT_FATAL(rc == 0); SPDK_CU_ASSERT_FATAL(rc == 0);
CU_ASSERT(g_lvol != NULL); CU_ASSERT(g_lvol != NULL);
CU_ASSERT(g_lvolerrno == 0); CU_ASSERT(g_lvolerrno == 0);
@ -753,42 +743,31 @@ ut_lvol_init(void)
vbdev_lvol_destruct(g_lvol); vbdev_lvol_destruct(g_lvol);
CU_ASSERT(g_lvol == NULL); CU_ASSERT(g_lvol == NULL);
TAILQ_REMOVE(&g_spdk_lvol_pairs, g_lvs_bdev, lvol_stores); /* Destroy lvol store */
vbdev_lvs_destruct(lvs, lvol_store_op_complete, NULL);
free(g_lvs); CU_ASSERT(g_lvserrno == 0);
free(g_lvs_bdev); CU_ASSERT(g_lvol_store == NULL);
free(g_base_bdev);
} }
static void static void
ut_lvol_snapshot(void) ut_lvol_snapshot(void)
{ {
struct spdk_lvol_store *lvs;
int sz = 10; int sz = 10;
int rc; int rc;
struct spdk_lvol *lvol = NULL; struct spdk_lvol *lvol = NULL;
g_lvs = calloc(1, sizeof(*g_lvs)); /* Lvol store is succesfully created */
SPDK_CU_ASSERT_FATAL(g_lvs != NULL); rc = vbdev_lvs_create(&g_bdev, "lvs", 0, lvol_store_op_with_handle_complete, NULL);
TAILQ_INIT(&g_lvs->lvols); CU_ASSERT(rc == 0);
g_lvs_bdev = calloc(1, sizeof(*g_lvs_bdev)); CU_ASSERT(g_lvserrno == 0);
SPDK_CU_ASSERT_FATAL(g_lvs_bdev != NULL); SPDK_CU_ASSERT_FATAL(g_lvol_store != NULL);
g_base_bdev = calloc(1, sizeof(*g_base_bdev)); CU_ASSERT(g_lvol_store->bs_dev != NULL);
SPDK_CU_ASSERT_FATAL(g_base_bdev != NULL); lvs = g_lvol_store;
/* Assign name to lvs */
snprintf(g_lvs->name, sizeof(g_lvs->name), "UNIT_TEST_LVS_NAME");
SPDK_CU_ASSERT_FATAL(g_lvs->name != NULL);
g_lvs_bdev->lvs = g_lvs;
g_lvs_bdev->bdev = g_base_bdev;
spdk_uuid_generate(&g_lvs->uuid);
TAILQ_INSERT_TAIL(&g_spdk_lvol_pairs, g_lvs_bdev, lvol_stores);
/* Successful lvol create */ /* Successful lvol create */
g_lvolerrno = -1; g_lvolerrno = -1;
rc = vbdev_lvol_create(g_lvs, "lvol", sz, false, vbdev_lvol_create_complete, NULL); rc = vbdev_lvol_create(lvs, "lvol", sz, false, vbdev_lvol_create_complete, NULL);
SPDK_CU_ASSERT_FATAL(rc == 0); SPDK_CU_ASSERT_FATAL(rc == 0);
CU_ASSERT(g_lvol != NULL); CU_ASSERT(g_lvol != NULL);
CU_ASSERT(g_lvolerrno == 0); CU_ASSERT(g_lvolerrno == 0);
@ -810,44 +789,33 @@ ut_lvol_snapshot(void)
vbdev_lvol_destruct(g_lvol); vbdev_lvol_destruct(g_lvol);
CU_ASSERT(g_lvol == NULL); CU_ASSERT(g_lvol == NULL);
TAILQ_REMOVE(&g_spdk_lvol_pairs, g_lvs_bdev, lvol_stores); /* Destroy lvol store */
vbdev_lvs_destruct(lvs, lvol_store_op_complete, NULL);
free(g_lvs); CU_ASSERT(g_lvserrno == 0);
free(g_lvs_bdev); CU_ASSERT(g_lvol_store == NULL);
free(g_base_bdev);
} }
static void static void
ut_lvol_clone(void) ut_lvol_clone(void)
{ {
struct spdk_lvol_store *lvs;
int sz = 10; int sz = 10;
int rc; int rc;
struct spdk_lvol *lvol = NULL; struct spdk_lvol *lvol = NULL;
struct spdk_lvol *snap = NULL; struct spdk_lvol *snap = NULL;
struct spdk_lvol *clone = NULL; struct spdk_lvol *clone = NULL;
g_lvs = calloc(1, sizeof(*g_lvs)); /* Lvol store is succesfully created */
SPDK_CU_ASSERT_FATAL(g_lvs != NULL); rc = vbdev_lvs_create(&g_bdev, "lvs", 0, lvol_store_op_with_handle_complete, NULL);
TAILQ_INIT(&g_lvs->lvols); CU_ASSERT(rc == 0);
g_lvs_bdev = calloc(1, sizeof(*g_lvs_bdev)); CU_ASSERT(g_lvserrno == 0);
SPDK_CU_ASSERT_FATAL(g_lvs_bdev != NULL); SPDK_CU_ASSERT_FATAL(g_lvol_store != NULL);
g_base_bdev = calloc(1, sizeof(*g_base_bdev)); CU_ASSERT(g_lvol_store->bs_dev != NULL);
SPDK_CU_ASSERT_FATAL(g_base_bdev != NULL); lvs = g_lvol_store;
/* Assign name to lvs */
snprintf(g_lvs->name, sizeof(g_lvs->name), "UNIT_TEST_LVS_NAME");
SPDK_CU_ASSERT_FATAL(g_lvs->name != NULL);
g_lvs_bdev->lvs = g_lvs;
g_lvs_bdev->bdev = g_base_bdev;
spdk_uuid_generate(&g_lvs->uuid);
TAILQ_INSERT_TAIL(&g_spdk_lvol_pairs, g_lvs_bdev, lvol_stores);
/* Successful lvol create */ /* Successful lvol create */
g_lvolerrno = -1; g_lvolerrno = -1;
rc = vbdev_lvol_create(g_lvs, "lvol", sz, false, vbdev_lvol_create_complete, NULL); rc = vbdev_lvol_create(lvs, "lvol", sz, false, vbdev_lvol_create_complete, NULL);
SPDK_CU_ASSERT_FATAL(rc == 0); SPDK_CU_ASSERT_FATAL(rc == 0);
SPDK_CU_ASSERT_FATAL(g_lvol != NULL); SPDK_CU_ASSERT_FATAL(g_lvol != NULL);
CU_ASSERT(g_lvolerrno == 0); CU_ASSERT(g_lvolerrno == 0);
@ -886,11 +854,10 @@ ut_lvol_clone(void)
vbdev_lvol_destruct(g_lvol); vbdev_lvol_destruct(g_lvol);
CU_ASSERT(g_lvol == NULL); CU_ASSERT(g_lvol == NULL);
TAILQ_REMOVE(&g_spdk_lvol_pairs, g_lvs_bdev, lvol_stores); /* Destroy lvol store */
vbdev_lvs_destruct(lvs, lvol_store_op_complete, NULL);
free(g_lvs); CU_ASSERT(g_lvserrno == 0);
free(g_lvs_bdev); CU_ASSERT(g_lvol_store == NULL);
free(g_base_bdev);
} }
static void static void
@ -989,40 +956,30 @@ ut_lvol_examine(void)
static void static void
ut_lvol_rename(void) ut_lvol_rename(void)
{ {
struct spdk_lvol_store *lvs;
struct spdk_lvol *lvol; struct spdk_lvol *lvol;
struct spdk_lvol *lvol2; struct spdk_lvol *lvol2;
int sz = 10; int sz = 10;
int rc; int rc;
g_lvs = calloc(1, sizeof(*g_lvs)); /* Lvol store is succesfully created */
SPDK_CU_ASSERT_FATAL(g_lvs != NULL); rc = vbdev_lvs_create(&g_bdev, "lvs", 0, lvol_store_op_with_handle_complete, NULL);
TAILQ_INIT(&g_lvs->lvols); CU_ASSERT(rc == 0);
g_lvs_bdev = calloc(1, sizeof(*g_lvs_bdev)); CU_ASSERT(g_lvserrno == 0);
SPDK_CU_ASSERT_FATAL(g_lvs_bdev != NULL); SPDK_CU_ASSERT_FATAL(g_lvol_store != NULL);
g_base_bdev = calloc(1, sizeof(*g_base_bdev)); CU_ASSERT(g_lvol_store->bs_dev != NULL);
SPDK_CU_ASSERT_FATAL(g_base_bdev != NULL); lvs = g_lvol_store;
/* Assign name to lvs */
snprintf(g_lvs->name, sizeof(g_lvs->name), "UNIT_TEST_LVS_NAME");
SPDK_CU_ASSERT_FATAL(g_lvs->name != NULL);
g_lvs_bdev->lvs = g_lvs;
g_lvs_bdev->bdev = g_base_bdev;
spdk_uuid_generate(&g_lvs->uuid);
TAILQ_INSERT_TAIL(&g_spdk_lvol_pairs, g_lvs_bdev, lvol_stores);
/* Successful lvols create */ /* Successful lvols create */
g_lvolerrno = -1; g_lvolerrno = -1;
rc = vbdev_lvol_create(g_lvs, "lvol", sz, false, vbdev_lvol_create_complete, NULL); rc = vbdev_lvol_create(lvs, "lvol", sz, false, vbdev_lvol_create_complete, NULL);
SPDK_CU_ASSERT_FATAL(rc == 0); SPDK_CU_ASSERT_FATAL(rc == 0);
CU_ASSERT(g_lvol != NULL); CU_ASSERT(g_lvol != NULL);
CU_ASSERT(g_lvolerrno == 0); CU_ASSERT(g_lvolerrno == 0);
lvol = g_lvol; lvol = g_lvol;
g_lvolerrno = -1; g_lvolerrno = -1;
rc = vbdev_lvol_create(g_lvs, "lvol2", sz, false, vbdev_lvol_create_complete, NULL); rc = vbdev_lvol_create(lvs, "lvol2", sz, false, vbdev_lvol_create_complete, NULL);
SPDK_CU_ASSERT_FATAL(rc == 0); SPDK_CU_ASSERT_FATAL(rc == 0);
CU_ASSERT(g_lvol != NULL); CU_ASSERT(g_lvol != NULL);
CU_ASSERT(g_lvolerrno == 0); CU_ASSERT(g_lvolerrno == 0);
@ -1046,80 +1003,60 @@ ut_lvol_rename(void)
CU_ASSERT_STRING_EQUAL(lvol->name, "new_lvol_name"); CU_ASSERT_STRING_EQUAL(lvol->name, "new_lvol_name");
/* Successful lvols destruct */ /* Successful lvols destruct */
g_lvol = lvol; vbdev_lvol_destruct(lvol);
vbdev_lvol_destruct(g_lvol);
CU_ASSERT(g_lvol == NULL); CU_ASSERT(g_lvol == NULL);
g_lvol = lvol2; vbdev_lvol_destruct(lvol2);
vbdev_lvol_destruct(g_lvol);
CU_ASSERT(g_lvol == NULL); CU_ASSERT(g_lvol == NULL);
TAILQ_REMOVE(&g_spdk_lvol_pairs, g_lvs_bdev, lvol_stores); /* Destroy lvol store */
vbdev_lvs_destruct(lvs, lvol_store_op_complete, NULL);
free(g_lvs); CU_ASSERT(g_lvserrno == 0);
free(g_lvs_bdev); CU_ASSERT(g_lvol_store == NULL);
free(g_base_bdev);
} }
static void static void
ut_lvol_resize(void) ut_lvol_resize(void)
{ {
struct spdk_lvol_store *lvs;
struct spdk_lvol *lvol;
int sz = 10; int sz = 10;
int rc = 0; int rc = 0;
g_lvs = calloc(1, sizeof(*g_lvs)); /* Lvol store is succesfully created */
SPDK_CU_ASSERT_FATAL(g_lvs != NULL); rc = vbdev_lvs_create(&g_bdev, "lvs", 0, lvol_store_op_with_handle_complete, NULL);
CU_ASSERT(rc == 0);
TAILQ_INIT(&g_lvs->lvols); CU_ASSERT(g_lvserrno == 0);
SPDK_CU_ASSERT_FATAL(g_lvol_store != NULL);
g_lvs_bdev = calloc(1, sizeof(*g_lvs_bdev)); CU_ASSERT(g_lvol_store->bs_dev != NULL);
SPDK_CU_ASSERT_FATAL(g_lvs_bdev != NULL); lvs = g_lvol_store;
g_base_bdev = calloc(1, sizeof(*g_base_bdev));
SPDK_CU_ASSERT_FATAL(g_base_bdev != NULL);
/* Assign name to bdev */
g_base_bdev->name = strdup("UNIT_TEST_LVS_NAME/old_lvol");
SPDK_CU_ASSERT_FATAL(g_base_bdev->name != NULL);
g_lvs_bdev->lvs = g_lvs;
g_lvs_bdev->bdev = g_base_bdev;
spdk_uuid_generate(&g_lvs->uuid);
g_base_bdev->blocklen = 4096;
TAILQ_INSERT_TAIL(&g_spdk_lvol_pairs, g_lvs_bdev, lvol_stores);
/* Successful lvol create */ /* Successful lvol create */
g_lvolerrno = -1; g_lvolerrno = -1;
rc = vbdev_lvol_create(g_lvs, "lvol", sz, false, vbdev_lvol_create_complete, NULL); rc = vbdev_lvol_create(lvs, "lvol", sz, false, vbdev_lvol_create_complete, NULL);
CU_ASSERT(rc == 0); CU_ASSERT(rc == 0);
CU_ASSERT(g_lvolerrno == 0); CU_ASSERT(g_lvolerrno == 0);
SPDK_CU_ASSERT_FATAL(g_lvol != NULL); SPDK_CU_ASSERT_FATAL(g_lvol != NULL);
lvol = g_lvol;
g_base_bdev->ctxt = g_lvol;
free(g_base_bdev->name);
g_base_bdev->name = spdk_sprintf_alloc("%s", g_lvol->unique_id);
SPDK_CU_ASSERT_FATAL(g_base_bdev->name != NULL);
g_lvolerrno = -1;
/* Successful lvol resize */ /* Successful lvol resize */
vbdev_lvol_resize(g_lvol, 20, vbdev_lvol_resize_complete, NULL); g_lvolerrno = -1;
vbdev_lvol_resize(lvol, 20, vbdev_lvol_resize_complete, NULL);
CU_ASSERT(g_lvolerrno == 0); CU_ASSERT(g_lvolerrno == 0);
CU_ASSERT(g_base_bdev->blockcnt == 20 * g_cluster_size / g_base_bdev->blocklen); CU_ASSERT(lvol->bdev->blockcnt == 20 * g_cluster_size / lvol->bdev->blocklen);
/* Resize with NULL lvol */ /* Resize with NULL lvol */
vbdev_lvol_resize(NULL, 20, vbdev_lvol_resize_complete, NULL); vbdev_lvol_resize(NULL, 20, vbdev_lvol_resize_complete, NULL);
CU_ASSERT(g_lvolerrno != 0); CU_ASSERT(g_lvolerrno != 0);
/* Successful lvol destruct */ /* Successful lvol destruct */
vbdev_lvol_destruct(g_lvol); vbdev_lvol_destruct(lvol);
CU_ASSERT(g_lvol == NULL); CU_ASSERT(g_lvol == NULL);
TAILQ_REMOVE(&g_spdk_lvol_pairs, g_lvs_bdev, lvol_stores); /* Destroy lvol store */
free(g_lvs); vbdev_lvs_destruct(lvs, lvol_store_op_complete, NULL);
free(g_lvs_bdev); CU_ASSERT(g_lvserrno == 0);
free(g_base_bdev->name); CU_ASSERT(g_lvol_store == NULL);
free(g_base_bdev);
} }
static void static void