ut/blob: reload bs and verify xattr in blob_persist test
This patch adds better check if the xattr was removed. It will identify potential bugs when first md sync takes precedence over the second md sync. As per suggestion in https://review.spdk.io/gerrit/c/spdk/spdk/+/774/6/test/unit/lib/blob/blob.c/blob_ut.c#7655 Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I463f2455614ef11cc1512dc2fb1972ba1f024337 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1109 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
682e7c1719
commit
f422548ea7
@ -7583,6 +7583,23 @@ blob_persist(void)
|
||||
SPDK_CU_ASSERT_FATAL(blob->active.num_pages + blob->active.num_extent_pages == page_count_clear);
|
||||
SPDK_CU_ASSERT_FATAL(blob->clean.num_pages + blob->clean.num_extent_pages == page_count_clear);
|
||||
SPDK_CU_ASSERT_FATAL(spdk_bit_array_count_set(bs->used_md_pages) == page_count_clear);
|
||||
|
||||
/* Reload bs and re-open blob to verify that xattr was not persisted. */
|
||||
spdk_blob_close(blob, blob_op_complete, NULL);
|
||||
poll_threads();
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
|
||||
ut_bs_reload(&bs, NULL);
|
||||
|
||||
spdk_bs_open_blob(bs, blobid, blob_op_with_handle_complete, NULL);
|
||||
poll_threads();
|
||||
CU_ASSERT(g_bserrno == 0);
|
||||
SPDK_CU_ASSERT_FATAL(g_blob != NULL);
|
||||
blob = g_blob;
|
||||
|
||||
rc = spdk_blob_get_xattr_value(blob, "large_xattr", (const void **)&xattr, &xattr_length);
|
||||
SPDK_CU_ASSERT_FATAL(rc == -ENOENT);
|
||||
|
||||
poller_iterations++;
|
||||
/* Stop at high iteration count to prevent infinite loop.
|
||||
* This value should be enough for first md sync to complete in any case. */
|
||||
|
Loading…
Reference in New Issue
Block a user