Commit 47494478 authored by Krzysztof Sprzaczkowski's avatar Krzysztof Sprzaczkowski Committed by Tomasz Zawadzki
Browse files

test/accel: DIF accel functional tests refactor



Modified the names of functions for allocating/freeing buffers
used during DIF tests.
Changed error handling for alloc/free from asserts to return errors.
Replaced the use of CU_ASSERT to SPDK_CU_ASSERT_FATAL macro.

Change-Id: I2bb8a84be1d989b272eca1bc61d47d57811b03b7
Signed-off-by: default avatarKrzysztof Sprzaczkowski <krzysztof.sprzaczkowski@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23041


Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
parent 4a90644c
Loading
Loading
Loading
Loading
+122 −112
Original line number Diff line number Diff line
@@ -111,7 +111,7 @@ accel_dif_error_validate(const uint32_t dif_flags,
}

static int
get_dif_verify_alloc_bufs(struct dif_task *task, uint32_t chained_count)
alloc_dif_verify_bufs(struct dif_task *task, uint32_t chained_count)
{
	int src_buff_len = g_xfer_size_bytes;
	uint32_t i = 0;
@@ -119,13 +119,17 @@ get_dif_verify_alloc_bufs(struct dif_task *task, uint32_t chained_count)
	assert(chained_count > 0);
	task->src_iovcnt = chained_count;
	task->src_iovs = calloc(task->src_iovcnt, sizeof(struct iovec));
	SPDK_CU_ASSERT_FATAL(task->src_iovs != NULL);
	if (spdk_unlikely(task->src_iovs == NULL)) {
		return -ENOMEM;
	}

	src_buff_len += (g_xfer_size_bytes / g_block_size_bytes) * g_md_size_bytes;

	for (i = 0; i < task->src_iovcnt; i++) {
		task->src_iovs[i].iov_base = spdk_dma_zmalloc(src_buff_len, 0, NULL);
		SPDK_CU_ASSERT_FATAL(task->src_iovs[i].iov_base != NULL);
		if (spdk_unlikely(task->src_iovs[i].iov_base == NULL)) {
			return -ENOMEM;
		}

		memset(task->src_iovs[i].iov_base, DATA_PATTERN, src_buff_len);
		task->src_iovs[i].iov_len = src_buff_len;
@@ -136,19 +140,19 @@ get_dif_verify_alloc_bufs(struct dif_task *task, uint32_t chained_count)
	return 0;
}

static int
get_dif_verify_free_bufs(struct dif_task *task)
static void
free_dif_verify_bufs(struct dif_task *task)
{
	uint32_t i = 0;

	SPDK_CU_ASSERT_FATAL(task->src_iovs != NULL);
	if (task->src_iovs != NULL) {
		for (i = 0; i < task->src_iovcnt; i++) {
		SPDK_CU_ASSERT_FATAL(task->src_iovs[i].iov_base != NULL);
			if (task->src_iovs[i].iov_base != NULL) {
				spdk_dma_free(task->src_iovs[i].iov_base);
			}
		}
		free(task->src_iovs);

	return 0;
	}
}

static int
@@ -224,7 +228,7 @@ free_dif_verify_copy_bufs(struct dif_task *task)
}

