UT/bdev/bdev.c:add bdev_compare test

Signed-off-by: Kuo Kan <kuox.kan@intel.com>
Change-Id: Ib3d33cefc78f543e157ea552ee88f0514e305054
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15795
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
KanKuo 2022-12-07 13:59:52 +08:00 committed by David Ko
parent 225b3b96ff
commit eb6a2d872d

View File

@ -3608,7 +3608,7 @@ _bdev_compare(bool emulated)
compare_iov.iov_base = aa_buf;
compare_iov.iov_len = sizeof(aa_buf);
/* 1. successful compare */
/* 1. successful comparev */
expected_io = ut_alloc_expected_io(expected_io_type, offset, num_blocks, 0);
TAILQ_INSERT_TAIL(&g_bdev_ut_channel->expected_io, expected_io, link);
@ -3622,7 +3622,7 @@ _bdev_compare(bool emulated)
CU_ASSERT(g_io_done == true);
CU_ASSERT(g_io_status == SPDK_BDEV_IO_STATUS_SUCCESS);
/* 2. miscompare */
/* 2. miscompare comparev */
expected_io = ut_alloc_expected_io(expected_io_type, offset, num_blocks, 0);
TAILQ_INSERT_TAIL(&g_bdev_ut_channel->expected_io, expected_io, link);
@ -3636,6 +3636,35 @@ _bdev_compare(bool emulated)
CU_ASSERT(g_io_done == true);
CU_ASSERT(g_io_status == SPDK_BDEV_IO_STATUS_MISCOMPARE);
/* 3. successful compare */
g_io_exp_status = SPDK_BDEV_IO_STATUS_SUCCESS;
expected_io = ut_alloc_expected_io(expected_io_type, offset, num_blocks, 0);
TAILQ_INSERT_TAIL(&g_bdev_ut_channel->expected_io, expected_io, link);
g_io_done = false;
g_compare_read_buf = aa_buf;
g_compare_read_buf_len = sizeof(aa_buf);
rc = spdk_bdev_compare_blocks(desc, ioch, aa_buf, offset, num_blocks, io_done, NULL);
CU_ASSERT_EQUAL(rc, 0);
num_completed = stub_complete_io(1);
CU_ASSERT_EQUAL(num_completed, 1);
CU_ASSERT(g_io_done == true);
CU_ASSERT(g_io_status == SPDK_BDEV_IO_STATUS_SUCCESS);
/* 4. miscompare compare */
expected_io = ut_alloc_expected_io(expected_io_type, offset, num_blocks, 0);
TAILQ_INSERT_TAIL(&g_bdev_ut_channel->expected_io, expected_io, link);
g_io_done = false;
g_compare_read_buf = bb_buf;
g_compare_read_buf_len = sizeof(bb_buf);
rc = spdk_bdev_compare_blocks(desc, ioch, aa_buf, offset, num_blocks, io_done, NULL);
CU_ASSERT_EQUAL(rc, 0);
num_completed = stub_complete_io(1);
CU_ASSERT_EQUAL(num_completed, 1);
CU_ASSERT(g_io_done == true);
CU_ASSERT(g_io_status == SPDK_BDEV_IO_STATUS_MISCOMPARE);
spdk_put_io_channel(ioch);
spdk_bdev_close(desc);
free_bdev(bdev);