[v4] app/test: replace TEST_SKIPPED with -ENOTSUP

Message ID 1557401001-27203-2-git-send-email-ayverma@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: akhil goyal
Headers
Series [v4] app/test: replace TEST_SKIPPED with -ENOTSUP |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS
ci/Intel-compilation success Compilation OK

Commit Message

Ayuj Verma May 9, 2019, 11:23 a.m. UTC
  Currently some tests return TEST_SKIPPED/-1 when tests or params
are not supported for particular PMD because of which tests adds to
FAILED test counter in place of Skipped/Unsupported counter.

Since unsupported test is not a failure case,
replace return value TEST_SKIPPED/-1 with -ENOTSUP

- Return -ENOTSUP for unsupported tests
- add NULL check for rte_cryptodev_asym_capability_get()
- Typo correction

Signed-off-by: Ayuj Verma <ayverma@marvell.com>
Signed-off-by: Shally Verma <shallyv@marvell.com>
---
 app/test/test_cryptodev_asym.c | 45 ++++++++++++++++++++++++++++++------------
 1 file changed, 32 insertions(+), 13 deletions(-)
  

Comments

Thomas Monjalon May 9, 2019, 2:27 p.m. UTC | #1
09/05/2019 13:23, Ayuj Verma:
> Currently some tests return TEST_SKIPPED/-1 when tests or params
> are not supported for particular PMD because of which tests adds to
> FAILED test counter in place of Skipped/Unsupported counter.

It looks to be a bug that TEST_SKIPPED is not caught to increment
"skipped" counter. Please fix it.

> Since unsupported test is not a failure case,
> replace return value TEST_SKIPPED/-1 with -ENOTSUP

I would say the right reason is that the test is not supported by the HW.

> - Return -ENOTSUP for unsupported tests
> - add NULL check for rte_cryptodev_asym_capability_get()
> - Typo correction
> 
> Signed-off-by: Ayuj Verma <ayverma@marvell.com>
> Signed-off-by: Shally Verma <shallyv@marvell.com>

I am not sure what the "skipped" counter is supposed to represent
if it's not for the unsupported cases.
There is a gap to check and document here.

Applied, as it sounds right to return ENOTSUP in those cases.
  

Patch

diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c
index d2efce9..fc92d3d 100644
--- a/app/test/test_cryptodev_asym.c
+++ b/app/test/test_cryptodev_asym.c
@@ -119,6 +119,18 @@  struct test_cases_array {
 
 	int status = TEST_SUCCESS;
 
+	xform_tc.next = NULL;
+	xform_tc.xform_type = data_tc->modex.xform_type;
+
+	cap_idx.type = xform_tc.xform_type;
+	capability = rte_cryptodev_asym_capability_get(dev_id, &cap_idx);
+
+	if (capability == NULL) {
+		RTE_LOG(INFO, USER1,
+			"Device doesn't support MODEX. Test Skipped\n");
+		return -ENOTSUP;
+	}
+
 	/* Generate crypto op data structure */
 	op = rte_crypto_op_alloc(ts_params->op_mpool,
 		RTE_CRYPTO_OP_TYPE_ASYMMETRIC);
@@ -133,11 +145,6 @@  struct test_cases_array {
 	}
 
 	asym_op = op->asym;
-	xform_tc.next = NULL;
-	xform_tc.xform_type = data_tc->modex.xform_type;
-
-	cap_idx.type = xform_tc.xform_type;
-	capability = rte_cryptodev_asym_capability_get(dev_id, &cap_idx);
 
 	switch (xform_tc.xform_type) {
 	case RTE_CRYPTO_ASYM_XFORM_MODEX:
@@ -352,7 +359,7 @@  struct test_cases_array {
 		RTE_LOG(INFO, USER1,
 				"Device doesn't support sign op with "
 				"exponent key type. Test Skipped\n");
-		return TEST_SKIPPED;
+		return -ENOTSUP;
 	}
 
 	sess = rte_cryptodev_asym_session_create(sess_mpool);
@@ -498,7 +505,7 @@  struct test_cases_array {
 		RTE_LOG(INFO, USER1,
 				"Device doesn't support sign op with "
 				"exponent key type. Test Skipped\n");
-		return TEST_SKIPPED;
+		return -ENOTSUP;
 	}
 
 	sess = rte_cryptodev_asym_session_create(sess_mpool);
@@ -1260,7 +1267,7 @@  static inline void print_asym_capa(
 	if (rte_cryptodev_asym_get_xform_enum(
 		&modinv_xform.xform_type, "modinv") < 0) {
 		RTE_LOG(ERR, USER1,
-				 "Invalid ASYNC algorithm specified\n");
+				 "Invalid ASYM algorithm specified\n");
 		return -1;
 	}
 
@@ -1268,12 +1275,18 @@  static inline void print_asym_capa(
 	capability = rte_cryptodev_asym_capability_get(dev_id,
 					&cap_idx);
 
+	if (capability == NULL) {
+		RTE_LOG(INFO, USER1,
+			"Device doesn't support MOD INV. Test Skipped\n");
+		return -ENOTSUP;
+	}
+
 	if (rte_cryptodev_asym_xform_capability_check_modlen(
 		capability,
 		modinv_xform.modinv.modulus.length)) {
 		RTE_LOG(ERR, USER1,
-				 "Invalid MODULOUS length specified\n");
-				return -1;
+				 "Invalid MODULUS length specified\n");
+				return -ENOTSUP;
 		}
 
 	sess = rte_cryptodev_asym_session_create(sess_mpool);
@@ -1379,7 +1392,7 @@  static inline void print_asym_capa(
 		"modexp")
 		< 0) {
 		RTE_LOG(ERR, USER1,
-				"Invalid ASYNC algorithm specified\n");
+				"Invalid ASYM algorithm specified\n");
 		return -1;
 	}
 
@@ -1387,11 +1400,17 @@  static inline void print_asym_capa(
 	cap_idx.type = modex_xform.xform_type;
 	capability = rte_cryptodev_asym_capability_get(dev_id, &cap_idx);
 
+	if (capability == NULL) {
+		RTE_LOG(INFO, USER1,
+			"Device doesn't support MOD EXP. Test Skipped\n");
+		return -ENOTSUP;
+	}
+
 	if (rte_cryptodev_asym_xform_capability_check_modlen(
 			capability, modex_xform.modex.modulus.length)) {
 		RTE_LOG(ERR, USER1,
-				"Invalid MODULOUS length specified\n");
-				return -1;
+				"Invalid MODULUS length specified\n");
+				return -ENOTSUP;
 		}
 
 	/* generate crypto op data structure */