static int
get_dif_generate_copy_alloc_bufs(struct dif_task *task, uint32_t chained_count)
alloc_dif_generate_copy_bufs(struct dif_task *task, uint32_t chained_count)
{
	int src_buff_len = g_xfer_size_bytes;
	uint32_t transfer_size_with_md;
@@ -233,7 +237,9 @@ get_dif_generate_copy_alloc_bufs(struct dif_task *task, uint32_t chained_count)
	assert(chained_count > 0);
	task->dst_iovcnt = chained_count;
	task->dst_iovs = calloc(task->dst_iovcnt, sizeof(struct iovec));
	SPDK_CU_ASSERT_FATAL(task->dst_iovs != NULL);
	if (spdk_unlikely(task->dst_iovs == NULL)) {
		return -ENOMEM;
	}

	task->num_blocks = g_xfer_size_bytes / g_block_size_bytes;

@@ -242,7 +248,9 @@ get_dif_generate_copy_alloc_bufs(struct dif_task *task, uint32_t chained_count)

	for (i = 0; i < task->dst_iovcnt; i++) {
		task->dst_iovs[i].iov_base = spdk_dma_zmalloc(transfer_size_with_md, 0, NULL);
		SPDK_CU_ASSERT_FATAL(task->dst_iovs[i].iov_base != NULL);
		if (spdk_unlikely(task->dst_iovs[i].iov_base == NULL)) {
			return -ENOMEM;
		}

		memset(task->dst_iovs[i].iov_base, 0, transfer_size_with_md);
		task->dst_iovs[i].iov_len = transfer_size_with_md;
@@ -250,11 +258,15 @@ get_dif_generate_copy_alloc_bufs(struct dif_task *task, uint32_t chained_count)

	task->src_iovcnt = chained_count;
	task->src_iovs = calloc(task->src_iovcnt, sizeof(struct iovec));
	SPDK_CU_ASSERT_FATAL(task->src_iovs != NULL);
	if (spdk_unlikely(task->src_iovs == NULL)) {
		return -ENOMEM;
	}

	for (i = 0; i < task->src_iovcnt; i++) {
		task->src_iovs[i].iov_base = spdk_dma_zmalloc(src_buff_len, 0, NULL);
		SPDK_CU_ASSERT_FATAL(task->src_iovs[i].iov_base != NULL);
		if (spdk_unlikely(task->src_iovs[i].iov_base == NULL)) {
			return -ENOMEM;
		}

		memset(task->src_iovs[i].iov_base, DATA_PATTERN, src_buff_len);
		task->src_iovs[i].iov_len = src_buff_len;
@@ -263,26 +275,28 @@ get_dif_generate_copy_alloc_bufs(struct dif_task *task, uint32_t chained_count)
	return 0;
}

static int
get_dif_generate_copy_free_bufs(struct dif_task *task)
static void
free_dif_generate_copy_bufs(struct dif_task *task)
{
	uint32_t i = 0;

	SPDK_CU_ASSERT_FATAL(task->dst_iovs != NULL);
	if (task->dst_iovs != NULL) {
		for (i = 0; i < task->dst_iovcnt; i++) {
		SPDK_CU_ASSERT_FATAL(task->dst_iovs[i].iov_base != NULL);
			if (task->dst_iovs[i].iov_base != NULL) {
				spdk_dma_free(task->dst_iovs[i].iov_base);
			}
		}
		free(task->dst_iovs);
	}

	SPDK_CU_ASSERT_FATAL(task->src_iovs != NULL);
	if (task->src_iovs != NULL) {
		for (i = 0; i < task->src_iovcnt; i++) {
		SPDK_CU_ASSERT_FATAL(task->src_iovs[i].iov_base != NULL);
			if (task->src_iovs[i].iov_base != NULL) {
				spdk_dma_free(task->src_iovs[i].iov_base);
			}
		}
		free(task->src_iovs);

	return 0;
	}
}

static void
@@ -339,8 +353,8 @@ accel_dif_verify_op_dif_generated_do_check(uint32_t dif_flags)
	struct dif_task *task = &g_dif_task;
	int rc;

	rc = get_dif_verify_alloc_bufs(task, 1);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_verify_bufs(task, 1);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -353,10 +367,10 @@ accel_dif_verify_op_dif_generated_do_check(uint32_t dif_flags)
			       SPDK_DIF_FLAGS_APPTAG_CHECK |
			       SPDK_DIF_FLAGS_REFTAG_CHECK,
			       10, 0xFFFF, 20, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_generate(task->src_iovs, task->src_iovcnt, task->num_blocks, &task->dif_ctx);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_ctx_init(&task->dif_ctx,
			       g_block_size_bytes + g_md_size_bytes,
@@ -364,7 +378,7 @@ accel_dif_verify_op_dif_generated_do_check(uint32_t dif_flags)
			       SPDK_DIF_TYPE1,
			       dif_flags,
			       10, 0xFFFF, 20, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.src_iovs = task->src_iovs;
@@ -378,7 +392,7 @@ accel_dif_verify_op_dif_generated_do_check(uint32_t dif_flags)
	execute_spdk_function(accel_dif_verify_test, &req);
	CU_ASSERT_EQUAL(g_completion_success, true);

	get_dif_verify_free_bufs(task);
	free_dif_verify_bufs(task);
}

static void
@@ -405,11 +419,10 @@ accel_dif_verify_op_dif_not_generated_do_check(uint32_t dif_flags)
	struct spdk_dif_ctx_init_ext_opts dif_opts;
	struct accel_dif_request req;
	struct dif_task *task = &g_dif_task;
	struct spdk_dif_error dif_err;
	int rc;

	rc = get_dif_verify_alloc_bufs(task, 1);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_verify_bufs(task, 1);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -420,7 +433,7 @@ accel_dif_verify_op_dif_not_generated_do_check(uint32_t dif_flags)
			       SPDK_DIF_TYPE1,
			       dif_flags,
			       10, 0xFFFF, 20, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.src_iovs = task->src_iovs;
@@ -433,12 +446,9 @@ accel_dif_verify_op_dif_not_generated_do_check(uint32_t dif_flags)

	execute_spdk_function(accel_dif_verify_test, &req);
	CU_ASSERT_EQUAL(g_completion_success, false);
	CU_ASSERT_EQUAL(accel_dif_error_validate(dif_flags, req.err), true);

	rc = spdk_dif_verify(task->src_iovs, task->src_iovcnt, task->num_blocks,
			     &task->dif_ctx, &dif_err);
	CU_ASSERT(rc != 0);

	get_dif_verify_free_bufs(task);
	free_dif_verify_bufs(task);
}

static void
@@ -467,8 +477,8 @@ accel_dif_verify_op_apptag_correct_apptag_check(void)
	struct dif_task *task = &g_dif_task;
	int rc;

	rc = get_dif_verify_alloc_bufs(task, 1);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_verify_bufs(task, 1);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -479,10 +489,10 @@ accel_dif_verify_op_apptag_correct_apptag_check(void)
			       SPDK_DIF_TYPE1,
			       SPDK_DIF_FLAGS_APPTAG_CHECK,
			       10, 0xFFFF, 20, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_generate(task->src_iovs, task->src_iovcnt, task->num_blocks, &task->dif_ctx);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.src_iovs = task->src_iovs;
@@ -496,7 +506,7 @@ accel_dif_verify_op_apptag_correct_apptag_check(void)
	execute_spdk_function(accel_dif_verify_test, &req);
	CU_ASSERT_EQUAL(g_completion_success, true);

	get_dif_verify_free_bufs(task);
	free_dif_verify_bufs(task);
}

