[v3,0/4] Refactor crypto unit tests.
mbox series

Message ID 20191213152245.13477-1-adamx.dybkowski@intel.com
Headers show
Series
  • Refactor crypto unit tests.
Related show

Message

Adam Dybkowski Dec. 13, 2019, 3:22 p.m. UTC
This patch set is a first step to refactor the overly complex symmetric
crypto unit tests. It merges many separate arrays of the tests
for these PMDs: null, aesni_mb, aesni_gcm, openssl, qat, sw_snow3g,
sw_kasumi, sw_zuc into one big array that's then used when running
unit tests on these PMDs.

Individual test functions check the capabilities and execute the rest
of the test or skip (return -ENOTSUP) based on the particular test
requirements - e.g. test if PMD supports ZUC algo or even a particular
key length in few cases. Few edge cases required to check the PMD
itself (e.g. run on QAT only, or skip on AES NI / AES GCM). 

It's the first step of bigger refactoring. Maintainers of other PMDs
are encouraged to add their PMD unit tests also into this big central
array and remove individual test macro arrays.

This patch doesn't address next refactoring steps to be done in the
future: geting rid of many small (usually 1-2 line) test functions,
created separately for every test case; and simplifying many bigger
functions that currently do similar things but work on different
test vector structures.

NOTICE: This patch set depends on the series
http://patches.dpdk.org/project/dpdk/list/?series=7792
that must be applied first.

A simple script to check if symmetric crypto unit tests work properly
on multiple PMDs at once, update the PMDs list to your needs:

for PMD in null aesni_mb aesni_gcm openssl qat scheduler sw_snow3g sw_kasumi sw_zuc
do
    echo +++++ $PMD +++++
    echo cryptodev_${PMD}_autotest | build/app/test -c7 -n1 --log-level=7 | grep ' Tests [Failed|Passed]'
done

---
v2:
* Update the cover letter, regenerate the patch file.
v3:
* Break very large commit into four smaller commits, easier to review.
* Show in the cover letter how to run unit tests on multiple PMDs at once.

Adam Dybkowski (4):
  test/crypto: refactor unit tests
  test/crypto: refactor unit tests - continuation
  test/crypto: add capability checks
  test/crypto: refactor unit tests into one combined array

 app/test/test_cryptodev.c                  | 15891 +++++++++----------
 app/test/test_cryptodev_blockcipher.c      |     2 +-
 app/test/test_cryptodev_des_test_vectors.h |     6 +-
 3 files changed, 7303 insertions(+), 8596 deletions(-)