meta/classes: add ptest-perl.bbclass

* Enable easier testing of perl modules
  - Installs t/* to PTEST_PATH
  - Uses common run-ptest script

(From OE-Core rev: aeffa15350252489c62cd221b2e0548043fec548)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Tim Orling 2018-03-04 04:41:49 -08:00 committed by Richard Purdie
parent dc7ec9b8e0
commit d41bcbdebf
2 changed files with 46 additions and 0 deletions

View File

@ -0,0 +1,30 @@
inherit ptest
FILESEXTRAPATHS_prepend := "${COREBASE}/meta/files:"
SRC_URI += "file://ptest-perl/run-ptest"
do_install_ptest_perl() {
install -d ${D}${PTEST_PATH}
if [ ! -f ${D}${PTEST_PATH}/run-ptest ]; then
install -m 0755 ${WORKDIR}/ptest-perl/run-ptest ${D}${PTEST_PATH}
fi
cp -r ${B}/t ${D}${PTEST_PATH}
chown -R root:root ${D}${PTEST_PATH}
}
FILES_${PN}-ptest_prepend = "${PTEST_PATH}/t/* ${PTEST_PATH}/run-ptest "
RDEPENDS_${PN}-ptest_prepend = "perl "
addtask install_ptest_perl after do_install_ptest_base before do_package
python () {
if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
d.setVarFlag('do_install_ptest_perl', 'fakeroot', '1')
# Remove all '*ptest_perl' tasks when ptest is not enabled
if not(d.getVar('PTEST_ENABLED') == "1"):
for i in ['do_install_ptest_perl']:
bb.build.deltask(i, d)
}

View File

@ -0,0 +1,16 @@
#!/bin/sh
for case in `find t -type f -name '*.t'`; do
perl $case >$case.output 2>&1
ret=$?
cat $case.output
if [ $ret -ne 0 ]; then
echo "FAIL: ${case%.t}"
elif grep -i 'SKIP' $case.output; then
echo "SKIP: ${case%.t}"
else
echo "PASS: ${case%.t}"
fi
rm -f $case.output
done