Commit 8e2e3f3c authored by Artur Paszkiewicz's avatar Artur Paszkiewicz Committed by Tomasz Zawadzki
Browse files

ut/raid5f: validate io metadata



Change-Id: I394506638943ec5552ea8ca1c3655fd6b6913f46
Signed-off-by: default avatarArtur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18153


Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKrzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
parent 8224738a
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -246,6 +246,7 @@ struct raid_io_info {
	void *src_md_buf;
	void *dest_md_buf;
	size_t buf_size;
	size_t buf_md_size;
	void *parity_buf;
	void *reference_parity;
	size_t parity_buf_size;
@@ -666,6 +667,11 @@ test_raid5f_write_request(struct raid_io_info *io_info)
		offset = i * strip_len;

		memcpy(io_info->dest_buf + offset, io_info->src_buf + offset, strip_len);
		if (io_info->dest_md_buf) {
			strip_len = raid_bdev->strip_size * raid_bdev->bdev.md_len;
			offset = i * strip_len;
			memcpy(io_info->dest_md_buf + offset, io_info->src_md_buf + offset, strip_len);
		}
	}

	if (io_info->status == SPDK_BDEV_IO_STATUS_SUCCESS) {
@@ -776,6 +782,7 @@ init_io_info(struct raid_io_info *io_info, struct raid5f_info *r5f_info,
	io_info->src_md_buf = src_md_buf;
	io_info->dest_md_buf = dest_md_buf;
	io_info->buf_size = buf_size;
	io_info->buf_md_size = buf_md_size;
	io_info->status = SPDK_BDEV_IO_STATUS_PENDING;

	TAILQ_INIT(&io_info->bdev_io_queue);
@@ -883,11 +890,11 @@ test_raid5f_submit_rw_request(struct raid5f_info *r5f_info, struct raid_bdev_io_
		CU_FAIL_FATAL("unsupported io_type");
	}

	assert(io_info.status == SPDK_BDEV_IO_STATUS_SUCCESS);
	assert(memcmp(io_info.src_buf, io_info.dest_buf, io_info.buf_size) == 0);

	CU_ASSERT(io_info.status == SPDK_BDEV_IO_STATUS_SUCCESS);
	CU_ASSERT(memcmp(io_info.src_buf, io_info.dest_buf, io_info.buf_size) == 0);
	if (io_info.buf_md_size) {
		CU_ASSERT(memcmp(io_info.src_md_buf, io_info.dest_md_buf, io_info.buf_md_size) == 0);
	}

	deinit_io_info(&io_info);
}