static void
@@ -507,8 +517,8 @@ accel_dif_verify_op_apptag_incorrect_apptag_check(void)
	struct dif_task *task = &g_dif_task;
	int rc;

	rc = get_dif_verify_alloc_bufs(task, 1);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_verify_bufs(task, 1);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -519,10 +529,10 @@ accel_dif_verify_op_apptag_incorrect_apptag_check(void)
			       SPDK_DIF_TYPE1,
			       SPDK_DIF_FLAGS_APPTAG_CHECK,
			       10, 0xFFFF, 20, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_generate(task->src_iovs, task->src_iovcnt, task->num_blocks, &task->dif_ctx);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_ctx_init(&task->dif_ctx,
			       g_block_size_bytes + g_md_size_bytes,
@@ -530,7 +540,7 @@ accel_dif_verify_op_apptag_incorrect_apptag_check(void)
			       SPDK_DIF_TYPE1,
			       SPDK_DIF_FLAGS_APPTAG_CHECK,
			       30, 0xFFFF, 40, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.src_iovs = task->src_iovs;
@@ -544,7 +554,7 @@ accel_dif_verify_op_apptag_incorrect_apptag_check(void)
	execute_spdk_function(accel_dif_verify_test, &req);
	CU_ASSERT_EQUAL(g_completion_success, false);

	get_dif_verify_free_bufs(task);
	free_dif_verify_bufs(task);
}

