diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc
index ccac8e3bb3..66b7f10acf 100644
--- a/meta/conf/distro/include/ptest-packagelists.inc
+++ b/meta/conf/distro/include/ptest-packagelists.inc
@@ -51,7 +51,6 @@ PTESTS_FAST = "\
     libtest-warnings-perl \
     libtimedate-perl \
     libtry-tiny-perl \
-    liburcu \
     libusb1 \
     libxml-namespacesupport-perl \
     libxml-parser-perl \
@@ -134,6 +133,7 @@ PTESTS_SLOW = "\
     libmodule-build-perl \
     libpng \
     ${@bb.utils.contains('DISTRO_FEATURES', 'seccomp', 'libseccomp', '',d)} \
+    liburcu \
     lttng-tools \
     lz4 \
     openssh \
diff --git a/meta/recipes-support/liburcu/liburcu/run-ptest b/meta/recipes-support/liburcu/liburcu/run-ptest
index 5f8fb4fcfe..7dd1ee45e2 100755
--- a/meta/recipes-support/liburcu/liburcu/run-ptest
+++ b/meta/recipes-support/liburcu/liburcu/run-ptest
@@ -1,17 +1,28 @@
 #!/bin/sh
 
 PTEST_PATH=$(dirname "$0")
-cd "$PTEST_PATH/tests/unit" || exit 1
+cd "$PTEST_PATH" || 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
+# Unit tests
+for test in $(find tests/unit -maxdepth 1 -type f -executable -name "test_*" | sort); do
     testname=$(basename "$test")
-    if ./"$test"; then
-        echo "PASS: $testname"
+    if ./"$test" 2>&1; then
+        echo "PASS: unit/$testname"
     else
-        echo "FAIL: $testname"
+        echo "FAIL: unit/$testname"
+    fi
+done
+
+# Regression tests
+for test in $(find tests/regression -maxdepth 1 -type f -name "*.tap" -executable | sort); do
+    testname=$(basename "$test" .tap)
+    if ./"$test" 2>&1; then
+        echo "PASS: regression/$testname"
+    else
+        echo "FAIL: regression/$testname"
     fi
 done
diff --git a/meta/recipes-support/liburcu/liburcu_0.15.6.bb b/meta/recipes-support/liburcu/liburcu_0.15.6.bb
index e02f797041..0883c6d031 100644
--- a/meta/recipes-support/liburcu/liburcu_0.15.6.bb
+++ b/meta/recipes-support/liburcu/liburcu_0.15.6.bb
@@ -22,7 +22,7 @@ inherit autotools multilib_header ptest
 
 CPPFLAGS:append:riscv64  = " -pthread -D_REENTRANT"
 
-RDEPENDS:${PN}-ptest += "bash"
+RDEPENDS:${PN}-ptest += "bash coreutils"
 
 do_install:append() {
     oe_multilib_header urcu/config.h
@@ -30,6 +30,7 @@ do_install:append() {
 
 do_compile_ptest() {
     oe_runmake -C ${B}/tests/unit check TESTS=
+    oe_runmake -C ${B}/tests/regression check TESTS=
 }
 
 do_install_ptest() {
@@ -45,6 +46,15 @@ do_install_ptest() {
     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/regression
+
+    find ${B}/tests/regression -maxdepth 1 -type f -executable \
+        ! -name "*.la" | while read -r t; do
+        ${B}/libtool --mode=install install -m 0755 "$t" ${D}${PTEST_PATH}/tests/regression/
+    done
+
+    install -m 0755 ${S}/tests/regression/*.tap ${D}${PTEST_PATH}/tests/regression/
+
     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/
