From 23a785a373f76a24f4f7dd867522ce296cbf30f3 Mon Sep 17 00:00:00 2001 From: Yi Fan Yu Date: Fri, 19 Feb 2021 01:03:09 -0500 Subject: 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 Signed-off-by: Yi Fan Yu Signed-off-by: Richard Purdie --- .../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 +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 +--- + 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" -- cgit 1.2.3-korg