Message ID | 20251022151239.87981-1-pratik.farkase@est.tech |
---|---|
State | New |
Headers | show |
Series | libxslt: add ptest support | expand |
On 10/22/25 17:12, Pratik Farkase via lists.openembedded.org wrote: > Add ptest support for libxslt 1.1.43 including: > - do_compile_ptest and do_install_ptest > - test data installation > - cleanup of buildpath references > - added run-ptest installation > > Signed-off-by: Pratik Farkase <pratik.farkase@est.tech> > --- > .../distro/include/ptest-packagelists.inc | 1 + > meta/recipes-support/libxslt/files/run-ptest | 25 +++++++++++ > .../recipes-support/libxslt/libxslt_1.1.43.bb | 45 +++++++++++++++++-- > 3 files changed, 67 insertions(+), 4 deletions(-) > create mode 100755 meta/recipes-support/libxslt/files/run-ptest > > diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc > index 9950e46776..b295e0049f 100644 > --- a/meta/conf/distro/include/ptest-packagelists.inc > +++ b/meta/conf/distro/include/ptest-packagelists.inc > @@ -47,6 +47,7 @@ PTESTS_FAST = "\ > libxml-simple-perl \ > libxml2 \ > libxmlb \ > + libxslt \ > logrotate \ > lua \ > lzo \ > diff --git a/meta/recipes-support/libxslt/files/run-ptest b/meta/recipes-support/libxslt/files/run-ptest > new file mode 100755 > index 0000000000..a2b28e6a75 > --- /dev/null > +++ b/meta/recipes-support/libxslt/files/run-ptest > @@ -0,0 +1,25 @@ > +#!/bin/sh > +set -eu > +PT_DIR="$(dirname "$0")" > +cd "$PT_DIR/tests" > + > +echo "=== Running libxslt ptests (verbose) ===" > + > +if [ -x .libs/runtest ]; then > + echo "Running .libs/runtest --verbose --timing" > + ./.libs/runtest --verbose --timing 2>&1 | tee runtest.log > +elif [ -x ./runtest ]; then > + echo "Running runtest --verbose --timing" > + ./runtest --verbose --timing 2>&1 | tee runtest.log > +else > + echo "ERROR: runtest not found" > + exit 1 > +fi > + > +if [ -x .libs/run-threads ]; then > + echo "Running .libs/run-threads --verbose" > + ./.libs/run-threads --verbose 2>&1 | tee -a runtest.log > +fi > + > +echo "=== Finished libxslt ptests ===" > + > diff --git a/meta/recipes-support/libxslt/libxslt_1.1.43.bb b/meta/recipes-support/libxslt/libxslt_1.1.43.bb > index e08e92085d..0f6ec4ba02 100644 > --- a/meta/recipes-support/libxslt/libxslt_1.1.43.bb > +++ b/meta/recipes-support/libxslt/libxslt_1.1.43.bb > @@ -11,10 +11,11 @@ LICENSE = "MIT" > LIC_FILES_CHKSUM = "file://Copyright;md5=0cd9a07afbeb24026c9b03aecfeba458" > > SECTION = "libs" > -DEPENDS = "libxml2" > +DEPENDS = "libxml2 libxslt-native" > > SRC_URI = "https://download.gnome.org/sources/libxslt/1.1/libxslt-${PV}.tar.xz \ > - file://gnome-libxslt-bug-139-apple-fix.diff" > + file://gnome-libxslt-bug-139-apple-fix.diff \ > + file://run-ptest" > > SRC_URI[sha256sum] = "5a3d6b383ca5afc235b171118e90f5ff6aa27e9fea3303065231a6d403f0183a" > > @@ -26,7 +27,43 @@ S = "${WORKDIR}/libxslt-${PV}" > > BINCONFIG = "${bindir}/xslt-config" > > -inherit autotools pkgconfig binconfig-disabled lib_package multilib_header > +inherit autotools pkgconfig binconfig-disabled lib_package multilib_header ptest > + > +RDEPENDS:${PN}-ptest += "${PN}-bin make libxslt-utils libxml2-utils xmlto coreutils sed grep diffutils bash libxml2-utils perl" > + > +do_compile_ptest() { > + cp -r ${S}/tests ${B}/ > + oe_runmake -C ${B}/tests runtest || true > + if grep -q "run-threads" ${B}/tests/Makefile; then > + oe_runmake -C ${B}/tests run-threads || true > + fi > +} > + > +addtask compile_ptest after do_compile before do_install This addtask is not needed - do_compile_ptest() is implicitly executed when ptest is enabled. > + > +do_install_ptest() { > + install -d ${D}${PTEST_PATH}/tests > + > + if [ -d ${B}/tests/.libs ]; then > + cp -a ${B}/tests/.libs ${D}${PTEST_PATH}/tests/ > + fi > + > + for f in runtest run-threads; do > + if [ -f ${B}/tests/$f ]; then > + install -m 0755 ${B}/tests/$f ${D}${PTEST_PATH}/tests/ > + sed -i -e "s#${TMPDIR}##g" \ > + -e "s#${B}##g" \ > + -e "s#${S}##g" \ > + ${D}${PTEST_PATH}/tests/$f || true > + fi > + done > + > + cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests/ || true > + find ${D}${PTEST_PATH}/tests -name 'Makefile*' -delete || true > + find ${D}${PTEST_PATH}/tests -name '.deps' -type d -exec rm -rf {} + || true > +} > + > +FILES:${PN}-ptest += "${PTEST_PATH}/*" This line is also unnecessary, it is already included in the ptest.bbclass > > do_configure:prepend () { > # We don't DEPEND on binutils for ansidecl.h so ensure we don't use the header. > @@ -38,7 +75,7 @@ do_configure:prepend () { > touch ${S}/doc/xsltproc.1 > } > > -EXTRA_OECONF = "--without-python --without-debug --without-crypto" > +EXTRA_OECONF = "--without-python --without-debug --without-crypto --with-plugins" Is this --with-plugins only needed for the test? If yes, could it be added conditionally, only in case ptest is enabled? (You can find examples if you grep for "PTEST_ENABLED" in the meta folder) > # older versions of this recipe had ${PN}-utils > RPROVIDES:${PN}-bin += "${PN}-utils" > RCONFLICTS:${PN}-bin += "${PN}-utils" > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#225200): https://lists.openembedded.org/g/openembedded-core/message/225200 > Mute This Topic: https://lists.openembedded.org/mt/115894161/6084445 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [skandigraun@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
Hi Gyorgy,
Thanks for the review!
I've updated the patch to make --with-plugins conditional on ptest being enabled,
following your feedback. Verified that both normal and ptest builds work as expected.
v2:
- Enable --with-plugins only when ptest is enabled (per review feedback)
Signed-off-by: Your Name <pratik.farkase@est.tech>
Best Regards,
Pratik
Hi, This is v3 of the libxslt ptest support patch, replacing v2: https://lists.openembedded.org/g/openembedded-core/message/225210 v3: - Remove unconditional --with-plugins (leftover from v2) Thanks, Your Name Best Regards, Pratik
diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc index 9950e46776..b295e0049f 100644 --- a/meta/conf/distro/include/ptest-packagelists.inc +++ b/meta/conf/distro/include/ptest-packagelists.inc @@ -47,6 +47,7 @@ PTESTS_FAST = "\ libxml-simple-perl \ libxml2 \ libxmlb \ + libxslt \ logrotate \ lua \ lzo \ diff --git a/meta/recipes-support/libxslt/files/run-ptest b/meta/recipes-support/libxslt/files/run-ptest new file mode 100755 index 0000000000..a2b28e6a75 --- /dev/null +++ b/meta/recipes-support/libxslt/files/run-ptest @@ -0,0 +1,25 @@ +#!/bin/sh +set -eu +PT_DIR="$(dirname "$0")" +cd "$PT_DIR/tests" + +echo "=== Running libxslt ptests (verbose) ===" + +if [ -x .libs/runtest ]; then + echo "Running .libs/runtest --verbose --timing" + ./.libs/runtest --verbose --timing 2>&1 | tee runtest.log +elif [ -x ./runtest ]; then + echo "Running runtest --verbose --timing" + ./runtest --verbose --timing 2>&1 | tee runtest.log +else + echo "ERROR: runtest not found" + exit 1 +fi + +if [ -x .libs/run-threads ]; then + echo "Running .libs/run-threads --verbose" + ./.libs/run-threads --verbose 2>&1 | tee -a runtest.log +fi + +echo "=== Finished libxslt ptests ===" + diff --git a/meta/recipes-support/libxslt/libxslt_1.1.43.bb b/meta/recipes-support/libxslt/libxslt_1.1.43.bb index e08e92085d..0f6ec4ba02 100644 --- a/meta/recipes-support/libxslt/libxslt_1.1.43.bb +++ b/meta/recipes-support/libxslt/libxslt_1.1.43.bb @@ -11,10 +11,11 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://Copyright;md5=0cd9a07afbeb24026c9b03aecfeba458" SECTION = "libs" -DEPENDS = "libxml2" +DEPENDS = "libxml2 libxslt-native" SRC_URI = "https://download.gnome.org/sources/libxslt/1.1/libxslt-${PV}.tar.xz \ - file://gnome-libxslt-bug-139-apple-fix.diff" + file://gnome-libxslt-bug-139-apple-fix.diff \ + file://run-ptest" SRC_URI[sha256sum] = "5a3d6b383ca5afc235b171118e90f5ff6aa27e9fea3303065231a6d403f0183a" @@ -26,7 +27,43 @@ S = "${WORKDIR}/libxslt-${PV}" BINCONFIG = "${bindir}/xslt-config" -inherit autotools pkgconfig binconfig-disabled lib_package multilib_header +inherit autotools pkgconfig binconfig-disabled lib_package multilib_header ptest + +RDEPENDS:${PN}-ptest += "${PN}-bin make libxslt-utils libxml2-utils xmlto coreutils sed grep diffutils bash libxml2-utils perl" + +do_compile_ptest() { + cp -r ${S}/tests ${B}/ + oe_runmake -C ${B}/tests runtest || true + if grep -q "run-threads" ${B}/tests/Makefile; then + oe_runmake -C ${B}/tests run-threads || true + fi +} + +addtask compile_ptest after do_compile before do_install + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + + if [ -d ${B}/tests/.libs ]; then + cp -a ${B}/tests/.libs ${D}${PTEST_PATH}/tests/ + fi + + for f in runtest run-threads; do + if [ -f ${B}/tests/$f ]; then + install -m 0755 ${B}/tests/$f ${D}${PTEST_PATH}/tests/ + sed -i -e "s#${TMPDIR}##g" \ + -e "s#${B}##g" \ + -e "s#${S}##g" \ + ${D}${PTEST_PATH}/tests/$f || true + fi + done + + cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests/ || true + find ${D}${PTEST_PATH}/tests -name 'Makefile*' -delete || true + find ${D}${PTEST_PATH}/tests -name '.deps' -type d -exec rm -rf {} + || true +} + +FILES:${PN}-ptest += "${PTEST_PATH}/*" do_configure:prepend () { # We don't DEPEND on binutils for ansidecl.h so ensure we don't use the header. @@ -38,7 +75,7 @@ do_configure:prepend () { touch ${S}/doc/xsltproc.1 } -EXTRA_OECONF = "--without-python --without-debug --without-crypto" +EXTRA_OECONF = "--without-python --without-debug --without-crypto --with-plugins" # older versions of this recipe had ${PN}-utils RPROVIDES:${PN}-bin += "${PN}-utils" RCONFLICTS:${PN}-bin += "${PN}-utils"
Add ptest support for libxslt 1.1.43 including: - do_compile_ptest and do_install_ptest - test data installation - cleanup of buildpath references - added run-ptest installation Signed-off-by: Pratik Farkase <pratik.farkase@est.tech> --- .../distro/include/ptest-packagelists.inc | 1 + meta/recipes-support/libxslt/files/run-ptest | 25 +++++++++++ .../recipes-support/libxslt/libxslt_1.1.43.bb | 45 +++++++++++++++++-- 3 files changed, 67 insertions(+), 4 deletions(-) create mode 100755 meta/recipes-support/libxslt/files/run-ptest