[PATCH v3 9/9] ci: run reference binaries against current ABI
Stephen Hemminger
stephen at networkplumber.org
Mon Sep 21 18:39:51 CEST 2026
On Mon, 21 Sep 2026 13:47:36 +0200
David Marchand <david.marchand at redhat.com> 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 without
> providing an alias for existing users.
>
> 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 at redhat.com>
> ---
Patch 9/9 (ci: run reference binaries against current ABI)
Errors:
- The new DPDK_TEST_SKIP computation in .ci/linux-build.sh never
skips anything, defeating the mechanism the commit message says
it adds ("We may need to skip unit tests that were added since
the reference"):
DPDK_TEST_SKIP=$(grep -vxFf reference/tests.txt build/tests.txt |
sed -n 's,DPDK:.* / ,,p' | tr '\n' ',')
The sed pattern assumes a "DPDK:<suite> / <test>" format, but
`meson test --list --suite fast-tests` never produces that. I
built the tree and ran the exact command; with meson 1.12.0 the
output is "fast-tests - DPDK:acl_autotest" (dash, no slash). I
also checked meson 0.57.2 (DPDK's stated minimum): with a single
--suite filter, get_pretty_suite() takes the `else` branch and
returns the bare test name only ("acl_autotest", no prefix at
all). Neither format contains " / ", so the sed substitution
never fires and DPDK_TEST_SKIP is always empty, regardless of
meson version.
Consequence: once this lands, any future series that adds a new
fast-tests unit test will fail CI when ABI_CHECKS and RUN_TESTS
are both enabled -- the new test name is not filtered out, meson
test invokes it (DPDK_TEST=<name>) against the old reference
dpdk-test binary, which does not implement it, the command exits
non-zero into failed="true", and the trailing
`[ "$failed" != "true" ]` fails the `-e` script. This is exactly
the scenario the DPDK_TEST_SKIP logic was added to prevent.
Info:
- The commit message says "add a ABI_SKIP_TESTS environment
variable in preparation," but the code implements DPDK_TEST_SKIP.
Possibly a rebase/rename artifact worth squashing before merge.
More information about the dev
mailing list