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

Signed-off-by: Yi Fan Yu <yifan...@windriver.com>
---
 .../libnl/files/enable-serial-tests.patch     | 28 +++++++++++++++++
 meta/recipes-support/libnl/files/run-ptest    | 16 ++++++++++
 meta/recipes-support/libnl/libnl_3.5.0.bb     | 30 +++++++++++++++++--
 3 files changed, 72 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-support/libnl/files/enable-serial-tests.patch
 create mode 100755 meta/recipes-support/libnl/files/run-ptest

diff --git a/meta/recipes-support/libnl/files/enable-serial-tests.patch 
b/meta/recipes-support/libnl/files/enable-serial-tests.patch
new file mode 100644
index 0000000000..8ea53f8748
--- /dev/null
+++ b/meta/recipes-support/libnl/files/enable-serial-tests.patch
@@ -0,0 +1,28 @@
+From b1476d89bf7a0bc6062438731ee4e9026696328b Mon Sep 17 00:00:00 2001
+From: Eric Xu <chi...@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...@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
+
diff --git a/meta/recipes-support/libnl/files/run-ptest 
b/meta/recipes-support/libnl/files/run-ptest
new file mode 100755
index 0000000000..e5c9eb0a32
--- /dev/null
+++ b/meta/recipes-support/libnl/files/run-ptest
@@ -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
diff --git a/meta/recipes-support/libnl/libnl_3.5.0.bb 
b/meta/recipes-support/libnl/libnl_3.5.0.bb
index 9d0e1441a9..09d8c8611e 100644
--- a/meta/recipes-support/libnl/libnl_3.5.0.bb
+++ b/meta/recipes-support/libnl/libnl_3.5.0.bb
@@ -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"
-- 
2.29.2

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#148340): 
https://lists.openembedded.org/g/openembedded-core/message/148340
Mute This Topic: https://lists.openembedded.org/mt/80749744/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to