mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-04 14:39:54 +00:00
librelp: add ptest
Use internal test from librelp project as ptest. This work is largely inspired on the rsyslog ptest implementation, which copies the automake-based tests/Makefile to the target and runs 'make check-TESTS'. sed is used to fix a few Makefile paths or env-vars so 'make' can run on the target. Tested on qemux86_64 and qemuarm64: ========================================== librelp 1.11.0: tests/test-suite.log ========================================== TOTAL: 30 PASS: 27 SKIP: 3 XFAIL: 0 FAIL: 0 XPASS: 0 ERROR: 0 The 3 skipped tests are either self-identified as “not do anything really useful” or may need to port libtool to the target. Signed-off-by: Nicolas Marguet <nicolas.marguet@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
committed by
Khem Raj
parent
71e9bd8bca
commit
288ad311f0
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
||||
cd ${SCRIPTPATH}
|
||||
useradd tester || echo "user already exists"
|
||||
su tester -c "make -C tests -k check-TESTS"
|
||||
userdel tester
|
||||
@@ -8,10 +8,67 @@ DEPENDS = "gmp nettle libidn zlib gnutls openssl"
|
||||
|
||||
SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https;branch=stable \
|
||||
file://0001-Fix-function-inline-errors-in-debug-optimization-Og.patch \
|
||||
file://run-ptest \
|
||||
"
|
||||
|
||||
SRCREV = "b421f56d9ee31a966058d23bd23c966221c91396"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
inherit autotools pkgconfig ptest
|
||||
|
||||
# For ptests, copy source tests/*.sh scripts, Makefile and
|
||||
# executables and run them with make on target.
|
||||
TESTDIR = "tests"
|
||||
do_compile_ptest() {
|
||||
echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${TESTDIR}/Makefile
|
||||
oe_runmake -C ${TESTDIR} buildtest-TESTS
|
||||
}
|
||||
|
||||
do_install_ptest() {
|
||||
install -d ${D}${PTEST_PATH}/${TESTDIR}
|
||||
|
||||
# copy source tests/*.sh and python scripts
|
||||
cp -f ${S}/${TESTDIR}/*.{sh,py} ${D}${PTEST_PATH}/${TESTDIR}
|
||||
# install data files needed by the test scripts on the target
|
||||
cp -f ${S}/${TESTDIR}/*.supp ${D}${PTEST_PATH}/${TESTDIR}
|
||||
cp -rf ${S}/${TESTDIR}/tls-certs ${D}${PTEST_PATH}/${TESTDIR}
|
||||
|
||||
# copy executables
|
||||
find ${B}/${TESTDIR} -type f -executable -exec cp {} ${D}${PTEST_PATH}/${TESTDIR} \;
|
||||
cp -rf ${B}/${TESTDIR}/.libs ${D}${PTEST_PATH}/${TESTDIR}
|
||||
# copy Makefile
|
||||
# run-ptest will run make which runs the executables
|
||||
cp -f ${B}/${TESTDIR}/Makefile ${D}${PTEST_PATH}/${TESTDIR}
|
||||
cp -f ${B}/${TESTDIR}/set-envvars ${D}${PTEST_PATH}/${TESTDIR}
|
||||
|
||||
# give permissions to all users
|
||||
# some tests need to write to this directory
|
||||
chmod 777 -R ${D}${PTEST_PATH}/${TESTDIR}
|
||||
|
||||
# do NOT need to rebuild Makefile or $(check_PROGRAMS)
|
||||
sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
|
||||
sed -i 's/^check-TESTS:.*$/check-TESTS:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
|
||||
|
||||
# fix the srcdir, top_srcdir, abs_top_builddir
|
||||
sed -i 's,^\(srcdir = \).*,\1${PTEST_PATH}/${TESTDIR},' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
|
||||
sed -i 's,^\(top_srcdir = \).*,\1${PTEST_PATH}/${TESTDIR},' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
|
||||
sed -i 's,^\(abs_top_builddir = \).*,\1${PTEST_PATH}/,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
|
||||
|
||||
# install test-driver
|
||||
install -m 644 ${S}/test-driver ${D}${PTEST_PATH}
|
||||
|
||||
# fix the python3 path for tests/set-envar
|
||||
sed -i -e s:${HOSTTOOLS_DIR}:${bindir}:g ${D}${PTEST_PATH}/${TESTDIR}/set-envvars
|
||||
|
||||
# these 2 scripts need help finding their /usr/lib/librelp/ptest/tests/.libs libraries
|
||||
sed -i 's:${B}/src:${PTEST_PATH}/${TESTDIR}:' ${D}${PTEST_PATH}/${TESTDIR}/send
|
||||
sed -i 's:${B}/src:${PTEST_PATH}/${TESTDIR}:' ${D}${PTEST_PATH}/${TESTDIR}/receive
|
||||
}
|
||||
|
||||
RDEPENDS:${PN}-ptest += "\
|
||||
make bash coreutils libgcc util-linux gawk grep \
|
||||
python3-core python3-io \
|
||||
"
|
||||
|
||||
RRECOMMENDS:${PN}-ptest += " valgrind"
|
||||
|
||||
Reference in New Issue
Block a user