libgpiod: ptest: run all test-suites if possible

We have four test-suites total in libgpiod: for the core C library,
gpio-tools and for C++ and Python bindings. Modify the recipe to install
all of them depending on build settings and make run-ptest execute them
if available.

Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Bartosz Golaszewski
2021-06-02 16:14:59 +02:00
committed by Khem Raj
parent 66561c713e
commit 2530ace540
2 changed files with 33 additions and 8 deletions
@@ -1,12 +1,19 @@
#!/bin/sh
testbin="gpiod-test"
testbins="gpiod-test gpio-tools-test gpiod-cxx-test gpiod_py_test.py"
ptestdir=$(dirname "$(readlink -f "$0")")
cd $ptestdir/tests
./$testbin > ./$testbin.out
if [ $? -ne 0 ]; then
echo "FAIL: $testbin"
else
echo "PASS: $testbin"
fi
for testbin in $testbins; do
if test -e ./$testbin; then
./$testbin > ./$testbin.out
if [ $? -ne 0 ]; then
echo "FAIL: $testbin"
else
echo "PASS: $testbin"
fi
else
echo "SKIP: $testbin"
fi
done
@@ -53,5 +53,23 @@ PACKAGECONFIG_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'tests
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
cp ${B}/tests/.libs/gpiod-test ${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
}