Add Travis jobs to check compilation with DPDK experimental API enabled.
This will help us catch issues for the day we need one of them.

Note: this should not be merged to master, intended for dpdk-latest
branch only.

Signed-off-by: David Marchand <[email protected]>
Signed-off-by: Ian Stokes <[email protected]>
---
 .ci/linux-build.sh                   |  8 +++++++-
 .github/workflows/build-and-test.yml | 10 +++++++---
 .travis.yml                          |  3 +++
 3 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 977449350b..c8621201ab 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -7,6 +7,9 @@ CFLAGS_FOR_OVS="-g -O2"
 SPARSE_FLAGS=""
 EXTRA_OPTS="--enable-Werror"
 
+[ -z "$DPDK_EXPERIMENTAL" ] || DPDK=1
+[ -z "$DPDK_SHARED" ] || DPDK=1
+
 function install_kernel()
 {
     if [[ "$1" =~ ^5.* ]]; then
@@ -199,7 +202,7 @@ if [ "$KERNEL" ]; then
     install_kernel $KERNEL
 fi
 
-if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
+if [ "$DPDK" ]; then
     if [ -z "$DPDK_VER" ]; then
         DPDK_VER="20.11"
     fi
@@ -208,6 +211,9 @@ if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
         # Disregard cast alignment errors until DPDK is fixed
         CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} -Wno-cast-align"
     fi
+    if [ -n "$DPDK_EXPERIMENTAL" ]; then
+        CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} -DALLOW_EXPERIMENTAL_API"
+    fi
 fi
 
 if [ "$CC" = "clang" ]; then
diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index ce98a9f98f..649b1405d2 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -17,6 +17,7 @@ jobs:
       DEB_PACKAGE: ${{ matrix.deb_package }}
       DPDK:        ${{ matrix.dpdk }}
       DPDK_SHARED: ${{ matrix.dpdk_shared }}
+      DPDK_EXPERIMENTAL: ${{ matrix.dpdk_experimental }}
       KERNEL:      ${{ matrix.kernel }}
       KERNEL_LIST: ${{ matrix.kernel_list }}
       LIBS:        ${{ matrix.libs }}
@@ -102,6 +103,9 @@ jobs:
             dpdk_shared:  dpdk-shared
             opts:         --enable-shared
 
+          - compiler:     gcc
+            dpdk_shared:  dpdk-experimental
+
           - compiler:     gcc
             m32:          m32
             opts:         --disable-ssl
@@ -124,7 +128,7 @@ jobs:
         python-version: '3.x'
 
     - name: create ci signature file for the dpdk cache key
-      if:   matrix.dpdk != '' || matrix.dpdk_shared != ''
+      if:   matrix.dpdk != '' || matrix.dpdk_shared != '' || 
matrix.dpdk_experimental != ''
       # This will collect most of DPDK related lines, so hash will be different
       # if something changed in a way we're building DPDK including DPDK_VER.
       # This also allows us to use cache from any branch as long as version
@@ -134,10 +138,10 @@ jobs:
         cat dpdk-ci-signature
 
     - name: cache
-      if:   matrix.dpdk != '' || matrix.dpdk_shared != ''
+      if:   matrix.dpdk != '' || matrix.dpdk_shared != '' || 
matrix.dpdk_experimental != ''
       uses: actions/cache@v2
       env:
-        matrix_key: ${{ matrix.dpdk }}${{ matrix.dpdk_shared }}
+        matrix_key: ${{ matrix.dpdk }}${{ matrix.dpdk_shared }}${{ 
matrix.dpdk_experimental}}
         ci_key:     ${{ hashFiles('dpdk-ci-signature') }}
       with:
         path: dpdk-dir
diff --git a/.travis.yml b/.travis.yml
index 7e87360256..7f4d5d99a3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -39,6 +39,9 @@ matrix:
     - arch: arm64
       compiler: gcc
       env: TESTSUITE=1 DPDK=1
+    - arch: arm64
+      compiler: gcc
+      env: DPDK_EXPERIMENTAL=1
     - arch: arm64
       compiler: gcc
       env: KERNEL_LIST="5.5 4.19"
-- 
2.23.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to