]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/spdk/test/unit/lib/bdev/vbdev_lvol.c/vbdev_lvol_ut.c
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / test / unit / lib / bdev / vbdev_lvol.c / vbdev_lvol_ut.c
index 4811d8147a0512dddcc832c6d7b870da222d783a..a963bd3b7412e6ab60b152cf8cd0526b8aea291e 100644 (file)
@@ -51,7 +51,6 @@ struct lvol_store_bdev *g_lvs_bdev = NULL;
 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;
@@ -61,7 +60,6 @@ bool lvol_already_opened = false;
 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)
@@ -90,10 +88,10 @@ spdk_bdev_alias_del(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);
@@ -446,7 +444,7 @@ spdk_lvol_close(struct spdk_lvol *lvol, spdk_lvol_op_complete cb_fn, void *cb_ar
 bool
 spdk_lvol_deletable(struct spdk_lvol *lvol)
 {
-       return g_lvol_deletable;
+       return true;
 }
 
 void
@@ -468,6 +466,7 @@ spdk_lvol_destroy(struct spdk_lvol *lvol, spdk_lvol_op_complete cb_fn, void *cb_
 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)
@@ -487,6 +486,11 @@ spdk_blob_io_read(struct spdk_blob *blob, struct spdk_io_channel *channel,
                  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
@@ -494,6 +498,11 @@ spdk_blob_io_write(struct spdk_blob *blob, struct spdk_io_channel *channel,
                   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
@@ -504,6 +513,7 @@ spdk_blob_io_unmap(struct spdk_blob *blob, struct spdk_io_channel *channel,
        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
@@ -514,6 +524,7 @@ spdk_blob_io_write_zeroes(struct spdk_blob *blob, struct spdk_io_channel *channe
        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
@@ -525,6 +536,7 @@ spdk_blob_io_writev(struct spdk_blob *blob, struct spdk_io_channel *channel,
        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
@@ -536,6 +548,7 @@ spdk_blob_io_readv(struct spdk_blob *blob, struct spdk_io_channel *channel,
        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
@@ -1034,13 +1047,6 @@ ut_lvol_destroy(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);
@@ -1302,24 +1308,23 @@ ut_vbdev_lvol_io_type_supported(void)
 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);
@@ -1330,11 +1335,10 @@ static void
 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;
@@ -1405,38 +1409,28 @@ int main(int argc, char **argv)
        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();