aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatias Elo <matias.elo@nokia.com>2021-07-14 12:33:16 +0300
committerMatias Elo <matias.elo@nokia.com>2021-08-18 08:53:56 +0300
commit6b6de8d7044d7a484b671a80768cf068f5b56814 (patch)
treec852e252ada9253349e0b16a5b8f5d514fa09b0b
parent954ac01412a07b5aabca9e5ee4c30e0723b766f3 (diff)
ci: add new test case for individual dpdk crypto drivers
Add new test case for running validation tests with selected DPDK crypto device drivers. The first tested drivers are aesni_mb and aesni_gcm. The test's maximum thread count has been limited to 8, so that the crypto devices have enough queue pairs (default=8) for lockless operation. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
-rw-r--r--.github/workflows/ci-pipeline.yml18
-rw-r--r--platform/linux-dpdk/test/crypto.conf8
-rwxr-xr-xscripts/ci/check_validation.sh22
3 files changed, 48 insertions, 0 deletions
diff --git a/.github/workflows/ci-pipeline.yml b/.github/workflows/ci-pipeline.yml
index f41b51f4f..47cfb3922 100644
--- a/.github/workflows/ci-pipeline.yml
+++ b/.github/workflows/ci-pipeline.yml
@@ -277,3 +277,21 @@ jobs:
- name: Failure log
if: ${{ failure() }}
run: find . -name "*.trs" | xargs grep -l '^.test-result. FAIL' | while read trs ; do echo FAILURE detected at $trs; cat ${trs%%.trs}.log ; done
+
+ Run_crypto:
+ runs-on: ubuntu-18.04
+ env:
+ OS: ubuntu_20.04
+ strategy:
+ fail-fast: false
+ matrix:
+ driver: [crypto_aesni_mb, crypto_aesni_gcm]
+ steps:
+ - uses: actions/checkout@v2
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}"
+ -e CONF="${CONF}" -e ODP_PLATFORM_PARAMS="--vdev=${{matrix.driver}}"
+ -e ODP_CONFIG_FILE=/odp/platform/linux-dpdk/test/crypto.conf
+ $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/check_validation.sh
+ - name: Failure log
+ if: ${{ failure() }}
+ run: find . -name "*.trs" | xargs grep -l '^.test-result. FAIL' | while read trs ; do echo FAILURE detected at $trs; cat ${trs%%.trs}.log ; done
diff --git a/platform/linux-dpdk/test/crypto.conf b/platform/linux-dpdk/test/crypto.conf
new file mode 100644
index 000000000..25e0652bf
--- /dev/null
+++ b/platform/linux-dpdk/test/crypto.conf
@@ -0,0 +1,8 @@
+# Mandatory fields
+odp_implementation = "linux-dpdk"
+config_file_version = "0.1.12"
+
+system: {
+ # One crypto queue pair is required per thread for lockless operation
+ thread_count_max = 8
+}
diff --git a/scripts/ci/check_validation.sh b/scripts/ci/check_validation.sh
new file mode 100755
index 000000000..c2d93292a
--- /dev/null
+++ b/scripts/ci/check_validation.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+set -e
+
+echo 1500 | tee /proc/sys/vm/nr_hugepages
+mkdir -p /mnt/huge
+mount -t hugetlbfs nodev /mnt/huge
+
+"`dirname "$0"`"/build_${ARCH}.sh
+
+cd "$(dirname "$0")"/../..
+
+# Ignore possible failures there because these tests depends on measurements
+# and systems might differ in performance.
+export CI="true"
+
+# Run only validation tests
+pushd ./test/validation/api/
+make check
+popd
+
+#dpdk wrapper script can umount hugepages itself
+umount /mnt/huge || true