[Accel-config] [PATCH v1 6/9] accel-config/test: add create and apply delta record result verification

Tony Zhu <tony.zhu at intel.com> Fri, 11 Feb 2022 21:16:30 +0800
Newsgroups dev.linux.lists.accel-config
Message-ID <[email protected]>
Create Delta Record verify is ignored for data, it is fine to check the
completion status. For Apply Delta Record, the the source and
destination values should be compared.

Signed-off-by: Tony Zhu <tony.zhu(a)intel.com>
---
 test/dsa.c | 26 ++++++++++++++++++++++++++
 test/dsa.h |  2 ++
 2 files changed, 28 insertions(+)

diff --git a/test/dsa.c b/test/dsa.c
index f383e42..5e617a9 100644
--- a/test/dsa.c
+++ b/test/dsa.c
@@ -1471,6 +1471,12 @@ int task_result_verify(struct task *tsk, int mismatch_expected)
 	case DSA_OPCODE_DUALCAST:
 		rc = task_result_verify_dualcast(tsk, mismatch_expected);
 		return rc;
+	case DSA_OPCODE_CR_DELTA:
+		rc = task_result_verify_cr_delta(tsk, mismatch_expected);
+		return rc;
+	case DSA_OPCODE_AP_DELTA:
+		rc = task_result_verify_ap_delta(tsk, mismatch_expected);
+		return rc;
 	case DSA_OPCODE_CRCGEN:
 		rc = task_result_verify_crcgen(tsk, mismatch_expected);
 		return rc;
@@ -1596,6 +1602,26 @@ int task_result_verify_dualcast(struct task *tsk, int mismatch_expected)
 	return DSA_STATUS_OK;
 }
 
+int task_result_verify_cr_delta(struct task *tsk, int mismatch_expected)
+{
+	return DSA_STATUS_OK;
+}
+
+int task_result_verify_ap_delta(struct task *tsk, int mismatch_expected)
+{
+	int rc;
+	int data_size = (tsk->comp->status == DSA_COMP_SUCCESS) ?
+			 tsk->desc->xfer_size : tsk->comp->bytes_completed;
+
+	rc = memcmp((unsigned char *)tsk->desc->dst_addr,
+		    (unsigned char *)tsk->desc->src2_addr, data_size);
+	if (rc) {
+		err("apply delta mismatch, memcmp rc %d\n", rc);
+		return -ENXIO;
+	}
+	return DSA_STATUS_OK;
+}
+
 static uint8_t reverse_u8(uint8_t x)
 {
 	const char *rev = "\x0\x8\x4\xC\x2\xA\x6\xE\x1\x9\x5\xD\x3\xB\x7\xF";
diff --git a/test/dsa.h b/test/dsa.h
index 43f191c..ad86dfa 100644
--- a/test/dsa.h
+++ b/test/dsa.h
@@ -319,6 +319,8 @@ int task_result_verify_memfill(struct task *tsk, int mismatch_expected);
 int task_result_verify_compare(struct task *tsk, int mismatch_expected);
 int task_result_verify_compval(struct task *tsk, int mismatch_expected);
 int task_result_verify_dualcast(struct task *tsk, int mismatch_expected);
+int task_result_verify_cr_delta(struct task *tsk, int mismatch_expected);
+int task_result_verify_ap_delta(struct task *tsk, int mismatch_expected);
 int task_result_verify_crcgen(struct task *tsk, int mismatch_expected);
 int task_result_verify_crc_copy(struct task *tsk, int mismatch_expected);
 int batch_result_verify(struct batch_task *btsk, int bof);
-- 
2.27.0