struct spdk_bdev *g_base_bdev = NULL;
struct spdk_bdev_io *g_io = NULL;
struct spdk_io_channel *g_ch = NULL;
-struct lvol_task *g_task = NULL;
static struct spdk_bdev g_bdev = {};
static struct spdk_lvol_store *g_lvol_store = NULL;
bool g_examine_done = false;
bool g_bdev_alias_already_exists = false;
bool g_lvs_with_name_already_exists = false;
-bool g_lvol_deletable = true;
int
spdk_bdev_alias_add(struct spdk_bdev *bdev, const char *alias)
{
struct spdk_bdev_alias *tmp;
- CU_ASSERT(alias != NULL);
CU_ASSERT(bdev != NULL);
TAILQ_FOREACH(tmp, &bdev->aliases, tailq) {
+ SPDK_CU_ASSERT_FATAL(alias != NULL);
if (strncmp(alias, tmp->alias, SPDK_LVOL_NAME_MAX) == 0) {
TAILQ_REMOVE(&bdev->aliases, tmp, tailq);
free(tmp->alias);
bool
spdk_lvol_deletable(struct spdk_lvol *lvol)
{
- return g_lvol_deletable;
+ return true;
}
void
void
spdk_bdev_io_complete(struct spdk_bdev_io *bdev_io, enum spdk_bdev_io_status status)
{
+ bdev_io->internal.status = status;
}
struct spdk_io_channel *spdk_lvol_get_io_channel(struct spdk_lvol *lvol)
void *payload, uint64_t offset, uint64_t length,
spdk_blob_op_complete cb_fn, void *cb_arg)
{
+ CU_ASSERT(blob == NULL);
+ CU_ASSERT(channel == g_ch);
+ CU_ASSERT(offset == g_io->u.bdev.offset_blocks);
+ CU_ASSERT(length == g_io->u.bdev.num_blocks);
+ cb_fn(cb_arg, 0);
}
void
void *payload, uint64_t offset, uint64_t length,
spdk_blob_op_complete cb_fn, void *cb_arg)
{
+ CU_ASSERT(blob == NULL);
+ CU_ASSERT(channel == g_ch);
+ CU_ASSERT(offset == g_io->u.bdev.offset_blocks);
+ CU_ASSERT(length == g_io->u.bdev.num_blocks);
+ cb_fn(cb_arg, 0);
}
void
CU_ASSERT(channel == g_ch);
CU_ASSERT(offset == g_io->u.bdev.offset_blocks);
CU_ASSERT(length == g_io->u.bdev.num_blocks);
+ cb_fn(cb_arg, 0);
}
void
CU_ASSERT(channel == g_ch);
CU_ASSERT(offset == g_io->u.bdev.offset_blocks);
CU_ASSERT(length == g_io->u.bdev.num_blocks);
+ cb_fn(cb_arg, 0);
}
void
CU_ASSERT(channel == g_ch);
CU_ASSERT(offset == g_io->u.bdev.offset_blocks);
CU_ASSERT(length == g_io->u.bdev.num_blocks);
+ cb_fn(cb_arg, 0);
}
void
CU_ASSERT(channel == g_ch);
CU_ASSERT(offset == g_io->u.bdev.offset_blocks);
CU_ASSERT(length == g_io->u.bdev.num_blocks);
+ cb_fn(cb_arg, 0);
}
void
CU_ASSERT(g_lvolerrno == 0);
lvol2 = g_lvol;
- /* Unsuccessful lvols destroy */
- g_lvol_deletable = false;
- vbdev_lvol_destroy(lvol, lvol_store_op_complete, NULL);
- CU_ASSERT(g_lvol != NULL);
- CU_ASSERT(g_lvserrno == -EPERM);
-
- g_lvol_deletable = true;
/* Successful lvols destroy */
vbdev_lvol_destroy(lvol, lvol_store_op_complete, NULL);
CU_ASSERT(g_lvol == NULL);
static void
ut_lvol_read_write(void)
{
- g_io = calloc(1, sizeof(struct spdk_bdev_io) + sizeof(struct lvol_task));
+ g_io = calloc(1, sizeof(struct spdk_bdev_io));
SPDK_CU_ASSERT_FATAL(g_io != NULL);
g_base_bdev = calloc(1, sizeof(struct spdk_bdev));
SPDK_CU_ASSERT_FATAL(g_base_bdev != NULL);
g_lvol = calloc(1, sizeof(struct spdk_lvol));
SPDK_CU_ASSERT_FATAL(g_lvol != NULL);
- g_task = (struct lvol_task *)g_io->driver_ctx;
g_io->bdev = g_base_bdev;
g_io->bdev->ctxt = g_lvol;
g_io->u.bdev.offset_blocks = 20;
g_io->u.bdev.num_blocks = 20;
lvol_read(g_ch, g_io);
- CU_ASSERT(g_task->status == SPDK_BDEV_IO_STATUS_SUCCESS);
+ CU_ASSERT(g_io->internal.status = SPDK_BDEV_IO_STATUS_SUCCESS);
lvol_write(g_lvol, g_ch, g_io);
- CU_ASSERT(g_task->status == SPDK_BDEV_IO_STATUS_SUCCESS);
+ CU_ASSERT(g_io->internal.status = SPDK_BDEV_IO_STATUS_SUCCESS);
free(g_io);
free(g_base_bdev);
ut_vbdev_lvol_submit_request(void)
{
struct spdk_lvol request_lvol = {};
- g_io = calloc(1, sizeof(struct spdk_bdev_io) + sizeof(struct lvol_task));
+ g_io = calloc(1, sizeof(struct spdk_bdev_io));
SPDK_CU_ASSERT_FATAL(g_io != NULL);
g_base_bdev = calloc(1, sizeof(struct spdk_bdev));
SPDK_CU_ASSERT_FATAL(g_base_bdev != NULL);
- g_task = (struct lvol_task *)g_io->driver_ctx;
g_io->bdev = g_base_bdev;
g_io->type = SPDK_BDEV_IO_TYPE_READ;
CU_pSuite suite = NULL;
unsigned int num_failures;
- if (CU_initialize_registry() != CUE_SUCCESS) {
- return CU_get_error();
- }
+ CU_set_error_action(CUEA_ABORT);
+ CU_initialize_registry();
suite = CU_add_suite("lvol", NULL, NULL);
- if (suite == NULL) {
- CU_cleanup_registry();
- return CU_get_error();
- }
- 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_snapshot", ut_lvol_snapshot) == NULL ||
- CU_add_test(suite, "ut_lvol_clone", ut_lvol_clone) == NULL ||
- CU_add_test(suite, "ut_lvs_destroy", ut_lvs_destroy) == NULL ||
- CU_add_test(suite, "ut_lvs_unload", ut_lvs_unload) == NULL ||
- CU_add_test(suite, "ut_lvol_resize", ut_lvol_resize) == NULL ||
- CU_add_test(suite, "ut_lvol_set_read_only", ut_lvol_set_read_only) == NULL ||
- CU_add_test(suite, "lvol_hotremove", ut_lvol_hotremove) == NULL ||
- CU_add_test(suite, "ut_vbdev_lvol_get_io_channel", ut_vbdev_lvol_get_io_channel) == NULL ||
- CU_add_test(suite, "ut_vbdev_lvol_io_type_supported", ut_vbdev_lvol_io_type_supported) == NULL ||
- CU_add_test(suite, "ut_lvol_read_write", ut_lvol_read_write) == NULL ||
- CU_add_test(suite, "ut_vbdev_lvol_submit_request", ut_vbdev_lvol_submit_request) == NULL ||
- CU_add_test(suite, "lvol_examine", ut_lvol_examine) == NULL ||
- CU_add_test(suite, "ut_lvol_rename", ut_lvol_rename) == NULL ||
- CU_add_test(suite, "ut_lvol_destroy", ut_lvol_destroy) == NULL ||
- CU_add_test(suite, "ut_lvs_rename", ut_lvs_rename) == NULL
- ) {
- CU_cleanup_registry();
- return CU_get_error();
- }
+ CU_ADD_TEST(suite, ut_lvs_init);
+ CU_ADD_TEST(suite, ut_lvol_init);
+ CU_ADD_TEST(suite, ut_lvol_snapshot);
+ CU_ADD_TEST(suite, ut_lvol_clone);
+ CU_ADD_TEST(suite, ut_lvs_destroy);
+ CU_ADD_TEST(suite, ut_lvs_unload);
+ CU_ADD_TEST(suite, ut_lvol_resize);
+ CU_ADD_TEST(suite, ut_lvol_set_read_only);
+ CU_ADD_TEST(suite, ut_lvol_hotremove);
+ CU_ADD_TEST(suite, ut_vbdev_lvol_get_io_channel);
+ CU_ADD_TEST(suite, ut_vbdev_lvol_io_type_supported);
+ CU_ADD_TEST(suite, ut_lvol_read_write);
+ CU_ADD_TEST(suite, ut_vbdev_lvol_submit_request);
+ CU_ADD_TEST(suite, ut_lvol_examine);
+ CU_ADD_TEST(suite, ut_lvol_rename);
+ CU_ADD_TEST(suite, ut_lvol_destroy);
+ CU_ADD_TEST(suite, ut_lvs_rename);
CU_basic_set_mode(CU_BRM_VERBOSE);
CU_basic_run_tests();