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 <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14714
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Artur Paszkiewicz 2022-09-20 10:39:04 +02:00 committed by Tomasz Zawadzki
parent 65e08d1265
commit 2e73b5c7fb

View File

@ -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