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