static void
@@ -555,8 +565,8 @@ accel_dif_verify_op_tag_incorrect_no_check_or_ignore(uint32_t dif_flags)
	struct dif_task *task = &g_dif_task;
	int rc;

	rc = get_dif_verify_alloc_bufs(task, 1);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_verify_bufs(task, 1);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -573,10 +583,10 @@ accel_dif_verify_op_tag_incorrect_no_check_or_ignore(uint32_t dif_flags)
			       SPDK_DIF_FLAGS_APPTAG_CHECK |
			       SPDK_DIF_FLAGS_REFTAG_CHECK,
			       10, 0xFFFF, 0xFFFF, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_generate(task->src_iovs, task->src_iovcnt, task->num_blocks, &task->dif_ctx);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_ctx_init(&task->dif_ctx,
			       g_block_size_bytes + g_md_size_bytes,
@@ -584,7 +594,7 @@ accel_dif_verify_op_tag_incorrect_no_check_or_ignore(uint32_t dif_flags)
			       SPDK_DIF_TYPE1,
			       dif_flags,
			       30, 0xFFFF, 40, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.src_iovs = task->src_iovs;
@@ -598,7 +608,7 @@ accel_dif_verify_op_tag_incorrect_no_check_or_ignore(uint32_t dif_flags)
	execute_spdk_function(accel_dif_verify_test, &req);
	CU_ASSERT_EQUAL(g_completion_success, true);

	get_dif_verify_free_bufs(task);
	free_dif_verify_bufs(task);
}

static void
@@ -621,8 +631,8 @@ accel_dif_verify_op_reftag_init_correct_reftag_check(void)
	struct dif_task *task = &g_dif_task;
	int rc;

	rc = get_dif_verify_alloc_bufs(task, 2);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_verify_bufs(task, 2);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -633,10 +643,10 @@ accel_dif_verify_op_reftag_init_correct_reftag_check(void)
			       SPDK_DIF_TYPE1,
			       SPDK_DIF_FLAGS_REFTAG_CHECK,
			       10, 0xFFFF, 20, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_generate(task->src_iovs, task->src_iovcnt, task->num_blocks, &task->dif_ctx);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.src_iovs = task->src_iovs;
@@ -650,7 +660,7 @@ accel_dif_verify_op_reftag_init_correct_reftag_check(void)
	execute_spdk_function(accel_dif_verify_test, &req);
	CU_ASSERT_EQUAL(g_completion_success, true);

	get_dif_verify_free_bufs(task);
	free_dif_verify_bufs(task);
}

static void
@@ -661,8 +671,8 @@ accel_dif_verify_op_reftag_init_incorrect_reftag_check(void)
	struct dif_task *task = &g_dif_task;
	int rc;

	rc = get_dif_verify_alloc_bufs(task, 2);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_verify_bufs(task, 2);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -673,10 +683,10 @@ accel_dif_verify_op_reftag_init_incorrect_reftag_check(void)
			       SPDK_DIF_TYPE1,
			       SPDK_DIF_FLAGS_REFTAG_CHECK,
			       16, 0xFFFF, 20, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_generate(task->src_iovs, task->src_iovcnt, task->num_blocks, &task->dif_ctx);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_ctx_init(&task->dif_ctx,
			       g_block_size_bytes + g_md_size_bytes,
@@ -684,7 +694,7 @@ accel_dif_verify_op_reftag_init_incorrect_reftag_check(void)
			       SPDK_DIF_TYPE1,
			       SPDK_DIF_FLAGS_REFTAG_CHECK,
			       10, 0xFFFF, 20, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.src_iovs = task->src_iovs;
@@ -698,7 +708,7 @@ accel_dif_verify_op_reftag_init_incorrect_reftag_check(void)
	execute_spdk_function(accel_dif_verify_test, &req);
	CU_ASSERT_EQUAL(g_completion_success, false);

	get_dif_verify_free_bufs(task);
	free_dif_verify_bufs(task);
}

