nftables: fix ptests

Add missing kernel module dependencies, fix a script that is trying to
run python instead of python3, and add a patch that fixes a test (submitted
upstream).

There are 2 notes:
1. For the tests to succeed the kernel must be compiled with CONFIG_NFT_TPROXY
2. There is 1 testcase that seems to be flaky: 0002-persist testcase randomly
   fails. When it is comparing the test output with the expected output, sometimes
   there is a comment present, and sometimes there isn't. Couldn't get to the
   bottom of this.

The second point is the reason why the recipe remains on the
PTESTS_PROBLEMS_META_NETWORKING list.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Gyorgy Sarvari 2025-10-26 21:51:18 +01:00 committed by Khem Raj
parent 237efae216
commit 159e994140
2 changed files with 41 additions and 1 deletions

View File

@ -0,0 +1,35 @@
From 956e7d89865b497f889483c90bc7fed9bec4e030 Mon Sep 17 00:00:00 2001
From: Gyorgy Sarvari <skandigraun@gmail.com>
Date: Sun, 26 Oct 2025 18:55:06 +0100
Subject: [PATCH 1/2] fix typo in test script
While executing the test suite from tests/shell/testcases folder, a lot of errors
are displayed:
tests/shell/testcases/maps/vmap_timeout: line 48: [: : integer expected
Looking at the script, a non-existing variable (expires) is tested instead of
the existing one (expire).
This change corrects this.
Upstream-Status: Submitted [https://lore.kernel.org/netfilter-devel/20251026204107.2438565-1-skandigraun@gmail.com/T/#u]
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
---
tests/shell/testcases/maps/vmap_timeout | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/shell/testcases/maps/vmap_timeout b/tests/shell/testcases/maps/vmap_timeout
index 8ac7e8e7..55d1c1b9 100755
--- a/tests/shell/testcases/maps/vmap_timeout
+++ b/tests/shell/testcases/maps/vmap_timeout
@@ -45,7 +45,7 @@ for i in $(seq 1 100) ; do
expire=$((RANDOM%utimeout))
expire_str=""
- if [ "$expires" -gt 0 ]; then
+ if [ "$expire" -gt 0 ]; then
expire_str="expires ${expire}s"
fi

View File

@ -12,6 +12,7 @@ DEPENDS = "libmnl libnftnl bison-native \
${@bb.utils.contains('PACKAGECONFIG', 'mini-gmp', '', 'gmp', d)}"
SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.xz \
file://0001-fix-typo-in-test-script.patch \
file://run-ptest \
"
SRC_URI[sha256sum] = "1daf10f322e14fd90a017538aaf2c034d7cc1eb1cc418ded47445d714ea168d4"
@ -67,6 +68,9 @@ do_install() {
RDEPENDS:${PN}-ptest += " ${PN}-python bash coreutils make iproute2 iputils-ping procps python3-core python3-ctypes python3-json python3-misc sed util-linux"
# For ptests compile the kernel with CONFIG_NFT_TPROXY
RRECOMMENDS:${PN}-ptest += "\
kernel-module-nft-chain-nat kernel-module-nft-queue \
kernel-module-nft-compat kernel-module-nft-quota \
@ -79,7 +83,7 @@ kernel-module-nft-log kernel-module-nft-socket \
kernel-module-nft-masq kernel-module-nft-synproxy \
kernel-module-nft-nat kernel-module-nft-tunnel \
kernel-module-nft-numgen kernel-module-nft-xfrm \
kernel-module-nft-osf \
kernel-module-nft-osf kernel-module-nft-tproxy \
kernel-module-nf-flow-table \
kernel-module-nf-flow-table-inet \
kernel-module-nf-nat \
@ -102,6 +106,7 @@ do_install_ptest() {
cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}/${TESTDIR}
sed -i 's#/usr/bin/python#/usr/bin/python3#' ${D}${PTEST_PATH}/${TESTDIR}/json_echo/run-test.py
sed -i 's#/usr/bin/env python#/usr/bin/env python3#' ${D}${PTEST_PATH}/${TESTDIR}/py/nft-test.py
sed -i 's#exec python -c#exec python3 -c#' ${D}${PTEST_PATH}/${TESTDIR}/shell/helpers/json-pretty.sh
# handle multilib
sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
}