get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/127643/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 127643,
    "url": "http://patches.dpdk.org/api/patches/127643/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20230528173531.263548-2-arkadiuszx.kusztal@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20230528173531.263548-2-arkadiuszx.kusztal@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230528173531.263548-2-arkadiuszx.kusztal@intel.com",
    "date": "2023-05-28T17:35:28",
    "name": "[v2,1/4] app/test: remove testsuite calls from ut setup",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "1e114aadc74c6d3eb034af0c4e2c3e30c6fe75ae",
    "submitter": {
        "id": 452,
        "url": "http://patches.dpdk.org/api/people/452/?format=api",
        "name": "Arkadiusz Kusztal",
        "email": "arkadiuszx.kusztal@intel.com"
    },
    "delegate": {
        "id": 6690,
        "url": "http://patches.dpdk.org/api/users/6690/?format=api",
        "username": "akhil",
        "first_name": "akhil",
        "last_name": "goyal",
        "email": "gakhil@marvell.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20230528173531.263548-2-arkadiuszx.kusztal@intel.com/mbox/",
    "series": [
        {
            "id": 28222,
            "url": "http://patches.dpdk.org/api/series/28222/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=28222",
            "date": "2023-05-28T17:35:27",
            "name": "Replace obsolote test cases.",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/28222/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/127643/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/127643/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 1A38442BC4;\n\tSun, 28 May 2023 19:35:46 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id EC63541138;\n\tSun, 28 May 2023 19:35:42 +0200 (CEST)",
            "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n by mails.dpdk.org (Postfix) with ESMTP id 9DA9241138\n for <dev@dpdk.org>; Sun, 28 May 2023 19:35:40 +0200 (CEST)",
            "from orsmga001.jf.intel.com ([10.7.209.18])\n by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 28 May 2023 10:35:40 -0700",
            "from silpixa00401012.ir.intel.com ([10.243.22.82])\n by orsmga001.jf.intel.com with ESMTP; 28 May 2023 10:35:38 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1685295340; x=1716831340;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=QOJQFUxoBeclmSu9wgvTnHqTO0T20EakkHXnSWgj+b8=;\n b=Qg0T+zruV1tIjZSWIJXfEjNX2ZJl98FbeSvPV9vSZQlvt/lmBZbotSf3\n hMSqn3UoJnM9mIAoclf1g1VYz3nDzSgi5yqYSgf3i8ZsKa+KQi62BOm9+\n RV4AeMNUrFDi9gNdFB1VhB8LMkZkm7b1EAnqJ1KRtR864Os0bEau9e5za\n DXf9iZjwOxEgYd4JJIF2hIduVLHdpk5qyXOlVZuO88HSM0wqisvMQ5b+5\n PRQUFnquzPgOnI6e61S9a4VQdYJe1WEKOf4lUVHXcZXXSiVp1io0uSuK8\n ZwYiD6kHWpBbYlFIhfoHluMMH6S9xufz0GQ0aqZjYbwV4lofzsmKdODJH A==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6600,9927,10724\"; a=\"344041610\"",
            "E=Sophos;i=\"6.00,198,1681196400\"; d=\"scan'208\";a=\"344041610\"",
            "E=McAfee;i=\"6600,9927,10724\"; a=\"738892652\"",
            "E=Sophos;i=\"6.00,198,1681196400\"; d=\"scan'208\";a=\"738892652\""
        ],
        "X-ExtLoop1": "1",
        "From": "Arek Kusztal <arkadiuszx.kusztal@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "gakhil@marvell.com, kai.ji@intel.com, ciara.power@intel.com,\n Arek Kusztal <arkadiuszx.kusztal@intel.com>",
        "Subject": "[PATCH v2 1/4] app/test: remove testsuite calls from ut setup",
        "Date": "Sun, 28 May 2023 17:35:28 +0000",
        "Message-Id": "<20230528173531.263548-2-arkadiuszx.kusztal@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20230528173531.263548-1-arkadiuszx.kusztal@intel.com>",
        "References": "<20230528173531.263548-1-arkadiuszx.kusztal@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "Unit test setup should be responsible for setting unit\ntest parateres only, analogous rules should apply to ut teardown\nfunction.\nCryptodev start/stop functions should be used once - during\nsetting the testsuite.\n\nSigned-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>\nAcked-by: Ciara Power <ciara.power@intel.com>\n---\n app/test/test_cryptodev_asym.c | 310 ++++++++++++++-------------------\n 1 file changed, 130 insertions(+), 180 deletions(-)",
    "diff": "diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c\nindex 9236817650..026fa48c9e 100644\n--- a/app/test/test_cryptodev_asym.c\n+++ b/app/test/test_cryptodev_asym.c\n@@ -41,12 +41,13 @@ struct crypto_testsuite_params_asym {\n \tstruct rte_cryptodev_qp_conf qp_conf;\n \tuint8_t valid_devs[RTE_CRYPTO_MAX_DEVS];\n \tuint8_t valid_dev_count;\n-};\n+} _testsuite_params, *params = &_testsuite_params;\n \n-struct crypto_unittest_params {\n+static struct ut_args {\n \tvoid *sess;\n \tstruct rte_crypto_op *op;\n-};\n+\tstruct rte_crypto_op *result_op;\n+} _args, *self = &_args;\n \n union test_case_structure {\n \tstruct modex_test_data modex;\n@@ -62,14 +63,11 @@ static struct test_cases_array test_vector = {0, { NULL } };\n \n static uint32_t test_index;\n \n-static struct crypto_testsuite_params_asym testsuite_params = { NULL };\n-\n static int\n queue_ops_rsa_sign_verify(void *sess)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *op_mpool = params->op_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_crypto_op *op, *result_op;\n \tstruct rte_crypto_asym_op *asym_op;\n \tuint8_t output_buf[TEST_DATA_SIZE];\n@@ -158,9 +156,8 @@ queue_ops_rsa_sign_verify(void *sess)\n static int\n queue_ops_rsa_enc_dec(void *sess)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *op_mpool = params->op_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_crypto_op *op, *result_op;\n \tstruct rte_crypto_asym_op *asym_op;\n \tuint8_t cipher_buf[TEST_DATA_SIZE] = {0};\n@@ -299,7 +296,7 @@ test_cryptodev_asym_ver(struct rte_crypto_op *op,\n }\n \n static int\n-test_cryptodev_asym_op(struct crypto_testsuite_params_asym *ts_params,\n+test_cryptodev_asym_op(struct crypto_testsuite_params_asym *params,\n \tunion test_case_structure *data_tc,\n \tchar *test_msg, int sessionless, enum rte_crypto_asym_op_type type,\n \tenum rte_crypto_rsa_priv_key_type key_type)\n@@ -311,7 +308,7 @@ test_cryptodev_asym_op(struct crypto_testsuite_params_asym *ts_params,\n \tvoid *sess = NULL;\n \tstruct rte_cryptodev_asym_capability_idx cap_idx;\n \tconst struct rte_cryptodev_asymmetric_xform_capability *capability;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tuint8_t dev_id = params->valid_devs[0];\n \tuint8_t input[TEST_DATA_SIZE] = {0};\n \tuint8_t *result = NULL;\n \n@@ -330,7 +327,7 @@ test_cryptodev_asym_op(struct crypto_testsuite_params_asym *ts_params,\n \t}\n \n \t/* Generate crypto op data structure */\n-\top = rte_crypto_op_alloc(ts_params->op_mpool,\n+\top = rte_crypto_op_alloc(params->op_mpool,\n \t\tRTE_CRYPTO_OP_TYPE_ASYMMETRIC);\n \n \tif (!op) {\n@@ -451,7 +448,7 @@ test_cryptodev_asym_op(struct crypto_testsuite_params_asym *ts_params,\n \n \tif (!sessionless) {\n \t\tret = rte_cryptodev_asym_session_create(dev_id, &xform_tc,\n-\t\t\t\tts_params->session_mpool, &sess);\n+\t\t\t\tparams->session_mpool, &sess);\n \t\tif (ret < 0) {\n \t\t\tsnprintf(test_msg, ASYM_TEST_MSG_LEN,\n \t\t\t\t\t\"line %u \"\n@@ -524,7 +521,7 @@ test_one_case(const void *test_case, int sessionless)\n \n \tif (tc.modex.xform_type == RTE_CRYPTO_ASYM_XFORM_MODEX\n \t\t\t|| tc.modex.xform_type == RTE_CRYPTO_ASYM_XFORM_MODINV) {\n-\t\tstatus = test_cryptodev_asym_op(&testsuite_params, &tc, test_msg,\n+\t\tstatus = test_cryptodev_asym_op(params, &tc, test_msg,\n \t\t\t\tsessionless, 0, 0);\n \t\tprintf(\"  %u) TestCase %s %s\\n\", test_index++,\n \t\t\ttc.modex.description, test_msg);\n@@ -534,7 +531,7 @@ test_one_case(const void *test_case, int sessionless)\n \t\t\t\tif (tc.rsa_data.op_type_flags & (1 << i)) {\n \t\t\t\t\tif (tc.rsa_data.key_exp) {\n \t\t\t\t\t\tstatus = test_cryptodev_asym_op(\n-\t\t\t\t\t\t\t&testsuite_params, &tc,\n+\t\t\t\t\t\t\tparams, &tc,\n \t\t\t\t\t\t\ttest_msg, sessionless, i,\n \t\t\t\t\t\t\tRTE_RSA_KEY_TYPE_EXP);\n \t\t\t\t\t}\n@@ -544,7 +541,7 @@ test_one_case(const void *test_case, int sessionless)\n \t\t\t\t\t\t\tRTE_CRYPTO_ASYM_OP_DECRYPT ||\n \t\t\t\t\t\t\ti == RTE_CRYPTO_ASYM_OP_SIGN)) {\n \t\t\t\t\t\tstatus = test_cryptodev_asym_op(\n-\t\t\t\t\t\t\t&testsuite_params,\n+\t\t\t\t\t\t\tparams,\n \t\t\t\t\t\t\t&tc, test_msg, sessionless, i,\n \t\t\t\t\t\t\tRTE_RSA_KEY_TYPE_QT);\n \t\t\t\t\t}\n@@ -564,17 +561,6 @@ static int\n load_test_vectors(void)\n {\n \tuint32_t i = 0, v_size = 0;\n-\t/* Load MODEX vector*/\n-\tv_size = RTE_DIM(modex_test_case);\n-\tfor (i = 0; i < v_size; i++) {\n-\t\tif (test_vector.size >= (TEST_VECTOR_SIZE)) {\n-\t\t\tRTE_LOG(DEBUG, USER1,\n-\t\t\t\t\"TEST_VECTOR_SIZE too small\\n\");\n-\t\t\treturn -1;\n-\t\t}\n-\t\ttest_vector.address[test_vector.size] = &modex_test_case[i];\n-\t\ttest_vector.size++;\n-\t}\n \t/* Load MODINV vector*/\n \tv_size = RTE_DIM(modinv_test_case);\n \tfor (i = 0; i < v_size; i++) {\n@@ -604,9 +590,8 @@ static int\n test_one_by_one(void)\n {\n \tint status = TEST_SUCCESS;\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n \tuint32_t i = 0;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_cryptodev_info dev_info;\n \tint sessionless = 0;\n \n@@ -637,9 +622,8 @@ test_one_by_one(void)\n static int\n test_rsa_sign_verify(void)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tvoid *sess = NULL;\n \tstruct rte_cryptodev_info dev_info;\n \tint ret, status = TEST_SUCCESS;\n@@ -677,9 +661,8 @@ test_rsa_sign_verify(void)\n static int\n test_rsa_enc_dec(void)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tvoid *sess = NULL;\n \tstruct rte_cryptodev_info dev_info;\n \tint ret, status = TEST_SUCCESS;\n@@ -717,9 +700,8 @@ test_rsa_enc_dec(void)\n static int\n test_rsa_sign_verify_crt(void)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tvoid *sess = NULL;\n \tstruct rte_cryptodev_info dev_info;\n \tint ret, status = TEST_SUCCESS;\n@@ -757,9 +739,8 @@ test_rsa_sign_verify_crt(void)\n static int\n test_rsa_enc_dec_crt(void)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tvoid *sess = NULL;\n \tstruct rte_cryptodev_info dev_info;\n \tint ret, status = TEST_SUCCESS;\n@@ -797,26 +778,25 @@ test_rsa_enc_dec_crt(void)\n static int\n testsuite_setup(void)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n \tuint8_t valid_devs[RTE_CRYPTO_MAX_DEVS];\n \tstruct rte_cryptodev_info info;\n \tint ret, dev_id = -1;\n \tuint32_t i, nb_devs;\n \tuint16_t qp_id;\n \n-\tmemset(ts_params, 0, sizeof(*ts_params));\n+\tmemset(params, 0, sizeof(*params));\n \n \ttest_vector.size = 0;\n \tload_test_vectors();\n \n \t/* Device, op pool and session configuration for asymmetric crypto. 8< */\n-\tts_params->op_mpool = rte_crypto_op_pool_create(\n+\tparams->op_mpool = rte_crypto_op_pool_create(\n \t\t\t\"CRYPTO_ASYM_OP_POOL\",\n \t\t\tRTE_CRYPTO_OP_TYPE_ASYMMETRIC,\n \t\t\tTEST_NUM_BUFS, 0,\n \t\t\t0,\n \t\t\trte_socket_id());\n-\tif (ts_params->op_mpool == NULL) {\n+\tif (params->op_mpool == NULL) {\n \t\tRTE_LOG(ERR, USER1, \"Can't create ASYM_CRYPTO_OP_POOL\\n\");\n \t\treturn TEST_FAILED;\n \t}\n@@ -854,7 +834,7 @@ testsuite_setup(void)\n \tfor (i = 0; i < nb_devs ; i++) {\n \t\trte_cryptodev_info_get(valid_devs[i], &info);\n \t\tif (info.feature_flags & RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO) {\n-\t\t\tdev_id = ts_params->valid_devs[0] = valid_devs[i];\n+\t\t\tdev_id = params->valid_devs[0] = valid_devs[i];\n \t\t\tbreak;\n \t\t}\n \t}\n@@ -866,106 +846,58 @@ testsuite_setup(void)\n \t}\n \n \t/* Set valid device count */\n-\tts_params->valid_dev_count = nb_devs;\n+\tparams->valid_dev_count = nb_devs;\n \n \t/* configure device with num qp */\n-\tts_params->conf.nb_queue_pairs = info.max_nb_queue_pairs;\n-\tts_params->conf.socket_id = SOCKET_ID_ANY;\n-\tts_params->conf.ff_disable = RTE_CRYPTODEV_FF_SECURITY |\n+\tparams->conf.nb_queue_pairs = info.max_nb_queue_pairs;\n+\tparams->conf.socket_id = SOCKET_ID_ANY;\n+\tparams->conf.ff_disable = RTE_CRYPTODEV_FF_SECURITY |\n \t\t\tRTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO;\n \tTEST_ASSERT_SUCCESS(rte_cryptodev_configure(dev_id,\n-\t\t\t&ts_params->conf),\n+\t\t\t&params->conf),\n \t\t\t\"Failed to configure cryptodev %u with %u qps\",\n-\t\t\tdev_id, ts_params->conf.nb_queue_pairs);\n+\t\t\tdev_id, params->conf.nb_queue_pairs);\n \n \t/* configure qp */\n-\tts_params->qp_conf.nb_descriptors = DEFAULT_NUM_OPS_INFLIGHT;\n-\tts_params->qp_conf.mp_session = ts_params->session_mpool;\n+\tparams->qp_conf.nb_descriptors = DEFAULT_NUM_OPS_INFLIGHT;\n+\tparams->qp_conf.mp_session = params->session_mpool;\n \tfor (qp_id = 0; qp_id < info.max_nb_queue_pairs; qp_id++) {\n \t\tTEST_ASSERT_SUCCESS(rte_cryptodev_queue_pair_setup(\n-\t\t\tdev_id, qp_id, &ts_params->qp_conf,\n+\t\t\tdev_id, qp_id, &params->qp_conf,\n \t\t\trte_cryptodev_socket_id(dev_id)),\n \t\t\t\"Failed to setup queue pair %u on cryptodev %u ASYM\",\n \t\t\tqp_id, dev_id);\n \t}\n \n-\tts_params->session_mpool = rte_cryptodev_asym_session_pool_create(\n+\tparams->session_mpool = rte_cryptodev_asym_session_pool_create(\n \t\t\t\"test_asym_sess_mp\", TEST_NUM_SESSIONS, 0, 0,\n \t\t\tSOCKET_ID_ANY);\n \n-\tTEST_ASSERT_NOT_NULL(ts_params->session_mpool,\n+\tTEST_ASSERT_NOT_NULL(params->session_mpool,\n \t\t\t\"session mempool allocation failed\");\n \t/* >8 End of device, op pool and session configuration for asymmetric crypto section. */\n-\treturn TEST_SUCCESS;\n-}\n-\n-static void\n-testsuite_teardown(void)\n-{\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\n-\t/* Reset device */\n-\tts_params->qp_conf.mp_session = NULL;\n-\tts_params->conf.ff_disable = 0;\n-\tif (rte_cryptodev_configure(ts_params->valid_devs[0], &ts_params->conf))\n-\t\tRTE_LOG(DEBUG, USER1, \"Could not reset cryptodev\\n\");\n-\n-\tif (ts_params->op_mpool != NULL) {\n-\t\tRTE_LOG(DEBUG, USER1, \"CRYPTO_OP_POOL count %u\\n\",\n-\t\trte_mempool_avail_count(ts_params->op_mpool));\n-\t}\n-\n-\t/* Free session mempools */\n-\tif (ts_params->session_mpool != NULL) {\n-\t\trte_mempool_free(ts_params->session_mpool);\n-\t\tts_params->session_mpool = NULL;\n-\t}\n-}\n-\n-static int\n-ut_setup_asym(void)\n-{\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n \n-\tuint16_t qp_id;\n-\n-\t/* Reconfigure device to default parameters */\n-\tts_params->conf.socket_id = SOCKET_ID_ANY;\n-\n-\tTEST_ASSERT_SUCCESS(rte_cryptodev_configure(ts_params->valid_devs[0],\n-\t\t\t&ts_params->conf),\n-\t\t\t\"Failed to configure cryptodev %u\",\n-\t\t\tts_params->valid_devs[0]);\n-\n-\tfor (qp_id = 0; qp_id < ts_params->conf.nb_queue_pairs ; qp_id++) {\n-\t\tTEST_ASSERT_SUCCESS(rte_cryptodev_queue_pair_setup(\n-\t\t\tts_params->valid_devs[0], qp_id,\n-\t\t\t&ts_params->qp_conf,\n-\t\t\trte_cryptodev_socket_id(ts_params->valid_devs[0])),\n-\t\t\t\"Failed to setup queue pair %u on cryptodev %u\",\n-\t\t\tqp_id, ts_params->valid_devs[0]);\n-\t}\n-\n-\trte_cryptodev_stats_reset(ts_params->valid_devs[0]);\n-\n-\t/* Start the device */\n-\tTEST_ASSERT_SUCCESS(rte_cryptodev_start(ts_params->valid_devs[0]),\n+\tTEST_ASSERT_SUCCESS(rte_cryptodev_start(params->valid_devs[0]),\n \t\t\t\t\t\t\"Failed to start cryptodev %u\",\n-\t\t\t\t\t\tts_params->valid_devs[0]);\n+\t\t\t\t\t\tparams->valid_devs[0]);\n \n \treturn TEST_SUCCESS;\n }\n \n static void\n-ut_teardown_asym(void)\n+testsuite_teardown(void)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_cryptodev_stats stats;\n-\n-\trte_cryptodev_stats_get(ts_params->valid_devs[0], &stats);\n-\n-\t/* Stop the device */\n-\trte_cryptodev_stop(ts_params->valid_devs[0]);\n+\tparams->qp_conf.mp_session = NULL;\n+\tparams->conf.ff_disable = 0;\n+\tif (params->op_mpool != NULL) {\n+\t\trte_mempool_free(params->op_mpool);\n+\t\tparams->op_mpool = NULL;\n+\t}\n+\tif (params->session_mpool != NULL) {\n+\t\trte_mempool_free(params->session_mpool);\n+\t\tparams->session_mpool = NULL;\n+\t}\n+\trte_cryptodev_stop(params->valid_devs[0]);\n }\n \n static inline void print_asym_capa(\n@@ -1008,8 +940,7 @@ static inline void print_asym_capa(\n static int\n test_capability(void)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_cryptodev_info dev_info;\n \tconst struct rte_cryptodev_capabilities *dev_capa;\n \tint i = 0;\n@@ -1045,10 +976,9 @@ test_capability(void)\n static int\n test_dh_gen_shared_sec(struct rte_crypto_asym_xform *xfrm)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *op_mpool = params->op_mpool;\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_crypto_asym_op *asym_op = NULL;\n \tstruct rte_crypto_op *op = NULL, *result_op = NULL;\n \tvoid *sess = NULL;\n@@ -1127,10 +1057,9 @@ test_dh_gen_shared_sec(struct rte_crypto_asym_xform *xfrm)\n static int\n test_dh_gen_priv_key(struct rte_crypto_asym_xform *xfrm)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *op_mpool = params->op_mpool;\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_crypto_asym_op *asym_op = NULL;\n \tstruct rte_crypto_op *op = NULL, *result_op = NULL;\n \tvoid *sess = NULL;\n@@ -1207,10 +1136,9 @@ test_dh_gen_priv_key(struct rte_crypto_asym_xform *xfrm)\n static int\n test_dh_gen_pub_key(struct rte_crypto_asym_xform *xfrm)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *op_mpool = params->op_mpool;\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_crypto_asym_op *asym_op = NULL;\n \tstruct rte_crypto_op *op = NULL, *result_op = NULL;\n \tvoid *sess = NULL;\n@@ -1295,10 +1223,9 @@ test_dh_gen_pub_key(struct rte_crypto_asym_xform *xfrm)\n static int\n test_dh_gen_kp(struct rte_crypto_asym_xform *xfrm)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *op_mpool = params->op_mpool;\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_crypto_asym_op *asym_op = NULL;\n \tstruct rte_crypto_op *op = NULL, *result_op = NULL;\n \tvoid *sess = NULL;\n@@ -1381,10 +1308,9 @@ test_dh_gen_kp(struct rte_crypto_asym_xform *xfrm)\n static int\n test_mod_inv(void)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *op_mpool = params->op_mpool;\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_crypto_asym_op *asym_op = NULL;\n \tstruct rte_crypto_op *op = NULL, *result_op = NULL;\n \tvoid *sess = NULL;\n@@ -1493,10 +1419,9 @@ test_mod_inv(void)\n static int\n test_mod_exp(void)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *op_mpool = params->op_mpool;\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_crypto_asym_op *asym_op = NULL;\n \tstruct rte_crypto_op *op = NULL, *result_op = NULL;\n \tvoid *sess = NULL;\n@@ -1641,10 +1566,9 @@ test_dh_keygenration(void)\n static int\n test_dsa_sign(struct rte_crypto_dsa_op_param *dsa_op)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *op_mpool = params->op_mpool;\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_crypto_asym_op *asym_op = NULL;\n \tstruct rte_crypto_op *op = NULL, *result_op = NULL;\n \tvoid *sess = NULL;\n@@ -1724,10 +1648,9 @@ test_dsa_sign(struct rte_crypto_dsa_op_param *dsa_op)\n static int\n test_dsa_verify(struct rte_crypto_dsa_op_param *dsa_op)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tstruct rte_mempool *op_mpool = params->op_mpool;\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_crypto_asym_op *asym_op = NULL;\n \tstruct rte_crypto_op *op = NULL, *result_op = NULL;\n \tvoid *sess = NULL;\n@@ -1837,12 +1760,11 @@ test_dsa(void)\n static int\n test_ecdsa_sign_verify(enum curve curve_id)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tstruct rte_mempool *op_mpool = params->op_mpool;\n \tstruct crypto_testsuite_ecdsa_params input_params;\n \tvoid *sess = NULL;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_crypto_op *result_op = NULL;\n \tuint8_t output_buf_r[TEST_DATA_SIZE];\n \tuint8_t output_buf_s[TEST_DATA_SIZE];\n@@ -2038,12 +1960,11 @@ test_ecdsa_sign_verify_all_curve(void)\n static int\n test_ecpm(enum curve curve_id)\n {\n-\tstruct crypto_testsuite_params_asym *ts_params = &testsuite_params;\n-\tstruct rte_mempool *sess_mpool = ts_params->session_mpool;\n-\tstruct rte_mempool *op_mpool = ts_params->op_mpool;\n+\tstruct rte_mempool *sess_mpool = params->session_mpool;\n+\tstruct rte_mempool *op_mpool = params->op_mpool;\n \tstruct crypto_testsuite_ecpm_params input_params;\n \tvoid *sess = NULL;\n-\tuint8_t dev_id = ts_params->valid_devs[0];\n+\tuint8_t dev_id = params->valid_devs[0];\n \tstruct rte_crypto_op *result_op = NULL;\n \tuint8_t output_buf_x[TEST_DATA_SIZE];\n \tuint8_t output_buf_y[TEST_DATA_SIZE];\n@@ -2196,25 +2117,54 @@ test_ecpm_all_curve(void)\n \treturn overall_status;\n }\n \n+static int\n+setup_generic(void)\n+{\n+\tmemset(self, 0, sizeof(*self));\n+\tself->op = rte_crypto_op_alloc(params->op_mpool,\n+\t\t\tRTE_CRYPTO_OP_TYPE_ASYMMETRIC);\n+\tif (!self->op) {\n+\t\tRTE_LOG(ERR, USER1,\n+\t\t\t\"line %u FAILED: Failed to allocate asymmetric crypto operation struct\",\n+\t\t\t__LINE__);\n+\t\treturn TEST_FAILED;\n+\t}\n+\treturn TEST_SUCCESS;\n+}\n+\n+static void\n+teardown_generic(void)\n+{\n+\tuint8_t dev_id = params->valid_devs[0];\n+\n+\tif (self->sess != NULL)\n+\t\trte_cryptodev_asym_session_free(dev_id, self->sess);\n+\tif (self->op != NULL)\n+\t\trte_crypto_op_free(self->op);\n+\tself->sess = NULL;\n+\tself->op = NULL;\n+\tself->result_op = NULL;\n+}\n+\n static struct unit_test_suite cryptodev_openssl_asym_testsuite  = {\n \t.suite_name = \"Crypto Device OPENSSL ASYM Unit Test Suite\",\n \t.setup = testsuite_setup,\n \t.teardown = testsuite_teardown,\n \t.unit_test_cases = {\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_capability),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_dsa),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym,\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic, test_capability),\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic, test_dsa),\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic,\n \t\t\t\ttest_dh_keygenration),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_rsa_enc_dec),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym,\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic, test_rsa_enc_dec),\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic,\n \t\t\t\ttest_rsa_sign_verify),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym,\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic,\n \t\t\t\ttest_rsa_enc_dec_crt),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym,\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic,\n \t\t\t\ttest_rsa_sign_verify_crt),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_mod_inv),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_mod_exp),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_one_by_one),\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic, test_mod_exp),\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic, test_mod_inv),\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic, test_one_by_one),\n \t\tTEST_CASES_END() /**< NULL terminate unit test array */\n \t}\n };\n@@ -2224,7 +2174,7 @@ static struct unit_test_suite cryptodev_qat_asym_testsuite  = {\n \t.setup = testsuite_setup,\n \t.teardown = testsuite_teardown,\n \t.unit_test_cases = {\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_one_by_one),\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic, test_one_by_one),\n \t\tTEST_CASES_END() /**< NULL terminate unit test array */\n \t}\n };\n@@ -2234,15 +2184,15 @@ static struct unit_test_suite cryptodev_octeontx_asym_testsuite  = {\n \t.setup = testsuite_setup,\n \t.teardown = testsuite_teardown,\n \t.unit_test_cases = {\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_capability),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym,\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic, test_capability),\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic,\n \t\t\t\ttest_rsa_enc_dec_crt),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym,\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic,\n \t\t\t\ttest_rsa_sign_verify_crt),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_mod_exp),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym,\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic, test_mod_exp),\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic,\n \t\t\t     test_ecdsa_sign_verify_all_curve),\n-\t\tTEST_CASE_ST(ut_setup_asym, ut_teardown_asym,\n+\t\tTEST_CASE_ST(setup_generic, teardown_generic,\n \t\t\t\ttest_ecpm_all_curve),\n \t\tTEST_CASES_END() /**< NULL terminate unit test array */\n \t}\n",
    "prefixes": [
        "v2",
        "1/4"
    ]
}