static void
@@ -710,7 +720,7 @@ accel_dif_verify_copy_op_dif_generated_do_check(uint32_t dif_flags)
	int rc;

	rc = alloc_dif_verify_copy_bufs(task, 1);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -723,10 +733,10 @@ accel_dif_verify_copy_op_dif_generated_do_check(uint32_t dif_flags)
			       SPDK_DIF_FLAGS_APPTAG_CHECK |
			       SPDK_DIF_FLAGS_REFTAG_CHECK,
			       10, 0xFFFF, 20, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_generate(task->src_iovs, task->src_iovcnt, task->num_blocks, &task->dif_ctx);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_ctx_init(&task->dif_ctx,
			       g_block_size_bytes + g_md_size_bytes,
@@ -734,7 +744,7 @@ accel_dif_verify_copy_op_dif_generated_do_check(uint32_t dif_flags)
			       SPDK_DIF_TYPE1,
			       dif_flags,
			       10, 0xFFFF, 20, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.dst_iovs = task->dst_iovs;
@@ -780,7 +790,7 @@ accel_dif_verify_copy_op_dif_not_generated_do_check(uint32_t dif_flags)
	int rc;

	rc = alloc_dif_verify_copy_bufs(task, 1);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -791,7 +801,7 @@ accel_dif_verify_copy_op_dif_not_generated_do_check(uint32_t dif_flags)
			       SPDK_DIF_TYPE1,
			       dif_flags,
			       10, 0xFFFF, 20, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.dst_iovs = task->dst_iovs;
@@ -838,8 +848,8 @@ accel_dif_generate_copy_op_dif_generated_do_check(uint32_t dif_flags)
	struct spdk_dif_error err_blk;
	int rc;

	rc = get_dif_generate_copy_alloc_bufs(task, 1);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_generate_copy_bufs(task, 1);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -852,7 +862,7 @@ accel_dif_generate_copy_op_dif_generated_do_check(uint32_t dif_flags)
			       SPDK_DIF_FLAGS_APPTAG_CHECK |
			       SPDK_DIF_FLAGS_REFTAG_CHECK,
			       16, 0xFFFF, 10, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.dst_iovs = task->dst_iovs;
@@ -874,13 +884,13 @@ accel_dif_generate_copy_op_dif_generated_do_check(uint32_t dif_flags)
			       SPDK_DIF_TYPE1,
			       dif_flags,
			       16, 0xFFFF, 10, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = spdk_dif_verify(req.dst_iovs, req.dst_iovcnt, req.num_blocks,
			     &task->dif_ctx, &err_blk);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	get_dif_generate_copy_free_bufs(task);
	free_dif_generate_copy_bufs(task);
}

static void
@@ -911,10 +921,10 @@ accel_dif_generate_copy_op_dif_generated_no_guard_check_flag_set(void)
	int rc;

	rc = spdk_accel_get_opc_module_name(SPDK_ACCEL_OPC_DIF_GENERATE_COPY, &module_name);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = get_dif_generate_copy_alloc_bufs(task, 1);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_generate_copy_bufs(task, 1);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -926,7 +936,7 @@ accel_dif_generate_copy_op_dif_generated_no_guard_check_flag_set(void)
			       SPDK_DIF_FLAGS_APPTAG_CHECK |
			       SPDK_DIF_FLAGS_REFTAG_CHECK,
			       16, 0xFFFF, 10, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.dst_iovs = task->dst_iovs;
@@ -947,10 +957,10 @@ accel_dif_generate_copy_op_dif_generated_no_guard_check_flag_set(void)
	} else if (!strcmp(module_name, "software")) {
		CU_ASSERT_EQUAL(g_completion_success, true);
	} else {
		CU_ASSERT(false);
		SPDK_CU_ASSERT_FATAL(false);
	}

	get_dif_generate_copy_free_bufs(task);
	free_dif_generate_copy_bufs(task);
}

static void
@@ -963,10 +973,10 @@ accel_dif_generate_copy_op_dif_generated_no_apptag_check_flag_set(void)
	int rc;

	rc = spdk_accel_get_opc_module_name(SPDK_ACCEL_OPC_DIF_GENERATE_COPY, &module_name);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = get_dif_generate_copy_alloc_bufs(task, 1);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_generate_copy_bufs(task, 1);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -978,7 +988,7 @@ accel_dif_generate_copy_op_dif_generated_no_apptag_check_flag_set(void)
			       SPDK_DIF_FLAGS_GUARD_CHECK |
			       SPDK_DIF_FLAGS_REFTAG_CHECK,
			       16, 0xFFFF, 10, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.dst_iovs = task->dst_iovs;
