From: Bruce Richardson <bruce.richardson@intel.com>
To: David Marchand <david.marchand@redhat.com>
Cc: <dev@dpdk.org>, Aaron Conole <aconole@redhat.com>
Subject: Re: [PATCH v2 9/9] ci: run reference binaries against current ABI
Date: Fri, 18 Sep 2026 16:41:53 +0100 [thread overview]
Message-ID: <aq1bwV3yNlXUZeHT@bricha3-mobl1.ger.corp.intel.com> (raw)
In-Reply-To: <20260723125559.3087579-10-david.marchand@redhat.com>
On Thu, Jul 23, 2026 at 02:55:58PM +0200, David Marchand wrote:
> Let's check if a testpmd and unit tests from a reference build can run
> with the current release libraries/drivers.
>
> This gives another level of ABI checking, like catching regressions on
> experimental or internal ABI symbols that get promoted to stable.
>
> We may need to skip unit tests that were added since the reference.
> So add a ABI_SKIP_TESTS environment variable in preparation.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
> Changes since v1:
> - dropped hack, testing this patch can't be done in the CI now,
> - emptied the excluded tests list,
> - added test-null.sh,
>
> ---
This is a good test to run. It's something I believe our internal
validation team does at times too. Some comments inline below, nothing
major though.
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> .ci/linux-build.sh | 33 ++++++++++++++++++++++++++++++---
> .github/workflows/build.yml | 1 +
> 2 files changed, 31 insertions(+), 3 deletions(-)
>
> diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
> index a5e602ed83..032f3726e8 100755
> --- a/.ci/linux-build.sh
> +++ b/.ci/linux-build.sh
> @@ -206,23 +206,33 @@ if [ "$ABI_CHECKS" = "true" ]; then
> # don't try to link apps.
> REF_OPTS="$REF_OPTS -Dcheck_includes=false"
> REF_OPTS="$REF_OPTS -Ddeveloper_mode=disabled"
> - REF_OPTS="$REF_OPTS -Ddisable_apps=*"
> + REF_OPTS="$REF_OPTS -Denable_apps=test,test-pmd"
> REF_OPTS="$REF_OPTS -Denable_docs=false"
> REF_OPTS="$REF_OPTS -Dexamples="
> - REF_OPTS="$REF_OPTS -Dtests=false"
These changes should go in the previous patch, I think - certainly you can
drop the tests=false one, since it should be a no-op.
> refsrcdir=$(readlink -f $(pwd)/../dpdk-$REF_GIT_TAG)
> git clone --single-branch -b "$REF_GIT_TAG" $REF_GIT_REPO $refsrcdir
> meson setup $REF_OPTS $refsrcdir $refsrcdir/build
> ninja -C $refsrcdir/build
> DESTDIR=$(pwd)/reference meson install -C $refsrcdir/build
> find reference/usr/local -name '*.a' -delete
> - rm -rf reference/usr/local/bin
> + rm -rf reference/usr/local/bin/*
> + cp $refsrcdir/build/app/dpdk-test reference/usr/local/bin/dpdk-test
> + cp $refsrcdir/build/app/dpdk-testpmd reference/usr/local/bin/dpdk-testpmd
At this point I'd suggest running "meson test --list --suite=fast-tests" to
get the list of available tests in the reference implementation.
> rm -rf reference/usr/local/share
> echo $REF_GIT_TAG > reference/VERSION
> fi
>
> DESTDIR=$(pwd)/install meson install -C build
> devtools/check-abi.sh reference install ${ABI_CHECKS_WARN_ONLY:-}
> +
> + failed=
> + configure_coredump
> + mv -f build/app/dpdk-testpmd build/app/dpdk-testpmd.ori
> + cp reference/usr/local/bin/dpdk-testpmd build/app/dpdk-testpmd
> + devtools/test-null.sh || failed="true"
> + mv -f build/app/dpdk-testpmd.ori build/app/dpdk-testpmd
> + catch_coredump
> + [ "$failed" != "true" ]
> fi
>
> if [ "$RUN_TESTS" = "true" ]; then
> @@ -233,6 +243,23 @@ if [ "$RUN_TESTS" = "true" ]; then
> catch_ubsan DPDK:fast-tests build/meson-logs/testlog.txt
> check_traces
> [ "$failed" != "true" ]
> +
> + if [ "$ABI_CHECKS" = "true" ]; then
> + failed=
> + configure_coredump
> + mv -f build/app/dpdk-test build/app/dpdk-test.ori
> + cp reference/usr/local/bin/dpdk-test build/app/dpdk-test
> + for t in ${ABI_SKIP_TESTS}; do
> + DPDK_TEST_SKIP=${DPDK_TEST_SKIP+$DPDK_TEST_SKIP,}$t
> + done
As well as the ABI_SKIP_TESTS, you could automate the list by again running
"meson test --list --suite..." and then only running the tests in both
lists. [using "sort" and "uniq -d" perhaps?]
> + sudo env DPDK_TEST_SKIP="$DPDK_TEST_SKIP" \
> + meson test -C build --suite fast-tests -t 3 --no-stdsplit --print-errorlogs || failed="true"
> + catch_coredump
> + catch_ubsan DPDK:fast-tests build/meson-logs/testlog.txt
> + check_traces
> + mv -f build/app/dpdk-test.ori build/app/dpdk-test
> + [ "$failed" != "true" ]
> + fi
> fi
>
> # Test examples compilation with an installed dpdk
> diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
> index c63a9a3982..5ee55f4d27 100644
> --- a/.github/workflows/build.yml
> +++ b/.github/workflows/build.yml
> @@ -39,6 +39,7 @@ jobs:
> env:
> AARCH64: ${{ matrix.config.cross == 'aarch64' }}
> ABI_CHECKS: ${{ contains(matrix.config.checks, 'abi') }}
> + ABI_SKIP_TESTS: none
> ASAN: ${{ contains(matrix.config.checks, 'asan') }}
> BUILD_32BIT: ${{ matrix.config.cross == 'i386' }}
> BUILD_DEBUG: ${{ contains(matrix.config.checks, 'debug') }}
> --
> 2.54.0
>
next prev parent reply other threads:[~2026-09-18 15:42 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-17 9:29 [PATCH 00/10] Limit usage of internal API in tests David Marchand
2026-07-17 9:29 ` [PATCH 01/10] bbdev: fix stats aggregation from queues David Marchand
2026-07-17 17:22 ` Chautru, Nicolas
2026-07-18 7:47 ` David Marchand
2026-07-17 9:29 ` [PATCH 02/10] bbdev: add per-queue statistics API David Marchand
2026-07-17 9:29 ` [PATCH 03/10] hash: fix GFNI stubs export David Marchand
2026-07-17 9:38 ` Bruce Richardson
2026-07-17 9:55 ` Konstantin Ananyev
2026-07-17 9:29 ` [PATCH 04/10] test: uninline helper for forking David Marchand
2026-07-17 9:39 ` Bruce Richardson
2026-07-17 9:30 ` [PATCH 05/10] test/bonding: get MAC address with public API David Marchand
2026-07-17 9:30 ` [PATCH 06/10] test/devargs: check driver presence " David Marchand
2026-07-17 9:55 ` Bruce Richardson
2026-07-17 10:08 ` David Marchand
2026-07-17 10:14 ` Bruce Richardson
2026-07-17 12:34 ` David Marchand
2026-07-17 12:56 ` Thomas Monjalon
2026-07-17 9:30 ` [PATCH 07/10] test/vdev: find device " David Marchand
2026-07-17 9:30 ` [PATCH 08/10] test: limit internal API usage David Marchand
2026-07-17 9:30 ` [PATCH 09/10] ci: make ABI reference generation faster David Marchand
2026-07-17 9:30 ` [PATCH 10/10] ci: run reference unit tests against ABI David Marchand
2026-07-17 9:35 ` [PATCH 00/10] Limit usage of internal API in tests David Marchand
2026-07-23 12:55 ` [PATCH v2 0/9] " David Marchand
2026-07-23 12:55 ` [PATCH v2 1/9] bbdev: add per-queue statistics API David Marchand
2026-09-18 15:29 ` Bruce Richardson
2026-07-23 12:55 ` [PATCH v2 2/9] hash: fix GFNI stubs export David Marchand
2026-07-23 12:55 ` [PATCH v2 3/9] test: uninline helper for forking David Marchand
2026-07-23 12:55 ` [PATCH v2 4/9] test/bonding: get MAC address with public API David Marchand
2026-07-23 13:30 ` Bruce Richardson
2026-07-23 12:55 ` [PATCH v2 5/9] test/devargs: rely on net null driver David Marchand
2026-07-23 13:31 ` Bruce Richardson
2026-07-23 12:55 ` [PATCH v2 6/9] test/vdev: find device with public API David Marchand
2026-09-18 15:30 ` Bruce Richardson
2026-07-23 12:55 ` [PATCH v2 7/9] test: limit internal API usage David Marchand
2026-07-23 13:33 ` Bruce Richardson
2026-07-23 15:04 ` Morten Brørup
2026-07-23 12:55 ` [PATCH v2 8/9] ci: make ABI reference generation faster David Marchand
2026-09-18 15:32 ` Bruce Richardson
2026-07-23 12:55 ` [PATCH v2 9/9] ci: run reference binaries against current ABI David Marchand
2026-09-18 15:41 ` Bruce Richardson [this message]
2026-09-21 11:47 ` [PATCH v3 0/9] Limit usage of internal API in tests David Marchand
2026-09-21 11:47 ` [PATCH v3 1/9] bbdev: add per-queue statistics API David Marchand
2026-09-21 11:47 ` [PATCH v3 2/9] hash: fix GFNI stubs export David Marchand
2026-09-21 11:47 ` [PATCH v3 3/9] test: uninline helper for forking David Marchand
2026-09-21 11:47 ` [PATCH v3 4/9] test/bonding: get MAC address with public API David Marchand
2026-09-21 11:47 ` [PATCH v3 5/9] test/devargs: rely on net null driver David Marchand
2026-09-21 16:38 ` Stephen Hemminger
2026-09-21 11:47 ` [PATCH v3 6/9] test/vdev: find device with public API David Marchand
2026-09-21 16:39 ` Stephen Hemminger
2026-09-21 11:47 ` [PATCH v3 7/9] test: limit internal API usage David Marchand
2026-09-21 11:47 ` [PATCH v3 8/9] ci: make ABI reference generation faster David Marchand
2026-09-21 11:47 ` [PATCH v3 9/9] ci: run reference binaries against current ABI David Marchand
2026-09-21 16:39 ` Stephen Hemminger
2026-09-22 7:38 ` David Marchand
2026-09-22 9:40 ` [PATCH v4 0/9] Limit usage of internal API in tests David Marchand
2026-09-22 9:40 ` [PATCH v4 1/9] bbdev: add per-queue statistics API David Marchand
2026-09-22 9:40 ` [PATCH v4 2/9] hash: fix GFNI stubs export David Marchand
2026-09-22 9:40 ` [PATCH v4 3/9] test: uninline helper for forking David Marchand
2026-09-22 9:40 ` [PATCH v4 4/9] test/bonding: get MAC address with public API David Marchand
2026-09-22 9:40 ` [PATCH v4 5/9] test/devargs: rely on net null driver David Marchand
2026-09-22 9:40 ` [PATCH v4 6/9] test/vdev: find device with public API David Marchand
2026-09-22 9:40 ` [PATCH v4 7/9] test: limit internal API usage David Marchand
2026-09-22 9:40 ` [PATCH v4 8/9] ci: make ABI reference generation faster David Marchand
2026-09-22 9:40 ` [PATCH v4 9/9] ci: run reference binaries against current ABI David Marchand
2026-09-22 10:03 ` Bruce Richardson
2026-09-29 13:38 ` [PATCH v4 0/9] Limit usage of internal API in tests David Marchand
2026-09-29 19:50 ` Stephen Hemminger
2026-09-30 7:32 ` David Marchand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aq1bwV3yNlXUZeHT@bricha3-mobl1.ger.corp.intel.com \
--to=bruce.richardson@intel.com \
--cc=aconole@redhat.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox