Skip to content

Commit

Permalink
libusb-compat: add simple ptest (example programs)
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
ycongal-smile committed Feb 27, 2023
1 parent 996778c commit 0e09786
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
From 9dcdfa716e3c3831d9b70472b39dab2fd370f503 Mon Sep 17 00:00:00 2001
From: Yoann Congal <[email protected]>
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
14 changes: 14 additions & 0 deletions meta-oe/recipes-support/libusb/libusb-compat/run-ptest
Original file line number Diff line number Diff line change
@@ -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
13 changes: 12 additions & 1 deletion meta-oe/recipes-support/libusb/libusb-compat_0.1.8.bb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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
}

0 comments on commit 0e09786

Please sign in to comment.