diff mbox series

log4cplus: add ptest support

Message ID 20261104083458.12316-1-pratik.farkase@est.tech
State New
Headers show
Series log4cplus: add ptest support | expand

Commit Message

Pratik Farkase Nov. 4, 2026, 8:34 a.m. UTC
Build the GNU Autotest based test suite and run it under ptest, following
the tar ptest pattern: the generated testsuite is shipped together with
atconfig/atlocal, whose build-host paths and tool locations are rewritten
to the on-target ptest directory. The test programs use libtool -no-install,
so the real binaries are installed with libtool.

The headers-compilation group is skipped as it recompiles the public
headers, which needs a toolchain that is not present in the image.

Tested on qemuriscv64 with ptest-runner.

Signed-off-by: Pratik Farkase <pratik.farkase@est.tech>
---
 .../distro/include/ptest-packagelists.inc     |  1 +
 .../log4cplus/log4cplus/run-ptest             |  5 ++
 .../log4cplus/log4cplus_2.2.0.1.bb            | 70 ++++++++++++++++++-
 3 files changed, 75 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/log4cplus/log4cplus/run-ptest
diff mbox series

Patch

diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index d5357d8732..f8d2cb25b0 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -63,6 +63,7 @@  PTESTS_FAST = "\
     libxmlb \
     libxslt \
     libyaml \
+    log4cplus \
     logrotate \
     lttng-ust \
     lua \
diff --git a/meta/recipes-devtools/log4cplus/log4cplus/run-ptest b/meta/recipes-devtools/log4cplus/log4cplus/run-ptest
new file mode 100644
index 0000000000..1f346cc8b1
--- /dev/null
+++ b/meta/recipes-devtools/log4cplus/log4cplus/run-ptest
@@ -0,0 +1,5 @@ 
+#!/bin/sh
+
+cd @PTEST_PATH@/tests/
+
+./testsuite --am-fmt -k '!headers-compilation'
diff --git a/meta/recipes-devtools/log4cplus/log4cplus_2.2.0.1.bb b/meta/recipes-devtools/log4cplus/log4cplus_2.2.0.1.bb
index a10dd175a2..ac29017a74 100644
--- a/meta/recipes-devtools/log4cplus/log4cplus_2.2.0.1.bb
+++ b/meta/recipes-devtools/log4cplus/log4cplus_2.2.0.1.bb
@@ -16,6 +16,74 @@  SRC_URI[sha256sum] = "374175c22fabe752eb1c20138e732b69ae191e641f92d32c9432985cd8
 UPSTREAM_CHECK_URI = "https://github.com/log4cplus/log4cplus/releases"
 UPSTREAM_CHECK_REGEX = "log4cplus-(?P<pver>\d+(\.\d+)+)\.tar"
 
-inherit autotools pkgconfig
+inherit autotools pkgconfig ptest
+
+SRC_URI += "file://run-ptest"
+
+RDEPENDS:${PN}-ptest += "bash diffutils gawk grep sed ${PN}"
+
+INSANE_SKIP:${PN}-ptest += "buildpaths"
+
+LOG4CPLUS_PTEST_TESTS = " \
+    appender_test \
+    configandwatch_test \
+    customloglevel_test \
+    fileappender_test \
+    filter_test \
+    hierarchy_test \
+    loglog_test \
+    ndc_test \
+    ostream_test \
+    patternlayout_test \
+    performance_test \
+    priority_test \
+    propertyconfig_test \
+    thread_test \
+    timeformat_test \
+    unit_tests \
+"
+
+do_compile_ptest() {
+    rm -f ${S}/tests/testsuite
+    oe_runmake -C ${B} tests/testsuite
+    for t in ${LOG4CPLUS_PTEST_TESTS}; do
+        oe_runmake -C ${B} $t ${t}U
+    done
+}
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+
+    install -m 0755 ${S}/tests/testsuite ${D}${PTEST_PATH}/tests/
+
+    install -m 0644 ${B}/tests/atconfig ${D}${PTEST_PATH}/tests/
+    sed -i "/^abs_/d" ${D}${PTEST_PATH}/tests/atconfig
+    cat >> ${D}${PTEST_PATH}/tests/atconfig <<EOF
+abs_builddir='${PTEST_PATH}/tests'
+abs_srcdir='${PTEST_PATH}/tests'
+abs_top_builddir='${PTEST_PATH}'
+abs_top_srcdir='${PTEST_PATH}'
+EOF
+
+    install -m 0644 ${B}/tests/atlocal ${D}${PTEST_PATH}/tests/
+    sed -i "/^PATH=/d" ${D}${PTEST_PATH}/tests/atlocal
+    sed -i "s|^: \${GREP=.*|: \${GREP='grep'}|" ${D}${PTEST_PATH}/tests/atlocal
+    sed -i "s|^: \${AWK=.*|: \${AWK='gawk'}|" ${D}${PTEST_PATH}/tests/atlocal
+    sed -i "s|^: \${SED=.*|: \${SED='sed'}|" ${D}${PTEST_PATH}/tests/atlocal
+
+    for t in ${LOG4CPLUS_PTEST_TESTS}; do
+        ${B}/libtool --mode=install install -m 0755 ${B}/$t ${D}${PTEST_PATH}/
+        [ -e ${B}/${t}U ] && ${B}/libtool --mode=install install -m 0755 ${B}/${t}U ${D}${PTEST_PATH}/
+        install -d ${D}${PTEST_PATH}/tests/$t
+        for f in expout experr log4cplus.properties.1 log4cplus.properties.2; do
+            [ -e ${S}/tests/$t/$f ] && install -m 0644 ${S}/tests/$t/$f ${D}${PTEST_PATH}/tests/$t/
+        done
+        for f in ${B}/tests/$t/*.properties; do
+            [ -e $f ] && install -m 0644 $f ${D}${PTEST_PATH}/tests/$t/
+        done
+    done
+
+    sed -i "s#@PTEST_PATH@#${PTEST_PATH}#g" ${D}${PTEST_PATH}/run-ptest
+}
 
 BBCLASSEXTEND = "native"