From 0e0978613b53e85f696c7a96010a4566a3206dc7 Mon Sep 17 00:00:00 2001 From: Yoann Congal Date: Mon, 27 Feb 2023 08:13:31 +0100 Subject: [PATCH] libusb-compat: add simple ptest (example programs) Build and run example programs as test. This will only catch major errors (.so lib won't load etc.) because no output check is done, only return status is checked. Signed-off-by: Yoann Congal --- ...ke-make-example-programs-installable.patch | 24 +++++++++++++++++++ .../libusb/libusb-compat/run-ptest | 14 +++++++++++ .../libusb/libusb-compat_0.1.8.bb | 13 +++++++++- 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 meta-oe/recipes-support/libusb/libusb-compat/0002-automake-make-example-programs-installable.patch create mode 100644 meta-oe/recipes-support/libusb/libusb-compat/run-ptest diff --git a/meta-oe/recipes-support/libusb/libusb-compat/0002-automake-make-example-programs-installable.patch b/meta-oe/recipes-support/libusb/libusb-compat/0002-automake-make-example-programs-installable.patch new file mode 100644 index 00000000000..faf532cad23 --- /dev/null +++ b/meta-oe/recipes-support/libusb/libusb-compat/0002-automake-make-example-programs-installable.patch @@ -0,0 +1,24 @@ +From 9dcdfa716e3c3831d9b70472b39dab2fd370f503 Mon Sep 17 00:00:00 2001 +From: Yoann Congal +Date: Sun, 26 Feb 2023 16:04:35 +0100 +Subject: [PATCH] automake: make example programs installable + +The example programs are used as tests for ptest, so we need a way to +install them on the rootfs. + +Upstream-Status: Inappropriate [oe-core specific] +--- + examples/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/examples/Makefile.am b/examples/Makefile.am +index 9bd3efc..f4324c2 100644 +--- a/examples/Makefile.am ++++ b/examples/Makefile.am +@@ -1,5 +1,5 @@ + AM_CPPFLAGS = -I$(top_srcdir)/libusb +-noinst_PROGRAMS = lsusb testlibusb ++bin_PROGRAMS = lsusb testlibusb + + lsusb_SOURCES = lsusb.c + lsusb_LDADD = ../libusb/libusb.la diff --git a/meta-oe/recipes-support/libusb/libusb-compat/run-ptest b/meta-oe/recipes-support/libusb/libusb-compat/run-ptest new file mode 100644 index 00000000000..901662d6967 --- /dev/null +++ b/meta-oe/recipes-support/libusb/libusb-compat/run-ptest @@ -0,0 +1,14 @@ +#!/bin/sh + +rc=0 +for TEST in lsusb testlibusb; do + if ! ./$TEST ; then + echo "FAIL: $TEST" + rc=$((rc + 1)) + else + echo "PASS: $TEST" + fi +done + +# return number of failed tests +exit $rc diff --git a/meta-oe/recipes-support/libusb/libusb-compat_0.1.8.bb b/meta-oe/recipes-support/libusb/libusb-compat_0.1.8.bb index 884b1bbb248..bfafdae7a41 100644 --- a/meta-oe/recipes-support/libusb/libusb-compat_0.1.8.bb +++ b/meta-oe/recipes-support/libusb/libusb-compat_0.1.8.bb @@ -21,6 +21,8 @@ PE = "1" SRC_URI = " \ git://github.com/libusb/libusb-compat-0.1.git;protocol=https;branch=master \ file://0001-usb.h-Include-sys-types.h.patch \ + file://0002-automake-make-example-programs-installable.patch \ + file://run-ptest \ " SRCREV = "c497eff1ae8c4cfd4fdff370f04c78fa0584f4f3" S = "${WORKDIR}/git" @@ -29,5 +31,14 @@ UPSTREAM_CHECK_URI = "https://github.com/libusb/libusb-compat-0.1/releases" BINCONFIG = "${bindir}/libusb-config" -inherit autotools pkgconfig binconfig-disabled lib_package +inherit autotools pkgconfig binconfig-disabled lib_package ptest +# examples are used as ptest so enable them at configuration if needed +EXTRA_OECONF += "${@bb.utils.contains('PTEST_ENABLED', '1', '--enable-examples-build', '', d)}" + +# Move test binaries out of bindir to avoid clashing with a "real" lsusb. +do_install_ptest() { + for bin in lsusb testlibusb; do + mv ${D}${bindir}/$bin ${D}${PTEST_PATH} + done +}