On Mon, 21 Sept 2026 at 18:40, Stephen Hemminger <[email protected]> wrote: > 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.
Let's have AI reply to AI. The format change happened between meson 1.9.0 and 1.10.0: ┌───────────────┬─────────────────────────────┬──────────────────────┐ │ Meson Version │ Output Format │ Sed Pattern Matches? │ ├───────────────┼─────────────────────────────┼──────────────────────┤ │ ≤ 1.9.0 │ DPDK:fast-tests / test_name │ ✅ Yes │ ├───────────────┼─────────────────────────────┼──────────────────────┤ │ ≥ 1.10.0 │ fast-tests - DPDK:test_name │ ❌ No │ └───────────────┴─────────────────────────────┴──────────────────────┘ The sed pattern in .ci/linux-build.sh:255: sed -n 's,DPDK:.* / ,,p' This pattern looks for DPDK:...something... / which: - Works with meson ≤ 1.9.0 (format: DPDK:fast-tests / acl_autotest) - Fails with meson ≥ 1.10.0 (format: fast-tests - DPDK:acl_autotest — no " / ") Where the AI was wrong: The claim about meson 0.57.2 producing bare names is incorrect. DPDK defines 6 test suites, so len(self.suites) > 1 is always true, and the "pretty" format is always used regardless of which --suite is queried. Current status: Your system has meson 1.7.2, which uses the old format and works. Ubuntu 22.04 in CI likely has meson ~0.61.x-1.x which would also work. But the script will break once CI environments upgrade to meson 1.10.0+. Bottom line: The concern is valid for future-proofing, but the severity is overstated — it doesn't "never work", it works with older meson but will break with meson ≥ 1.10.0. > 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. > Ah yes, forgot to remove. -- David Marchand

