ut/blob: add setup/clean for blob creation
Added new setup/cleanup functions for a suite of unit tests that use a particular blob through out the tests. This simplifies the contents of particular UTs, and brings forward focus of each UT. Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Ib7d69b90fcbe8e6a0ba303475fcbaeb90fa110a7 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/945 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
104d4c0a57
commit
aba9841212
@ -1139,13 +1139,11 @@ static void
|
||||
blob_write(void)
|
||||
{
|
||||
struct spdk_blob_store *bs = g_bs;
|
||||
struct spdk_blob *blob;
|
||||
struct spdk_blob *blob = g_blob;
|
||||
struct spdk_io_channel *channel;
|
||||
uint64_t pages_per_cluster;
|
||||
uint8_t payload[10 * 4096];
|
||||
|
||||
blob = ut_blob_create_and_open(bs, NULL);
|
||||
|
||||
pages_per_cluster = spdk_bs_get_cluster_size(bs) / spdk_bs_get_page_size(bs);
|
||||
|
||||
channel = spdk_bs_alloc_io_channel(bs);
|
||||
@ -1187,15 +1185,13 @@ blob_write(void)
|
||||
|
||||
spdk_bs_free_io_channel(channel);
|
||||
poll_threads();
|
||||
|
||||
ut_blob_close_and_delete(bs, blob);
|
||||
}
|
||||
|
||||
static void
|
||||
blob_read(void)
|
||||
{
|
||||
struct spdk_blob_store *bs = g_bs;
|
||||
struct spdk_blob *blob;
|
||||
struct spdk_blob *blob = g_blob;
|
||||
struct spdk_io_channel *channel;
|
||||
uint64_t pages_per_cluster;
|
||||
uint8_t payload[10 * 4096];
|
||||
@ -1205,8 +1201,6 @@ blob_read(void)
|
||||
channel = spdk_bs_alloc_io_channel(bs);
|
||||
CU_ASSERT(channel != NULL);
|
||||
|
||||
blob = ut_blob_create_and_open(bs, NULL);
|
||||
|
||||
/* Read from a blob with 0 size */
|
||||
spdk_blob_io_read(blob, channel, payload, 0, 1, blob_op_complete, NULL);
|
||||
poll_threads();
|
||||
@ -1243,15 +1237,13 @@ blob_read(void)
|
||||
|
||||
spdk_bs_free_io_channel(channel);
|
||||
poll_threads();
|
||||
|
||||
ut_blob_close_and_delete(bs, blob);
|
||||
}
|
||||
|
||||
static void
|
||||
blob_rw_verify(void)
|
||||
{
|
||||
struct spdk_blob_store *bs = g_bs;
|
||||
struct spdk_blob *blob;
|
||||
struct spdk_blob *blob = g_blob;
|
||||
struct spdk_io_channel *channel;
|
||||
uint8_t payload_read[10 * 4096];
|
||||
uint8_t payload_write[10 * 4096];
|
||||
@ -1259,8 +1251,6 @@ blob_rw_verify(void)
|
||||
channel = spdk_bs_alloc_io_channel(bs);
|
||||
CU_ASSERT(channel != NULL);
|
||||
|
||||
blob = ut_blob_create_and_open(bs, NULL);
|
||||
|
||||
spdk_blob_resize(blob, 32, blob_op_complete, NULL);
|
||||
poll_threads();
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
@ -1278,8 +1268,6 @@ blob_rw_verify(void)
|
||||
|
||||
spdk_bs_free_io_channel(channel);
|
||||
poll_threads();
|
||||
|
||||
ut_blob_close_and_delete(bs, blob);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1372,7 +1360,7 @@ static void
|
||||
blob_rw_verify_iov_nomem(void)
|
||||
{
|
||||
struct spdk_blob_store *bs = g_bs;
|
||||
struct spdk_blob *blob;
|
||||
struct spdk_blob *blob = g_blob;
|
||||
struct spdk_io_channel *channel;
|
||||
uint8_t payload_write[10 * 4096];
|
||||
struct iovec iov_write[3];
|
||||
@ -1381,8 +1369,6 @@ blob_rw_verify_iov_nomem(void)
|
||||
channel = spdk_bs_alloc_io_channel(bs);
|
||||
CU_ASSERT(channel != NULL);
|
||||
|
||||
blob = ut_blob_create_and_open(bs, NULL);
|
||||
|
||||
spdk_blob_resize(blob, 2, blob_op_complete, NULL);
|
||||
poll_threads();
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
@ -1407,15 +1393,13 @@ blob_rw_verify_iov_nomem(void)
|
||||
|
||||
spdk_bs_free_io_channel(channel);
|
||||
poll_threads();
|
||||
|
||||
ut_blob_close_and_delete(bs, blob);
|
||||
}
|
||||
|
||||
static void
|
||||
blob_rw_iov_read_only(void)
|
||||
{
|
||||
struct spdk_blob_store *bs = g_bs;
|
||||
struct spdk_blob *blob;
|
||||
struct spdk_blob *blob = g_blob;
|
||||
struct spdk_io_channel *channel;
|
||||
uint8_t payload_read[4096];
|
||||
uint8_t payload_write[4096];
|
||||
@ -1425,8 +1409,6 @@ blob_rw_iov_read_only(void)
|
||||
channel = spdk_bs_alloc_io_channel(bs);
|
||||
CU_ASSERT(channel != NULL);
|
||||
|
||||
blob = ut_blob_create_and_open(bs, NULL);
|
||||
|
||||
spdk_blob_resize(blob, 2, blob_op_complete, NULL);
|
||||
poll_threads();
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
@ -1448,8 +1430,6 @@ blob_rw_iov_read_only(void)
|
||||
|
||||
spdk_bs_free_io_channel(channel);
|
||||
poll_threads();
|
||||
|
||||
ut_blob_close_and_delete(bs, blob);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1920,8 +1900,8 @@ static void
|
||||
blob_xattr(void)
|
||||
{
|
||||
struct spdk_blob_store *bs = g_bs;
|
||||
struct spdk_blob *blob;
|
||||
spdk_blob_id blobid;
|
||||
struct spdk_blob *blob = g_blob;
|
||||
spdk_blob_id blobid = spdk_blob_get_id(blob);
|
||||
uint64_t length;
|
||||
int rc;
|
||||
const char *name1, *name2;
|
||||
@ -1929,9 +1909,6 @@ blob_xattr(void)
|
||||
size_t value_len;
|
||||
struct spdk_xattr_names *names;
|
||||
|
||||
blob = ut_blob_create_and_open(bs, NULL);
|
||||
blobid = spdk_blob_get_id(blob);
|
||||
|
||||
/* Test that set_xattr fails if md_ro flag is set. */
|
||||
blob->md_ro = true;
|
||||
rc = spdk_blob_set_xattr(blob, "name", "log.txt", strlen("log.txt") + 1);
|
||||
@ -2029,8 +2006,6 @@ blob_xattr(void)
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
CU_ASSERT((blob->invalid_flags & SPDK_BLOB_INTERNAL_XATTR) == 0);
|
||||
|
||||
ut_blob_close_and_delete(bs, blob);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -2964,7 +2939,7 @@ blob_dirty_shutdown(void)
|
||||
int index;
|
||||
struct spdk_blob_store *bs = g_bs;
|
||||
spdk_blob_id blobid1, blobid2, blobid3;
|
||||
struct spdk_blob *blob;
|
||||
struct spdk_blob *blob = g_blob;
|
||||
uint64_t length;
|
||||
uint64_t free_clusters;
|
||||
const void *value;
|
||||
@ -2974,7 +2949,6 @@ blob_dirty_shutdown(void)
|
||||
struct spdk_blob_opts blob_opts;
|
||||
|
||||
/* Create first blob */
|
||||
blob = ut_blob_create_and_open(bs, NULL);
|
||||
blobid1 = spdk_blob_get_id(blob);
|
||||
|
||||
/* Set some xattrs */
|
||||
@ -3221,8 +3195,6 @@ blob_dirty_shutdown(void)
|
||||
blob = g_blob;
|
||||
|
||||
CU_ASSERT(free_clusters == spdk_bs_free_cluster_count(bs));
|
||||
|
||||
ut_blob_close_and_delete(bs, blob);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -6478,9 +6450,29 @@ ut_blob_close_and_delete(struct spdk_blob_store *bs, struct spdk_blob *blob)
|
||||
g_bserrno = -1;
|
||||
}
|
||||
|
||||
static void
|
||||
suite_blob_setup(void)
|
||||
{
|
||||
suite_bs_setup();
|
||||
CU_ASSERT(g_bs != NULL);
|
||||
|
||||
g_blob = ut_blob_create_and_open(g_bs, NULL);
|
||||
CU_ASSERT(g_blob != NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
suite_blob_cleanup(void)
|
||||
{
|
||||
ut_blob_close_and_delete(g_bs, g_blob);
|
||||
CU_ASSERT(g_blob == NULL);
|
||||
|
||||
suite_bs_cleanup();
|
||||
CU_ASSERT(g_bs == NULL);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
CU_pSuite suite, suite_bs;
|
||||
CU_pSuite suite, suite_bs, suite_blob;
|
||||
unsigned int num_failures;
|
||||
|
||||
CU_set_error_action(CUEA_ABORT);
|
||||
@ -6489,6 +6481,8 @@ int main(int argc, char **argv)
|
||||
suite = CU_add_suite("blob", NULL, NULL);
|
||||
suite_bs = CU_add_suite_with_setup_and_teardown("blob_bs", NULL, NULL,
|
||||
suite_bs_setup, suite_bs_cleanup);
|
||||
suite_blob = CU_add_suite_with_setup_and_teardown("blob_blob", NULL, NULL,
|
||||
suite_blob_setup, suite_blob_cleanup);
|
||||
|
||||
CU_ADD_TEST(suite, blob_init);
|
||||
CU_ADD_TEST(suite_bs, blob_open);
|
||||
@ -6503,15 +6497,15 @@ int main(int argc, char **argv)
|
||||
CU_ADD_TEST(suite, blob_read_only);
|
||||
CU_ADD_TEST(suite_bs, channel_ops);
|
||||
CU_ADD_TEST(suite_bs, blob_super);
|
||||
CU_ADD_TEST(suite_bs, blob_write);
|
||||
CU_ADD_TEST(suite_bs, blob_read);
|
||||
CU_ADD_TEST(suite_bs, blob_rw_verify);
|
||||
CU_ADD_TEST(suite_blob, blob_write);
|
||||
CU_ADD_TEST(suite_blob, blob_read);
|
||||
CU_ADD_TEST(suite_blob, blob_rw_verify);
|
||||
CU_ADD_TEST(suite_bs, blob_rw_verify_iov);
|
||||
CU_ADD_TEST(suite_bs, blob_rw_verify_iov_nomem);
|
||||
CU_ADD_TEST(suite_bs, blob_rw_iov_read_only);
|
||||
CU_ADD_TEST(suite_blob, blob_rw_verify_iov_nomem);
|
||||
CU_ADD_TEST(suite_blob, blob_rw_iov_read_only);
|
||||
CU_ADD_TEST(suite_bs, blob_unmap);
|
||||
CU_ADD_TEST(suite_bs, blob_iter);
|
||||
CU_ADD_TEST(suite_bs, blob_xattr);
|
||||
CU_ADD_TEST(suite_blob, blob_xattr);
|
||||
CU_ADD_TEST(suite, bs_load);
|
||||
CU_ADD_TEST(suite_bs, bs_load_pending_removal);
|
||||
CU_ADD_TEST(suite, bs_load_custom_cluster_size);
|
||||
@ -6525,7 +6519,7 @@ int main(int argc, char **argv)
|
||||
CU_ADD_TEST(suite, blob_serialize);
|
||||
CU_ADD_TEST(suite_bs, blob_crc);
|
||||
CU_ADD_TEST(suite, super_block_crc);
|
||||
CU_ADD_TEST(suite_bs, blob_dirty_shutdown);
|
||||
CU_ADD_TEST(suite_blob, blob_dirty_shutdown);
|
||||
CU_ADD_TEST(suite_bs, blob_flags);
|
||||
CU_ADD_TEST(suite_bs, bs_version);
|
||||
CU_ADD_TEST(suite_bs, blob_set_xattrs);
|
||||
|
Loading…
Reference in New Issue
Block a user