RE: [EXTERNAL] [PATCH] test/crypto: remove PMD specific asym testsuites
Hi Kai/Pablo, Any feedback on this or we can merge? > Change PMD specific asymmetric testsuites to > capabilities based testsuites > > Signed-off-by: Rupesh Chiluka > --- Acked-by: Akhil Goyal
[PATCH] test/crypto: remove PMD specific asym testsuites
Change PMD specific asymmetric testsuites to
capabilities based testsuites
Signed-off-by: Rupesh Chiluka
---
app/test/test_cryptodev_asym.c | 516 ++---
1 file changed, 340 insertions(+), 176 deletions(-)
diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c
index 111f675c94..cff71dc700 100644
--- a/app/test/test_cryptodev_asym.c
+++ b/app/test/test_cryptodev_asym.c
@@ -39,6 +39,10 @@
#define TEST_VECTOR_SIZE 256
#define DEQ_TIMEOUT 1
+#define ADD_ASYM_TESTSUITE(index, parent_ts, child_ts, num_child_ts) \
+ for (j = 0; j < num_child_ts; index++, j++) \
+ parent_ts.unit_test_suites[index] = child_ts[j]
+
static int gbl_driver_id;
static struct crypto_testsuite_params_asym {
struct rte_mempool *op_mpool;
@@ -3113,6 +3117,9 @@ test_sm2_enc(void)
capa = rte_cryptodev_asym_capability_get(dev_id, &idx);
if (capa == NULL)
return -ENOTSUP;
+ if (!rte_cryptodev_asym_xform_capability_check_opcap(capa,
+ RTE_CRYPTO_ASYM_OP_ENCRYPT, 0))
+ return TEST_SKIPPED;
/* Setup crypto op data structure */
op = rte_crypto_op_alloc(op_mpool, RTE_CRYPTO_OP_TYPE_ASYMMETRIC);
@@ -3297,6 +3304,9 @@ test_sm2_dec(void)
capa = rte_cryptodev_asym_capability_get(dev_id, &idx);
if (capa == NULL)
return -ENOTSUP;
+ if (!rte_cryptodev_asym_xform_capability_check_opcap(capa,
+ RTE_CRYPTO_ASYM_OP_DECRYPT, 0))
+ return TEST_SKIPPED;
/* Setup crypto op data structure */
op = rte_crypto_op_alloc(op_mpool, RTE_CRYPTO_OP_TYPE_ASYMMETRIC);
@@ -4995,27 +5005,230 @@ test_sm2_partial_decryption(const void *data)
return 0;
}
-static struct unit_test_suite cryptodev_openssl_asym_testsuite = {
- .suite_name = "Crypto Device OPENSSL ASYM Unit Test Suite",
- .setup = testsuite_setup,
- .teardown = testsuite_teardown,
+static int
+check_asym_capabilities_supported(const enum rte_crypto_asym_xform_type
xform_type)
+{
+ uint8_t dev_id = testsuite_params.valid_devs[0];
+ struct rte_cryptodev_asym_capability_idx idx = {xform_type};
+
+ if (rte_cryptodev_asym_capability_get(dev_id, &idx) == NULL)
+ return TEST_SKIPPED;
+ return 0;
+}
+
+static int
+crypto_asym_dh_testsuite_setup(void)
+{
+ if (check_asym_capabilities_supported(RTE_CRYPTO_ASYM_XFORM_DH) != 0) {
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_dsa_testsuite_setup(void)
+{
+ if (check_asym_capabilities_supported(RTE_CRYPTO_ASYM_XFORM_DSA) != 0) {
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_ecdh_testsuite_setup(void)
+{
+ if (check_asym_capabilities_supported(RTE_CRYPTO_ASYM_XFORM_ECDH) != 0)
{
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_ecdsa_testsuite_setup(void)
+{
+ if (check_asym_capabilities_supported(RTE_CRYPTO_ASYM_XFORM_ECDSA) !=
0) {
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_ecpm_testsuite_setup(void)
+{
+ if (check_asym_capabilities_supported(RTE_CRYPTO_ASYM_XFORM_ECPM) != 0)
{
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_eddsa_testsuite_setup(void)
+{
+ if (check_asym_capabilities_supported(RTE_CRYPTO_ASYM_XFORM_EDDSA) !=
0) {
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_mod_ex_testsuite_setup(void)
+{
+ if (check_asym_capabilities_supported(RTE_CRYPTO_ASYM_XFORM_MODEX) !=
0) {
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_mod_inv_testsuite_setup(void)
+{
+ if (check_asym_capabilities_supported(RTE_CRYPTO_ASYM_XFORM_MODINV) !=
0) {
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required A
[PATCH] test/crypto: remove PMD specific asym testsuites
Change PMD specific asymmetric testsuites to
capabilities based testsuites
Signed-off-by: Rupesh Chiluka
---
app/test/test_cryptodev_asym.c | 540 ++---
1 file changed, 364 insertions(+), 176 deletions(-)
diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c
index 111f675c94..cc4590a500 100644
--- a/app/test/test_cryptodev_asym.c
+++ b/app/test/test_cryptodev_asym.c
@@ -39,6 +39,10 @@
#define TEST_VECTOR_SIZE 256
#define DEQ_TIMEOUT 1
+#define ADD_ASYM_TESTSUITE(index, parent_ts, child_ts, num_child_ts) \
+ for (j = 0; j < num_child_ts; index++, j++) \
+ parent_ts.unit_test_suites[index] = child_ts[j]
+
static int gbl_driver_id;
static struct crypto_testsuite_params_asym {
struct rte_mempool *op_mpool;
@@ -3113,6 +3117,9 @@ test_sm2_enc(void)
capa = rte_cryptodev_asym_capability_get(dev_id, &idx);
if (capa == NULL)
return -ENOTSUP;
+ if (!rte_cryptodev_asym_xform_capability_check_opcap(capa,
+ RTE_CRYPTO_ASYM_OP_ENCRYPT, 0))
+ return TEST_SKIPPED;
/* Setup crypto op data structure */
op = rte_crypto_op_alloc(op_mpool, RTE_CRYPTO_OP_TYPE_ASYMMETRIC);
@@ -3297,6 +3304,9 @@ test_sm2_dec(void)
capa = rte_cryptodev_asym_capability_get(dev_id, &idx);
if (capa == NULL)
return -ENOTSUP;
+ if (!rte_cryptodev_asym_xform_capability_check_opcap(capa,
+ RTE_CRYPTO_ASYM_OP_DECRYPT, 0))
+ return TEST_SKIPPED;
/* Setup crypto op data structure */
op = rte_crypto_op_alloc(op_mpool, RTE_CRYPTO_OP_TYPE_ASYMMETRIC);
@@ -4995,27 +5005,254 @@ test_sm2_partial_decryption(const void *data)
return 0;
}
-static struct unit_test_suite cryptodev_openssl_asym_testsuite = {
- .suite_name = "Crypto Device OPENSSL ASYM Unit Test Suite",
- .setup = testsuite_setup,
- .teardown = testsuite_teardown,
+static int
+check_asym_capabilities_supported(const enum rte_crypto_asym_xform_type
xform_type)
+{
+ uint8_t dev_id = testsuite_params.valid_devs[0];
+ struct rte_cryptodev_asym_capability_idx idx = {xform_type};
+
+ if (rte_cryptodev_asym_capability_get(dev_id, &idx) == NULL)
+ return TEST_SKIPPED;
+ return 0;
+}
+
+static int
+crypto_asym_dh_testsuite_setup(void)
+{
+ const enum rte_crypto_asym_xform_type xform_type =
RTE_CRYPTO_ASYM_XFORM_DH;
+
+ if (check_asym_capabilities_supported(xform_type) != 0) {
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_dsa_testsuite_setup(void)
+{
+ const enum rte_crypto_asym_xform_type xform_type =
RTE_CRYPTO_ASYM_XFORM_DSA;
+
+ if (check_asym_capabilities_supported(xform_type) != 0) {
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_ecdh_testsuite_setup(void)
+{
+ const enum rte_crypto_asym_xform_type xform_type =
RTE_CRYPTO_ASYM_XFORM_ECDH;
+
+ if (check_asym_capabilities_supported(xform_type) != 0) {
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_ecdsa_testsuite_setup(void)
+{
+ const enum rte_crypto_asym_xform_type xform_type =
RTE_CRYPTO_ASYM_XFORM_ECDSA;
+
+ if (check_asym_capabilities_supported(xform_type) != 0) {
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_ecpm_testsuite_setup(void)
+{
+ const enum rte_crypto_asym_xform_type xform_type =
RTE_CRYPTO_ASYM_XFORM_ECPM;
+
+ if (check_asym_capabilities_supported(xform_type) != 0) {
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_eddsa_testsuite_setup(void)
+{
+ const enum rte_crypto_asym_xform_type xform_type =
RTE_CRYPTO_ASYM_XFORM_EDDSA;
+
+ if (check_asym_capabilities_supported(xform_type) != 0) {
+ RTE_LOG(INFO, USER1,
+ "Device doesn't support required ASYM capabilities.
Test skipped\n");
+ return TEST_SKIPPED;
+ }
+ return 0;
+}
+
+static int
+crypto_asym_mod_ex_testsuite_setup(void)
+{
+ const enum rte_crypto_asym_xform_type xform_type =
RTE_CRYPTO_ASYM_XFORM_MO

