nftables: add ptest

Note that (like for nftables itself), the ptests will require the
following added to local.conf (or the kernel configuration):

KERNEL_FEATURES:append = " features/nf_tables/nf_tables.scc"

Current pass/fail results:

I: results: [OK] 271 [FAILED] 29 [TOTAL] 300

I've been investigating the failing tests under the assumption that they
fail because of missing kernel modules, but there are some that suggest
syntax problems (possibly problems with the tests themselves). Example:

W: [FAILED]     ./tests/shell/testcases/listing/0020flowtable_0: got 1
/dev/stdin:2:12-12: Error: Could not process rule: No such file or
directory
        flowtable f {
                  ^
/dev/stdin:6:11-12: Error: Could not process rule: No such file or
directory
flowtable f2 {
          ^^

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Trevor Gamblin
2022-04-12 11:10:03 -04:00
committed by Khem Raj
parent 43dbadb6a2
commit 611a99c036
2 changed files with 22 additions and 1 deletions
@@ -0,0 +1,2 @@
#!/bin/sh
tests/shell/run-tests.sh -v
@@ -11,11 +11,12 @@ UPSTREAM_CHECK_REGEX = "nftables-(?P<pver>\d+(\.\d+){2,}).tar.bz2"
SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \
file://0001-examples-compile-with-make-check-and-add-AM_CPPFLAGS.patch \
file://run-ptest \
"
SRC_URI[sha256sum] = "0b28a36ffcf4567b841de7bd3f37918b1fed27859eb48bdec51e1f7a83954c02"
inherit autotools manpages pkgconfig
inherit autotools manpages pkgconfig ptest
PACKAGECONFIG ??= "python readline json"
PACKAGECONFIG[json] = "--with-json, --without-json, jansson"
@@ -32,3 +33,21 @@ RRECOMMENDS:${PN} += "kernel-module-nf-tables"
PACKAGES =+ "${PN}-python"
FILES:${PN}-python = "${nonarch_libdir}/${PYTHON_DIR}"
RDEPENDS:${PN}-python = "python3-core python3-json ${PN}"
RDEPENDS:${PN}-ptest += " make bash python3-core python3-ctypes python3-json python3-misc util-linux"
TESTDIR = "tests"
PRIVATE_LIBS:${PN}-ptest:append = "libnftables.so.1"
do_install_ptest() {
cp -rf ${S}/build-aux ${D}${PTEST_PATH}
cp -rf ${S}/src ${D}${PTEST_PATH}
mkdir -p ${D}${PTEST_PATH}/src/.libs
cp -rf ${B}/src/.libs/* ${D}${PTEST_PATH}/src/.libs
cp -rf ${B}/src/.libs/nft ${D}${PTEST_PATH}/src/
cp -rf ${S}/py ${D}${PTEST_PATH}
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
}