libxml++: fix ptests

The previous version installed the examples as ptests, not the actual tests.

This change compiles the tests on the build machine, install them, and execute
them on the target machine.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
This commit is contained in:
Gyorgy Sarvari
2025-10-31 12:23:41 +01:00
parent 4cbf9d8d2c
commit 53cb1f213c
3 changed files with 11 additions and 84 deletions
@@ -1,78 +0,0 @@
--- a/Makefile.am
+++ b/Makefile.am
@@ -40,5 +40,8 @@ EXTRA_DIST = \
tools/conf_tests/have_exception_ptr.cc \
untracked/README
+install-ptest:
+ make -C examples install-ptest
+
# Optional: auto-generate the ChangeLog file from the git log on make dist
include $(top_srcdir)/build/dist-changelog.am
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -19,6 +19,8 @@ AM_CPPFLAGS = -I$(top_builddir) -I$(top_
AM_CXXFLAGS = $(LIBXMLXX_WXXFLAGS)
LDADD = $(top_builddir)/libxml++/libxml++-$(LIBXMLXX_API_VERSION).la $(LIBXMLXX_LIBS)
+LOG_DRIVER = $(SHELL) ../macros/test-driver
+
check_PROGRAMS = \
dom_build/dom_build \
dom_parse_entities/dom_parse_entities \
@@ -37,6 +39,23 @@ check_PROGRAMS = \
schemavalidation/schemavalidation \
textreader/textreader
+check_DOTLIBS = \
+ dom_build/.libs/dom_build \
+ dom_parse_entities/.libs/dom_parse_entities \
+ dom_parser/.libs/dom_parser \
+ dom_parser_raw/.libs/dom_parser_raw \
+ dom_read_write/.libs/dom_read_write \
+ dom_xinclude/.libs/dom_xinclude \
+ dom_xpath/.libs/dom_xpath \
+ dtdvalidation/.libs/dtdvalidation \
+ import_node/.libs/import_node \
+ sax_exception/.libs/sax_exception \
+ sax_parser/.libs/sax_parser \
+ sax_parser_build_dom/.libs/sax_parser_build_dom \
+ sax_parser_entities/.libs/sax_parser_entities \
+ schemavalidation/.libs/schemavalidation \
+ textreader/.libs/textreader
+
# Shell scripts that call the example programs.
check_SCRIPTS = \
dom_build/make_check.sh \
@@ -154,10 +173,10 @@ dist_noinst_DATA = \
# file are located in different directories.
dom_read_write/make_check.sh: Makefile
$(AM_V_GEN)echo '# Generated and used by "make check"' >$@
- $(AM_V_at)echo 'dom_read_write/dom_read_write "$(srcdir)/dom_read_write/example.xml" dom_read_write/example_output.xml >/dev/null' >>$@
+ $(AM_V_at)echo 'cd dom_read_write && .libs/dom_read_write "example.xml" example_output.xml >/dev/null' >>$@
$(AM_V_at)chmod +x $@
-script_template = cd "$(srcdir)/<!progname!>" && "$(abs_builddir)/<!progname!>/<!progname!>" >/dev/null
+script_template = cd "<!progname!>" && ".libs/<!progname!>" >/dev/null
standard_scripts = $(filter-out dom_read_write/make_check.sh,$(check_SCRIPTS))
# All other script files are generated like so:
@@ -169,3 +188,18 @@ $(standard_scripts): Makefile
CLEANFILES = \
dom_read_write/example_output.xml \
$(check_SCRIPTS)
+
+buildtest: all
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS)
+ $(MAKE) $(AM_MAKEFLAGS) buildtest-TESTS
+
+install-ptest:
+ $(MKDIR_P) $(DESTDIR)/examples
+ cp --parents $(check_DOTLIBS) $(DESTDIR)/examples
+ cp --parents $(check_SCRIPTS) $(DESTDIR)/examples
+ cd $(srcdir) && cp --parents $(dist_noinst_DATA) $(DESTDIR)/examples
+ cp Makefile $(DESTDIR)/examples
+ $(MKDIR_P) $(DESTDIR)/macros
+ cp $(top_srcdir)/build/test-driver $(DESTDIR)/macros
+ sed -i -e 's|^Makefile:|_Makefile:|' $(DESTDIR)/examples/Makefile
+
@@ -1,3 +1,4 @@
#!/bin/sh
cd examples
make -k check-TESTS
for t in tests/*; do
$t && echo PASS: $t || echo FAIL: $t
done
@@ -8,7 +8,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 "
SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BP}.tar.xz \
file://libxml++_ptest.patch \
file://run-ptest \
"
SRC_URI[sha256sum] = "9b59059abe5545d28ceb388a55e341095f197bd219c73e6623aeb6d801e00be8"
@@ -24,10 +23,15 @@ do_configure:prepend() {
}
do_compile_ptest() {
oe_runmake -C examples buildtest
oe_runmake_call -C tests check || true
}
do_install_ptest() {
cd ${B}/tests
for t in *; do
[ -d $t ] && install -D $t/.libs/test ${D}${PTEST_PATH}/tests/$t
done
}
FILES:${PN}-doc += "${datadir}/devhelp"
FILES:${PN}-dev += "${libdir}/libxml++-2.6/include/libxml++config.h"
RDEPENDS:${PN}-ptest += "make"