mirror of
https://github.com/thead-yocto-mirror/meta-openembedded
synced 2026-09-16 12:12:16 +02:00
The bats test suite requires the 'timeout' and 'nl' commands to be available. Busybox' default config doesn't include those. They are built by default by coreutils though, so add it to RRECOMMENDS for ptest. Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl> Signed-off-by: Khem Raj <raj.khem@gmail.com>
82 lines
2.8 KiB
BlitzBasic
82 lines
2.8 KiB
BlitzBasic
SUMMARY = "C library and tools for interacting with the linux GPIO character device"
|
|
AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
|
|
|
|
LICENSE = "LGPLv2.1+"
|
|
LIC_FILES_CHKSUM = "file://COPYING;md5=2caced0b25dfefd4c601d92bd15116de"
|
|
|
|
SRC_URI = " \
|
|
https://www.kernel.org/pub/software/libs/${BPN}/${BP}.tar.xz \
|
|
file://run-ptest \
|
|
"
|
|
|
|
SRC_URI[md5sum] = "28e79f6f70fee1da9079558d8b7b3736"
|
|
SRC_URI[sha256sum] = "841be9d788f00bab08ef22c4be5c39866f0e46cb100a3ae49ed816ac9c5dddc7"
|
|
|
|
inherit autotools pkgconfig python3native ptest
|
|
|
|
PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev glib-2.0 catch2,bats python3-packaging"
|
|
PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
|
|
PACKAGECONFIG[python3] = "--enable-bindings-python,--disable-bindings-python,python3"
|
|
|
|
# Enable cxx bindings by default.
|
|
PACKAGECONFIG ?= "cxx"
|
|
|
|
# Always build tools - they don't have any additional
|
|
# requirements over the library.
|
|
EXTRA_OECONF = "--enable-tools"
|
|
|
|
DEPENDS += "autoconf-archive-native"
|
|
|
|
PACKAGES =+ "${PN}-tools libgpiodcxx ${PN}-python"
|
|
FILES:${PN}-tools = " \
|
|
${bindir}/gpiodetect \
|
|
${bindir}/gpioinfo \
|
|
${bindir}/gpioget \
|
|
${bindir}/gpioset \
|
|
${bindir}/gpiofind \
|
|
${bindir}/gpiomon \
|
|
"
|
|
FILES:${PN}-ptest += " \
|
|
${bindir}/gpiod-test \
|
|
${bindir}/gpio-tools-test \
|
|
${bindir}/gpio-tools-test.bats \
|
|
${bindir}/gpiod-cxx-test \
|
|
${bindir}/gpiod_py_test.py \
|
|
${libdir}/libgpiomockup.so.* \
|
|
"
|
|
FILES:libgpiodcxx = "${libdir}/libgpiodcxx.so.*"
|
|
FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*.so"
|
|
FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
|
|
|
|
RRECOMMENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'python3', '${PN}-python', '', d)}"
|
|
RRECOMMENDS:${PN}-ptest += " \
|
|
kernel-module-gpio-mockup \
|
|
coreutils \
|
|
${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-unittest', '', d)} \
|
|
"
|
|
|
|
PACKAGECONFIG:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'tests', '', d)}"
|
|
|
|
do_install_ptest() {
|
|
install -d ${D}${PTEST_PATH}/tests
|
|
|
|
# These are the core C library tests
|
|
install -m 0755 ${B}/tests/.libs/gpiod-test ${D}${PTEST_PATH}/tests/
|
|
|
|
# Tools are always built so let's always install them for ptest even if
|
|
# we're not selecting libgpiod-tools.
|
|
install -m 0755 ${S}/tools/gpio-tools-test ${D}${PTEST_PATH}/tests/
|
|
install -m 0755 ${S}/tools/gpio-tools-test.bats ${D}${PTEST_PATH}/tests/
|
|
for tool in ${FILES:${PN}-tools}; do
|
|
install ${B}/tools/.libs/$(basename $tool) ${D}${PTEST_PATH}/tests/
|
|
done
|
|
|
|
if ${@bb.utils.contains('PACKAGECONFIG', 'cxx', 'true', 'false', d)}; then
|
|
install -m 0755 ${B}/bindings/cxx/tests/.libs/gpiod-cxx-test ${D}${PTEST_PATH}/tests/
|
|
fi
|
|
|
|
if ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'true', 'false', d)}; then
|
|
install -m 0755 ${S}/bindings/python/tests/gpiod_py_test.py ${D}${PTEST_PATH}/tests/
|
|
fi
|
|
}
|