On Mon, 21 Sep 2026 13:47:36 +0200 David Marchand <[email protected]> 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 <[email protected]> > --- 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.

