From a1591e23c4104133d74b33b387163db1f3f543cd Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Thu, 5 Mar 2020 10:08:50 -0500 Subject: [PATCH] ut/blob: verify success of spdk_bs_create_snapshot() on power failure This change verifies that not only it is possible to open the snapshot, but also the spdk_bs_create_snapshot() reported success. Signed-off-by: Tomasz Zawadzki Change-Id: Ifb7fcc91802c838710f1f9be41090057268a5900 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1262 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- test/unit/lib/blob/blob.c/blob_ut.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/unit/lib/blob/blob.c/blob_ut.c b/test/unit/lib/blob/blob.c/blob_ut.c index 50b95c9a7..e12efed90 100644 --- a/test/unit/lib/blob/blob.c/blob_ut.c +++ b/test/unit/lib/blob/blob.c/blob_ut.c @@ -5331,6 +5331,7 @@ blob_create_snapshot_power_failure(void) spdk_blob_id ids[3] = {}; int rc; bool created = false; + int create_snapshot_bserrno = -1; thresholds.general_threshold = 1; while (!created) { @@ -5359,6 +5360,7 @@ blob_create_snapshot_power_failure(void) /* Create snapshot */ spdk_bs_create_snapshot(bs, blobid, NULL, blob_op_with_id_complete, NULL); poll_threads(); + create_snapshot_bserrno = g_bserrno; snapshotid = g_blobid; SPDK_CU_ASSERT_FATAL(spdk_bit_array_get(bs->used_clusters, 1)); SPDK_CU_ASSERT_FATAL(!spdk_bit_array_get(bs->used_clusters, 11)); @@ -5399,7 +5401,9 @@ blob_create_snapshot_power_failure(void) spdk_blob_close(snapshot, blob_op_complete, NULL); poll_threads(); CU_ASSERT(g_bserrno == 0); - created = true; + if (create_snapshot_bserrno == 0) { + created = true; + } } else { CU_ASSERT(spdk_blob_get_parent_snapshot(bs, blobid) == SPDK_BLOBID_INVALID); SPDK_CU_ASSERT_FATAL(spdk_blob_is_thin_provisioned(blob) == false);