new file mode 100644
@@ -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
+}
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> --- .../nftables/nftables/run-ptest | 2 ++ .../recipes-filter/nftables/nftables_1.0.2.bb | 21 ++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 meta-networking/recipes-filter/nftables/nftables/run-ptest