[dpdk-dev] [EXT] [PATCH v2 3/6] test/crypto: refactor to use sub-testsuites

Akhil Goyal gakhil at marvell.com
Wed Apr 14 13:18:12 CEST 2021


Hi Declan,

> > //snip
> >
> >>   	nb_devs = rte_cryptodev_count();
> >>   	if (nb_devs < 1) {
> >>   		RTE_LOG(WARNING, USER1, "No crypto devices found?\n");
> >> @@ -838,6 +630,228 @@ testsuite_setup(void)
> >>   	return TEST_SUCCESS;
> >>   }
> >>
> >> +static int
> >> +qat_testsuite_setup(void)
> >> +{
> >> +	return testsuite_params_setup();
> >> +}
> >> +
> >> +static int
> >> +aesni_mb_testsuite_setup(void)
> >> +{
> >> +	int32_t nb_devs, ret;
> >> +	nb_devs = rte_cryptodev_device_count_by_driver(
> >> +			rte_cryptodev_driver_id_get(
> >> +			RTE_STR(CRYPTODEV_NAME_AESNI_MB_PMD)));
> >> +	if (nb_devs < 1) {
> >> +		ret =
> >> rte_vdev_init(RTE_STR(CRYPTODEV_NAME_AESNI_MB_PMD), NULL);
> >> +
> >> +		TEST_ASSERT(ret == 0,
> >> +			"Failed to create instance of pmd : %s",
> >> +			RTE_STR(CRYPTODEV_NAME_AESNI_MB_PMD));
> >> +	}
> >> +	return testsuite_params_setup();
> >> +}
> >
> > Why is it required to have a separate function for each of the PMD?
> > I believe a single function with an argument should be sufficient.
> > And in that single function a simple switch case may process the vdevs
> differently.
> >
> > As of now, it looks that moving the unnecessary duplicate code from
> > one place to another.
> >
> > This was one cleanup we have been looking forward to from quite some
> time.
> > Every time a new PMD comes, a separate function is formed and the length
> of
> > the code increases.
> >
> >
> > //snip
> 
> The virtual device creation code could be dropped completely if user is
> guaranteed to create the required crypto PMD from EAL devargs and we
> could assume that the first crypto device of the test suite type is
> always used?

Agreed.
 
> 
> >>
> >> -static struct unit_test_suite cryptodev_virtio_testsuite = {
> >> +static struct unit_test_suite cryptodev_virtio_sub_testsuite = {
> >>   	.suite_name = "Crypto VIRTIO Unit Test Suite",
> >> -	.setup = testsuite_setup,
> >> -	.teardown = testsuite_teardown,
> >>   	.unit_test_cases = {
> >>   		TEST_CASE_ST(ut_setup, ut_teardown,
> >> test_AES_cipheronly_all),
> >>
> >> @@ -13935,15 +14107,12 @@ static struct unit_test_suite
> >> cryptodev_virtio_testsuite = {
> >>   	}
> >>   };
> >>
> >> -static struct unit_test_suite cryptodev_caam_jr_testsuite  = {
> >> -	.suite_name = "Crypto CAAM JR Unit Test Suite",
> >> -	.setup = testsuite_setup,
> >> -	.teardown = testsuite_teardown,
> >> +static struct unit_test_suite cryptodev_caam_jr_sub_testsuite = {
> >> +	.suite_name = "Crypto CAAM JR Sub Unit Test Suite",
> >>   	.unit_test_cases = {
> >>   		TEST_CASE_ST(ut_setup, ut_teardown,
> >> -			     test_device_configure_invalid_dev_id),
> >> -		TEST_CASE_ST(ut_setup, ut_teardown,
> >> -			     test_multi_session),
> >> +				test_device_configure_invalid_dev_id),
> >> +		TEST_CASE_ST(ut_setup, ut_teardown, test_multi_session),
> >>
> >>   		TEST_CASE_ST(ut_setup, ut_teardown, test_AES_chain_all),
> >>   		TEST_CASE_ST(ut_setup, ut_teardown, test_3DES_chain_all),
> >> @@ -13955,58 +14124,28 @@ static struct unit_test_suite
> >> cryptodev_caam_jr_testsuite  = {
> >>   	}
> >>   };
> >
> > Splitting the complete testsuite into logical generic algo based sub testsuite
> > Is a good idea. I appreciate that.
> >
> > But introducing PMD based test suite is not recommended. We have been
> > trying from past few releases to clean this up. And this patch is again
> introducing
> > the same. When I first saw this series, I saw only the algo based splitting
> and
> > when it was run on the board, it was showing results in an organized way.
> > But this was not expected that, PMD based test suites are reintroduced by
> > Intel who helped in removing them in last few releases.
> >
> > This will make an unnecessary addition of duplicate code whenever a new
> PMD
> > is introduced.
> >
> > I recommend to use a single parent suite - cryptodev_testsuite and there
> > Can be multiple sub testsuites based on Algos etc. but not on the basis of
> PMD.
> >
> > Regards,
> > Akhil
> >
> 
> Hey Akhil, I understand the sentiment of this, we were just trying to
> avoid necessary failures by executing testsuites which aren't supported
> by the PMD under test, and we're confident that all testsuites/tests are
> correctly verifying their capabilities requirements. If we add some code
> into the testsuite setup functions to test capabilities required for the
> testsuites vs those required by the PMD then we could do as you are
> suggesting. If we can make this change quickly would you consider this
> patchset for inclusion in RC2?

I can take these patches upto RC2.


More information about the dev mailing list