libnl: add ptest support

All tests are installed, but only what `make check`
runs is run, so currently that's 1 test named `check-all`

`libcheck` needs to be present for ./configure to generate
the check* tests.

An issue asking about upstream testing strategy is opened at
https://github.com/thom311/libnl/issues/270

(From OE-Core rev: 23a785a373f76a24f4f7dd867522ce296cbf30f3)

Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Yi Fan Yu
2021-02-19 01:03:09 -05:00
committed by Richard Purdie
parent d54cada062
commit d920e8cb33
3 changed files with 72 additions and 2 deletions

View File

@@ -0,0 +1,28 @@
From b1476d89bf7a0bc6062438731ee4e9026696328b Mon Sep 17 00:00:00 2001
From: Eric Xu <chi.xu@windriver.com>
Date: Fri, 9 Mar 2018 03:38:49 +0000
Subject: [PATCH] Add ptest for libnl
serial-tests is required to generate those targets.
Signed-off-by: Eric Xu <chi.xu@windriver.com>
---
configure.ac | 2 +-
1 files changed, 1 insertion(+), 1 deletions(-)
diff --git a/configure.ac b/configure.ac
index dfead98..2cc8257 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,7 +46,7 @@ AC_INIT(libnl, [libnl_version], [], [], [http://www.infradead.org/~tgr/libnl/])
AC_CONFIG_HEADERS([lib/defs.h])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
-AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])
+AM_INIT_AUTOMAKE([-Wall foreign subdir-objects serial-tests])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)], [])
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
--
2.13.3

View File

@@ -0,0 +1,16 @@
#!/bin/sh
num_fail=0
for test in check*
do
./"$test" \
&& echo "PASS: $test" \
|| {
echo "FAIL: $test"
num_fail=$(( ${num_fail} + 1))
}
done
exit $num_fail

View File

@@ -9,19 +9,26 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
DEPENDS = "flex-native bison-native"
SRC_URI = "https://github.com/thom311/${BPN}/releases/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz"
SRC_URI = " \
https://github.com/thom311/${BPN}/releases/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz \
file://enable-serial-tests.patch \
file://run-ptest \
"
SRC_URI[md5sum] = "74ba57b1b1d6f9f92268aa8141d8e8e4"
SRC_URI[sha256sum] = "352133ec9545da76f77e70ccb48c9d7e5324d67f6474744647a7ed382b5e05fa"
UPSTREAM_CHECK_URI = "https://github.com/thom311/${BPN}/releases"
inherit autotools pkgconfig
inherit autotools pkgconfig ptest
FILES_${PN} = "${libdir}/libnl-3.so.* \
${libdir}/libnl.so.* \
${sysconfdir}"
RREPLACES_${PN} = "libnl2"
RCONFLICTS_${PN} = "libnl2"
FILES_${PN}-dev += "${libdir}/libnl/cli/*/*.la"
FILES_${PN}-staticdev += "${libdir}/libnl/cli/*/*.a"
@@ -41,4 +48,23 @@ FILES_${PN}-xfrm = "${libdir}/libnl-xfrm-3.so.*"
RREPLACES_${PN}-genl = "libnl-genl2"
RCONFLICTS_${PN}-genl = "libnl-genl2"
RDEPENDS_${PN}-ptest += "libcheck"
DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'libcheck', '', d)}"
# make sure the tests don't link against wrong so file
EXTRA_OECONF += "${@bb.utils.contains('PTEST_ENABLED', '1', '--disable-rpath', '', d)}"
do_compile_ptest() {
# hack to remove the call to `make runtest-TESTS`
sed -i 's/$(MAKE) $(AM_MAKEFLAGS) runtest-TESTS//g' Makefile
oe_runmake check
}
do_install_ptest(){
# legacy? tests are also installed, but ptest-runner will not run them
# upstream are not running these tests in their CI pipeline
# issue opened https://github.com/thom311/libnl/issues/270
install -m 0755 tests/.libs/* ${D}${PTEST_PATH}/
}
BBCLASSEXTEND = "native nativesdk"