From 2e73b5c7fb6caa7b40d516a60ee55219846a2e12 Mon Sep 17 00:00:00 2001 From: Artur Paszkiewicz Date: Tue, 20 Sep 2022 10:39:04 +0200 Subject: [PATCH] test/bdevio: refactor two tests Refactor blockdev_write_read_offset_plus_nbytes_equals_bdev_size() and blockdev_write_read_offset_plus_nbytes_gt_bdev_size() to use blockdev_write_read() similar to how it's done in other tests. Change-Id: Iba853a0df1facd88ce7c206163386f6c8a9c7c1b Signed-off-by: Artur Paszkiewicz Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14714 Tested-by: SPDK CI Jenkins Reviewed-by: Tomasz Zawadzki Reviewed-by: Ben Walker --- test/bdev/bdevio/bdevio.c | 67 ++++++++++++--------------------------- 1 file changed, 21 insertions(+), 46 deletions(-) diff --git a/test/bdev/bdevio/bdevio.c b/test/bdev/bdevio/bdevio.c index 7ea4e5789..2b296f600 100644 --- a/test/bdev/bdevio/bdevio.c +++ b/test/bdev/bdevio/bdevio.c @@ -831,52 +831,37 @@ blockdev_write_read_invalid_size(void) static void blockdev_write_read_offset_plus_nbytes_equals_bdev_size(void) { - struct io_target *target; - struct spdk_bdev *bdev; - char *tx_buf = NULL; - char *rx_buf = NULL; + uint32_t data_length; uint64_t offset; - uint32_t block_size; - int rc; - - target = g_current_io_target; - bdev = target->bdev; - - block_size = spdk_bdev_get_block_size(bdev); + int pattern; + int expected_rc; + struct io_target *target = g_current_io_target; + struct spdk_bdev *bdev = target->bdev; + uint32_t block_size = spdk_bdev_get_block_size(bdev); + data_length = block_size; + CU_ASSERT_TRUE(data_length < BUFFER_SIZE); /* The start offset has been set to a marginal value * such that offset + nbytes == Total size of * blockdev. */ offset = ((spdk_bdev_get_num_blocks(bdev) - 1) * block_size); + pattern = 0xA3; + /* Params are valid, hence the expected return value + * of write and read for all blockdevs is 0. */ + expected_rc = 0; - initialize_buffer(&tx_buf, 0xA3, block_size); - initialize_buffer(&rx_buf, 0, block_size); - - blockdev_write(target, tx_buf, offset, block_size, 0); - CU_ASSERT_EQUAL(g_completion_success, true); - - blockdev_read(target, rx_buf, offset, block_size, 0); - CU_ASSERT_EQUAL(g_completion_success, true); - - rc = blockdev_write_read_data_match(rx_buf, tx_buf, block_size); - /* Assert the write by comparing it with values read - * from each blockdev */ - CU_ASSERT_EQUAL(rc, 0); - - spdk_free(tx_buf); - spdk_free(rx_buf); + blockdev_write_read(data_length, 0, pattern, offset, expected_rc, 0); } static void blockdev_write_read_offset_plus_nbytes_gt_bdev_size(void) { - struct io_target *target = g_current_io_target; - struct spdk_bdev *bdev = target->bdev; - char *tx_buf = NULL; - char *rx_buf = NULL; - int data_length; + uint32_t data_length; uint64_t offset; int pattern; + int expected_rc; + struct io_target *target = g_current_io_target; + struct spdk_bdev *bdev = target->bdev; uint32_t block_size = spdk_bdev_get_block_size(bdev); /* Tests the overflow condition of the blockdevs. */ @@ -884,25 +869,15 @@ blockdev_write_read_offset_plus_nbytes_gt_bdev_size(void) CU_ASSERT_TRUE(data_length < BUFFER_SIZE); pattern = 0xA3; - target = g_current_io_target; - bdev = target->bdev; - /* The start offset has been set to a valid value * but offset + nbytes is greater than the Total size * of the blockdev. The test should fail. */ offset = (spdk_bdev_get_num_blocks(bdev) - 1) * block_size; + /* Params are invalid, hence the expected return value + * of write and read for all blockdevs is < 0 */ + expected_rc = -1; - initialize_buffer(&tx_buf, pattern, data_length); - initialize_buffer(&rx_buf, 0, data_length); - - blockdev_write(target, tx_buf, offset, data_length, 0); - CU_ASSERT_EQUAL(g_completion_success, false); - - blockdev_read(target, rx_buf, offset, data_length, 0); - CU_ASSERT_EQUAL(g_completion_success, false); - - spdk_free(tx_buf); - spdk_free(rx_buf); + blockdev_write_read(data_length, 0, pattern, offset, expected_rc, 0); } static void