libxml2: Make ptest run the Python tests if Python support is enabled

Since we go through the trouble of copying the Python tests, we may as
well actually run them...

This also avoids the following QA issue:

  ERROR: libxml2-2.9.4-r0 do_package_qa: QA Issue:
  /usr/lib/libxml2/ptest/python/tests/push.py contained in package
  libxml2-ptest requires /usr/bin/python, but no providers found in
  RDEPENDS_libxml2-ptest? [file-rdeps]

(From OE-Core rev: 2b9470678d8df152af54899adb4774fb0d481cf3)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Peter Kjellerstedt 2017-08-29 23:21:00 +02:00 committed by Richard Purdie
parent 26260d76b7
commit 7defdff41f
2 changed files with 108 additions and 2 deletions

View File

@ -0,0 +1,99 @@
From 78dbd4c09d617a9cb730d796f94ee4d93840d3cc Mon Sep 17 00:00:00 2001
From: Peter Kjellerstedt <pkj@axis.com>
Date: Fri, 9 Jun 2017 17:50:46 +0200
Subject: [PATCH] Make ptest run the python tests if python is enabled
One of the tests (tstLastError.py) needed a minor correction. It might
be due to the fact that the tests are forced to run with Python 3.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
---
Makefile.am | 2 +-
python/Makefile.am | 9 +++++++++
python/tests/Makefile.am | 12 ++++++++++--
python/tests/tstLastError.py | 2 +-
4 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index e181ee0..7960e7d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -207,9 +207,9 @@ install-ptest:
install $(noinst_PROGRAMS) $(DESTDIR))
cp -r $(srcdir)/test $(DESTDIR)
cp -r $(srcdir)/result $(DESTDIR)
- cp -r $(srcdir)/python $(DESTDIR)
cp Makefile $(DESTDIR)
sed -i -e 's|^Makefile:|_Makefile:|' $(DESTDIR)/Makefile
+ $(MAKE) -C python install-ptest
runtests:
[ -d test ] || $(LN_S) $(srcdir)/test .
diff --git a/python/Makefile.am b/python/Makefile.am
index 34aed96..ba3ec6a 100644
--- a/python/Makefile.am
+++ b/python/Makefile.am
@@ -48,7 +48,16 @@ GENERATED = libxml2class.py libxml2class.txt $(BUILT_SOURCES)
$(GENERATED): $(srcdir)/generator.py $(API_DESC)
$(PYTHON) $(srcdir)/generator.py $(srcdir)
+
+install-ptest:
+ cp -r $(srcdir) $(DESTDIR)
+ sed -e 's|^Makefile:|_Makefile:|' \
+ -e 's|^\(tests test:\) all|\1|' Makefile >$(DESTDIR)/python/Makefile
+ $(MAKE) -C tests install-ptest
+else
+install-ptest:
endif
+.PHONY: tests test
tests test: all
cd tests && $(MAKE) tests
diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am
index 95ebead..418e21e 100644
--- a/python/tests/Makefile.am
+++ b/python/tests/Makefile.am
@@ -59,6 +59,11 @@ XMLS= \
CLEANFILES = core tmp.xml *.pyc
if WITH_PYTHON
+install-ptest:
+ cp -r $(srcdir) $(DESTDIR)/python
+ sed -e 's|^Makefile:|_Makefile:|' \
+ -e 's|^\(srcdir = \).*|\1.|' Makefile >$(DESTDIR)/python/tests/Makefile
+
tests: $(PYTESTS)
@for f in $(XMLS) ; do test -f $$f || $(LN_S) $(srcdir)/$$f . ; done
@echo "## running Python regression tests"
@@ -68,8 +73,11 @@ tests: $(PYTESTS)
export LD_LIBRARY_PATH; \
for test in $(PYTESTS) ; \
do log=`$(PYTHON) $(srcdir)/$$test` ; \
- if [ "`echo $$log | grep OK`" = "" ] ; then \
- echo "-- $$test" ; echo "$$log" ; fi ; done)
+ if [ "`echo $$log | grep OK`" ]; then \
+ echo "PASS: $$test"; else \
+ echo "$$log"; echo "FAIL: $$test"; fi; done)
else
+install-ptest:
+
tests:
endif
diff --git a/python/tests/tstLastError.py b/python/tests/tstLastError.py
index d5f9be7..3e5bef8 100755
--- a/python/tests/tstLastError.py
+++ b/python/tests/tstLastError.py
@@ -25,7 +25,7 @@ class TestCase(unittest.TestCase):
when the exception is raised, check the libxml2.lastError for
expected values."""
# disable the default error handler
- libxml2.registerErrorHandler(None,None)
+ libxml2.registerErrorHandler(lambda ctx,str: None,None)
try:
f(*args)
except exc:
--
2.12.0

View File

@ -29,7 +29,8 @@ SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar \
file://libxml2-CVE-2017-5969.patch \
file://libxml2-CVE-2017-0663.patch \
file://CVE-2016-9318.patch \
"
file://0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch \
"
SRC_URI[libtar.md5sum] = "ae249165c173b1ff386ee8ad676815f5"
SRC_URI[libtar.sha256sum] = "ffb911191e509b966deb55de705387f14156e1a56b21824357cdf0053233633c"
@ -48,7 +49,7 @@ inherit autotools pkgconfig binconfig-disabled ptest
inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
RDEPENDS_${PN}-ptest += "make ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3-core', '', d)}"
RDEPENDS_${PN}-ptest += "make ${@bb.utils.contains('PACKAGECONFIG', 'python', 'libgcc python3-core python3-argparse python3-logging python3-shell python3-signal python3-stringold python3-threading python3-unittest ${PN}-python', '', d)}"
RDEPENDS_${PN}-python += "${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3-core', '', d)}"
@ -82,6 +83,12 @@ do_configure_prepend () {
do_install_ptest () {
cp -r ${WORKDIR}/xmlconf ${D}${PTEST_PATH}
if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then
sed -i -e 's|^\(PYTHON = \).*|\1${USRBINPATH}/${PYTHON_PN}|' \
${D}${PTEST_PATH}/python/tests/Makefile
grep -lrZ '#!/usr/bin/python' ${D}${PTEST_PATH}/python |
xargs -0 sed -i -e 's|/usr/bin/python|${USRBINPATH}/${PYTHON_PN}|'
fi
}
do_install_append_class-native () {