[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