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 <yoann.congal@smile.fr>
Reviewed-by: Ever ATILANO <ever.atilano@smile.fr>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Yoann Congal 2023-02-27 08:13:31 +01:00 committed by Khem Raj
parent 933885520a
commit 66b471ec10
3 changed files with 50 additions and 1 deletions

View File

@ -0,0 +1,24 @@
From 9dcdfa716e3c3831d9b70472b39dab2fd370f503 Mon Sep 17 00:00:00 2001
From: Yoann Congal <yoann.congal@smile.fr>
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

View File

@ -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

View File

@ -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
}