summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/ptest-perl.bbclass30
-rw-r--r--meta/files/ptest-perl/run-ptest16
2 files changed, 46 insertions, 0 deletions
diff --git a/meta/classes/ptest-perl.bbclass b/meta/classes/ptest-perl.bbclass
new file mode 100644
index 0000000000..a4bc40b51a
--- /dev/null
+++ b/meta/classes/ptest-perl.bbclass
@@ -0,0 +1,30 @@
1inherit ptest
2
3FILESEXTRAPATHS_prepend := "${COREBASE}/meta/files:"
4
5SRC_URI += "file://ptest-perl/run-ptest"
6
7do_install_ptest_perl() {
8 install -d ${D}${PTEST_PATH}
9 if [ ! -f ${D}${PTEST_PATH}/run-ptest ]; then
10 install -m 0755 ${WORKDIR}/ptest-perl/run-ptest ${D}${PTEST_PATH}
11 fi
12 cp -r ${B}/t ${D}${PTEST_PATH}
13 chown -R root:root ${D}${PTEST_PATH}
14}
15
16FILES_${PN}-ptest_prepend = "${PTEST_PATH}/t/* ${PTEST_PATH}/run-ptest "
17
18RDEPENDS_${PN}-ptest_prepend = "perl "
19
20addtask install_ptest_perl after do_install_ptest_base before do_package
21
22python () {
23 if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
24 d.setVarFlag('do_install_ptest_perl', 'fakeroot', '1')
25
26 # Remove all '*ptest_perl' tasks when ptest is not enabled
27 if not(d.getVar('PTEST_ENABLED') == "1"):
28 for i in ['do_install_ptest_perl']:
29 bb.build.deltask(i, d)
30}
diff --git a/meta/files/ptest-perl/run-ptest b/meta/files/ptest-perl/run-ptest
new file mode 100644
index 0000000000..c9f9ca94d0
--- /dev/null
+++ b/meta/files/ptest-perl/run-ptest
@@ -0,0 +1,16 @@
1#!/bin/sh
2
3for case in `find t -type f -name '*.t'`; do
4 perl $case >$case.output 2>&1
5 ret=$?
6 cat $case.output
7 if [ $ret -ne 0 ]; then
8 echo "FAIL: ${case%.t}"
9 elif grep -i 'SKIP' $case.output; then
10 echo "SKIP: ${case%.t}"
11 else
12 echo "PASS: ${case%.t}"
13 fi
14
15 rm -f $case.output
16done