From: Rajesh Mudimadugula <rmudimadu...@marvell.com>

Return proper error codes in create_auth_session() to avoid
segfaults as a result of this.

Signed-off-by: Rajesh Mudimadugula <rmudimadu...@marvell.com>
---
 app/test/test_cryptodev.c | 38 ++++++++++++++++++++++++++++----------
 1 file changed, 28 insertions(+), 10 deletions(-)

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index a33ef574cc..7cddb1517c 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -13006,6 +13006,8 @@ test_cryptodev_error_recover_helper(uint8_t dev_id, 
const void *test_data, bool
 
        ut_params->sess = rte_cryptodev_sym_session_create(dev_id, 
&ut_params->cipher_xform,
                                                           
ts_params->session_mpool);
+       if (ut_params->sess == NULL && rte_errno == ENOTSUP)
+               return TEST_SKIPPED;
        TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
 
        ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool, 
RTE_CRYPTO_OP_TYPE_SYMMETRIC);
@@ -14707,15 +14709,19 @@ test_multi_session(void)
                sessions[i] = rte_cryptodev_sym_session_create(
                        ts_params->valid_devs[0], &ut_params->auth_xform,
                                ts_params->session_mpool);
-               if (sessions[i] == NULL && rte_errno == ENOTSUP) {
+               if (sessions[i] == NULL) {
                        nb_sess = i;
-                       ret = TEST_SKIPPED;
+                       if (rte_errno == ENOTSUP)
+                               ret = TEST_SKIPPED;
+                       else {
+                               ret = TEST_FAILED;
+                               printf("TestCase %s() line %d failed : "
+                                               "Session creation failed at 
session number %u",
+                                               __func__, __LINE__, i);
+                       }
                        break;
                }
 
-               TEST_ASSERT_NOT_NULL(sessions[i],
-                               "Session creation failed at session number %u",
-                               i);
 
                /* Attempt to send a request on each session */
                ret = test_AES_CBC_HMAC_SHA512_decrypt_perform(
@@ -14843,15 +14849,19 @@ test_multi_session_random_usage(void)
                                ts_params->valid_devs[0],
                                &ut_paramz[i].ut_params.auth_xform,
                                ts_params->session_mpool);
-               if (sessions[i] == NULL && rte_errno == ENOTSUP) {
+               if (sessions[i] == NULL) {
                        nb_sess = i;
-                       ret = TEST_SKIPPED;
+                       if (rte_errno == ENOTSUP)
+                               ret = TEST_SKIPPED;
+                       else {
+                               ret = TEST_FAILED;
+                               printf("TestCase %s() line %d failed : "
+                                               "Session creation failed at 
session number %u",
+                                               __func__, __LINE__, i);
+                       }
                        goto session_clear;
                }
 
-               TEST_ASSERT_NOT_NULL(sessions[i],
-                               "Session creation failed at session number %u",
-                               i);
        }
 
        nb_sess = i;
@@ -14934,6 +14944,8 @@ test_null_invalid_operation(void)
        ut_params->sess = rte_cryptodev_sym_session_create(
                        ts_params->valid_devs[0], &ut_params->cipher_xform,
                        ts_params->session_mpool);
+       if (ut_params->sess == NULL && rte_errno == ENOTSUP)
+               return TEST_SKIPPED;
        TEST_ASSERT(ut_params->sess == NULL,
                        "Session creation succeeded unexpectedly");
 
@@ -14948,6 +14960,8 @@ test_null_invalid_operation(void)
        ut_params->sess = rte_cryptodev_sym_session_create(
                        ts_params->valid_devs[0], &ut_params->auth_xform,
                        ts_params->session_mpool);
+       if (ut_params->sess == NULL && rte_errno == ENOTSUP)
+               return TEST_SKIPPED;
        TEST_ASSERT(ut_params->sess == NULL,
                        "Session creation succeeded unexpectedly");
 
@@ -15095,6 +15109,8 @@ test_enqdeq_callback_null_cipher(void)
        /* Create Crypto session */
        ut_params->sess = 
rte_cryptodev_sym_session_create(ts_params->valid_devs[0],
                                &ut_params->auth_xform, 
ts_params->session_mpool);
+       if (ut_params->sess == NULL && rte_errno == ENOTSUP)
+               return TEST_SKIPPED;
        TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
 
        ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool, 
RTE_CRYPTO_OP_TYPE_SYMMETRIC);
@@ -16155,6 +16171,7 @@ create_auth_session(struct crypto_unittest_params 
*ut_params,
                                ts_params->session_mpool);
        if (ut_params->sess == NULL && rte_errno == ENOTSUP)
                return TEST_SKIPPED;
+       TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
 
        return 0;
 }
@@ -16205,6 +16222,7 @@ create_auth_cipher_session(struct 
crypto_unittest_params *ut_params,
                                ts_params->session_mpool);
        if (ut_params->sess == NULL && rte_errno == ENOTSUP)
                return TEST_SKIPPED;
+       TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
 
        return 0;
 }
-- 
2.25.1

Reply via email to