@@ -999,10 +1009,10 @@ accel_dif_generate_copy_op_dif_generated_no_apptag_check_flag_set(void)
	} else if (!strcmp(module_name, "software")) {
		CU_ASSERT_EQUAL(g_completion_success, true);
	} else {
		CU_ASSERT(false);
		SPDK_CU_ASSERT_FATAL(false);
	}

	get_dif_generate_copy_free_bufs(task);
	free_dif_generate_copy_bufs(task);
}

static void
@@ -1015,10 +1025,10 @@ accel_dif_generate_copy_op_dif_generated_no_reftag_check_flag_set(void)
	int rc;

	rc = spdk_accel_get_opc_module_name(SPDK_ACCEL_OPC_DIF_GENERATE_COPY, &module_name);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	rc = get_dif_generate_copy_alloc_bufs(task, 1);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_generate_copy_bufs(task, 1);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -1030,7 +1040,7 @@ accel_dif_generate_copy_op_dif_generated_no_reftag_check_flag_set(void)
			       SPDK_DIF_FLAGS_GUARD_CHECK |
			       SPDK_DIF_FLAGS_APPTAG_CHECK,
			       16, 0xFFFF, 10, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.dst_iovs = task->dst_iovs;
@@ -1051,10 +1061,10 @@ accel_dif_generate_copy_op_dif_generated_no_reftag_check_flag_set(void)
	} else if (!strcmp(module_name, "software")) {
		CU_ASSERT_EQUAL(g_completion_success, true);
	} else {
		CU_ASSERT(false);
		SPDK_CU_ASSERT_FATAL(false);
	}

	get_dif_generate_copy_free_bufs(task);
	free_dif_generate_copy_bufs(task);
}

static void
@@ -1065,8 +1075,8 @@ accel_dif_generate_copy_op_iovecs_len_validate(void)
	struct dif_task *task = &g_dif_task;
	int rc;

	rc = get_dif_generate_copy_alloc_bufs(task, 1);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_generate_copy_bufs(task, 1);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -1079,7 +1089,7 @@ accel_dif_generate_copy_op_iovecs_len_validate(void)
			       SPDK_DIF_FLAGS_APPTAG_CHECK |
			       SPDK_DIF_FLAGS_REFTAG_CHECK,
			       16, 0xFFFF, 10, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.dst_iovs = task->dst_iovs;
@@ -1097,7 +1107,7 @@ accel_dif_generate_copy_op_iovecs_len_validate(void)
	execute_spdk_function(accel_dif_generate_copy_test, &req);
	CU_ASSERT_EQUAL(g_completion_success, false);

	get_dif_generate_copy_free_bufs(task);
	free_dif_generate_copy_bufs(task);
}

static void
@@ -1108,8 +1118,8 @@ accel_dif_generate_copy_op_buf_align_validate(void)
	struct dif_task *task = &g_dif_task;
	int rc;

	rc = get_dif_generate_copy_alloc_bufs(task, 1);
	CU_ASSERT(rc == 0);
	rc = alloc_dif_generate_copy_bufs(task, 1);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	dif_opts.size = SPDK_SIZEOF(&dif_opts, dif_pi_format);
	dif_opts.dif_pi_format = SPDK_DIF_PI_FORMAT_16;
@@ -1122,7 +1132,7 @@ accel_dif_generate_copy_op_buf_align_validate(void)
			       SPDK_DIF_FLAGS_APPTAG_CHECK |
			       SPDK_DIF_FLAGS_REFTAG_CHECK,
			       16, 0xFFFF, 10, 0, 0, &dif_opts);
	CU_ASSERT(rc == 0);
	SPDK_CU_ASSERT_FATAL(rc == 0);

	req.channel = g_channel;
	req.dst_iovs = task->dst_iovs;
@@ -1138,7 +1148,7 @@ accel_dif_generate_copy_op_buf_align_validate(void)
	execute_spdk_function(accel_dif_generate_copy_test, &req);
	CU_ASSERT_EQUAL(g_completion_success, true);

	get_dif_generate_copy_free_bufs(task);
	free_dif_generate_copy_bufs(task);
}

static void