]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
liburcu: add ptest support
authorPratik Farkase <pratik.farkase@est.tech>
Tue, 5 May 2026 10:45:12 +0000 (12:45 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 5 Jun 2026 14:50:14 +0000 (15:50 +0100)
Add ptest support for liburcu, running the upstream unit test suite
(674 TAP assertions across 24 tests). This covers architecture checks,
atomic operations, multiflavor builds, sysfs helpers, and build
verification tests.

Tested on qemux86-64 with ptest-runner: 24 PASS, 0 FAIL.

Signed-off-by: Pratik Farkase <pratik.farkase@est.tech>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/conf/distro/include/ptest-packagelists.inc
meta/recipes-support/liburcu/liburcu/run-ptest [new file with mode: 0755]
meta/recipes-support/liburcu/liburcu_0.15.6.bb

index 44d25177f647d0aecc38fbc35a85a41efaceac9b..8062aeb01444ace9c383c67aec1a90c1bf40ef0a 100644 (file)
@@ -50,6 +50,7 @@ PTESTS_FAST = "\
     libtest-warnings-perl \
     libtimedate-perl \
     libtry-tiny-perl \
+    liburcu \
     libusb1 \
     libxml-namespacesupport-perl \
     libxml-parser-perl \
diff --git a/meta/recipes-support/liburcu/liburcu/run-ptest b/meta/recipes-support/liburcu/liburcu/run-ptest
new file mode 100755 (executable)
index 0000000..5f8fb4f
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+PTEST_PATH=$(dirname "$0")
+cd "$PTEST_PATH/tests/unit" || exit 1
+
+export URCU_TESTS_SRCDIR="$PTEST_PATH/tests"
+export URCU_TESTS_BUILDDIR="$PTEST_PATH/tests"
+export URCU_TESTS_OS_TYPE="linux"
+
+for test in $(find . -maxdepth 1 -type f -executable -name "test_*" | sort); do
+    testname=$(basename "$test")
+    if ./"$test"; then
+        echo "PASS: $testname"
+    else
+        echo "FAIL: $testname"
+    fi
+done
index 1cb349f55d99ebe5f7b71468dcf0188a07bcf946..e02f797041882ab3d730f41d8f7d8c21163bc529 100644 (file)
@@ -11,15 +11,41 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c2a92498b6e88e276f986877995425b8 \
                     file://include/urcu/uatomic/x86.h;beginline=1;endline=6;md5=358d69272ba7b5f85e29e342430d440c \
                     "
 
-SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2"
+SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2 \
+           file://run-ptest \
+           "
 
 SRC_URI[sha256sum] = "850b192096eb11ebf2c70e8f97bc7da7479ee41da1bebeb44e3986908bac414f"
 
 S = "${UNPACKDIR}/userspace-rcu-${PV}"
-inherit autotools multilib_header
+inherit autotools multilib_header ptest
 
 CPPFLAGS:append:riscv64  = " -pthread -D_REENTRANT"
 
+RDEPENDS:${PN}-ptest += "bash"
+
 do_install:append() {
     oe_multilib_header urcu/config.h
 }
+
+do_compile_ptest() {
+    oe_runmake -C ${B}/tests/unit check TESTS=
+}
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests/unit
+
+    find ${B}/tests/unit -maxdepth 1 -type f -executable \
+        ! -name "*.la" | while read -r t; do
+        ${B}/libtool --mode=install install -m 0755 "$t" ${D}${PTEST_PATH}/tests/unit/
+    done
+
+    install -m 0755 ${S}/tests/unit/test_get_cpu_mask_from_sysfs ${D}${PTEST_PATH}/tests/unit/
+    install -m 0755 ${S}/tests/unit/test_get_cpu_mask_from_sysfs_cxx ${D}${PTEST_PATH}/tests/unit/
+    install -m 0755 ${S}/tests/unit/test_get_max_cpuid_from_sysfs ${D}${PTEST_PATH}/tests/unit/
+    install -m 0755 ${S}/tests/unit/test_get_max_cpuid_from_sysfs_cxx ${D}${PTEST_PATH}/tests/unit/
+
+    install -d ${D}${PTEST_PATH}/tests/utils
+    install -m 0644 ${S}/tests/utils/tap.sh ${D}${PTEST_PATH}/tests/utils/
+    install -m 0644 ${S}/tests/utils/utils.sh ${D}${PTEST_PATH}/tests/utils/
+}