Hi Konstantin, > > > Test_stats is an optional cryptodev op and if it is not defined by the > > PMD, it should not run the test cases for it. > > > > Signed-off-by: Apeksha Gupta <apeksha.gu...@nxp.com> > > --- > > app/test/test_cryptodev.c | 5 ++++- > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c > > index c624018ee..1ad650675 100644 > > --- a/app/test/test_cryptodev.c > > +++ b/app/test/test_cryptodev.c > > @@ -8801,6 +8801,10 @@ test_stats(void) > > if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO) > > return -ENOTSUP; > > > > + dev = &rte_cryptodevs[ts_params->valid_devs[0]]; > > + if (dev->dev_ops->stats_get == 0) > > + return -ENOTSUP; > > + > > > > rte_cryptodevs[] and dev_ops supposed to be internal for cryptodev > (though in practice they are not). > It is not a good practice for the app to access them directly. >
Yes, you are absolutely correct. The test case is not properly written. App should not access the dev_ops directly. Apeksha, You can do the following change to fix this. diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index 1ed2df898..aa14d42fa 100644 --- a/app/test/test_cryptodev.c +++ b/app/test/test_cryptodev.c @@ -8751,7 +8751,6 @@ test_stats(void) struct crypto_testsuite_params *ts_params = &testsuite_params; struct rte_cryptodev_stats stats; struct rte_cryptodev *dev; - cryptodev_stats_get_t temp_pfn; if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO) return -ENOTSUP; @@ -8769,19 +8768,16 @@ test_stats(void) &cap_idx) == NULL) return -ENOTSUP; + if (rte_cryptodev_stats_get(ts_params->valid_devs[0], &stats) + == -ENOTSUP) + return -ENOTSUP; + rte_cryptodev_stats_reset(ts_params->valid_devs[0]); TEST_ASSERT((rte_cryptodev_stats_get(ts_params->valid_devs[0] + 600, &stats) == -ENODEV), "rte_cryptodev_stats_get invalid dev failed"); TEST_ASSERT((rte_cryptodev_stats_get(ts_params->valid_devs[0], 0) != 0), "rte_cryptodev_stats_get invalid Param failed"); - dev = &rte_cryptodevs[ts_params->valid_devs[0]]; - temp_pfn = dev->dev_ops->stats_get; - dev->dev_ops->stats_get = (cryptodev_stats_get_t)0; - TEST_ASSERT((rte_cryptodev_stats_get(ts_params->valid_devs[0], &stats) - == -ENOTSUP), - "rte_cryptodev_stats_get invalid Param failed"); - dev->dev_ops->stats_get = temp_pfn; /* Test expected values */ ut_setup();