[OE-core] [PATCH] Install Python test suite and run it as ptest.

Tudor Florea tudor.florea at enea.com
Wed Jul 17 00:09:32 UTC 2013


Signed-off-by: Tudor Florea <tudor.florea at enea.com>
---
 .../python/python/fix-makefile-for-ptest.patch     |   33 ++++++++++++++++++++
 meta/recipes-devtools/python/python/run-ptest      |    5 +++
 meta/recipes-devtools/python/python_2.7.3.bb       |   10 ++++++
 3 files changed, 48 insertions(+)
 create mode 100644 meta/recipes-devtools/python/python/fix-makefile-for-ptest.patch
 create mode 100644 meta/recipes-devtools/python/python/run-ptest

diff --git a/meta/recipes-devtools/python/python/fix-makefile-for-ptest.patch b/meta/recipes-devtools/python/python/fix-makefile-for-ptest.patch
new file mode 100644
index 0000000..c349e74
--- /dev/null
+++ b/meta/recipes-devtools/python/python/fix-makefile-for-ptest.patch
@@ -0,0 +1,33 @@
+Add 'buildtest' and 'runtest' targets to Makefile, to build and run tests
+cross-compiled.
+
+Signed-off-by: Tudor Florea <tudor.florea at enea.com>
+Upstream-Status: Pending
+---
+diff -ruN a/Makefile.pre.in b/Makefile.pre.in
+--- a/Makefile.pre.in	2013-06-27 10:44:11.033840532 +0200
++++ b/Makefile.pre.in	2013-06-27 10:44:39.572635273 +0200
+@@ -709,14 +709,19 @@
+ # generated bytecode.  This is sometimes a very shy bug needing a lot of
+ # sample data.
+ 
+-TESTOPTS=	-l $(EXTRATESTOPTS)
++TESTOPTS=	-l -v $(EXTRATESTOPTS)
+ TESTPROG=	$(srcdir)/Lib/test/regrtest.py
+-TESTPYTHON=	$(RUNSHARED) ./$(BUILDPYTHON) -Wd -3 -E -tt $(TESTPYTHONOPTS)
+-test:		all platform
+-		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
++TESTPYTHON=	$(RUNSHARED) $(BUILDPYTHON) -Wd -3 -E -tt $(TESTPYTHONOPTS)
++test:		build-test
++		$(MAKE) runtest-TESTS
++
++runtest-TESTS:
++		-find $(srcdir) -name '*.py[co]' -print | xargs rm -f
+ 		-$(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
+ 		$(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
+ 
++build-test:	all platform
++
+ testall:	all platform
+ 		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
+ 		$(TESTPYTHON) $(srcdir)/Lib/compileall.py
diff --git a/meta/recipes-devtools/python/python/run-ptest b/meta/recipes-devtools/python/python/run-ptest
new file mode 100644
index 0000000..89a769f
--- /dev/null
+++ b/meta/recipes-devtools/python/python/run-ptest
@@ -0,0 +1,5 @@
+#!/bin/sh
+#
+#This script is used to run python test suites
+
+make -f /usr/lib/python/ptest/Makefile -k runtest-TESTS srcdir=/usr/lib/python2.7 TESTPROG=/usr/lib/python2.7/test/regrtest.py | sed -e '/\.\.\. ok/ s/^/PASS: /g' -e '/\.\.\. [ERROR|FAIL]/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g'
diff --git a/meta/recipes-devtools/python/python_2.7.3.bb b/meta/recipes-devtools/python/python_2.7.3.bb
index 59d189d..7d8cb43 100644
--- a/meta/recipes-devtools/python/python_2.7.3.bb
+++ b/meta/recipes-devtools/python/python_2.7.3.bb
@@ -28,6 +28,8 @@ SRC_URI += "\
   file://builddir.patch \
   file://python-2.7.3-CVE-2012-2135.patch \
   file://gcc-4.8-fix-configure-Wformat.patch \
+  file://fix-makefile-for-ptest.patch \
+  file://run-ptest \
 "
 
 S = "${WORKDIR}/Python-${PV}"
@@ -119,6 +121,10 @@ do_install_append_class-nativesdk () {
 	create_wrapper ${D}${bindir}/python2.7 TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo'
 }
 
+do_install_ptest() {
+	cp ${B}/Makefile ${D}${PTEST_PATH}
+}
+
 SSTATE_SCAN_FILES += "Makefile"
 PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess"
 
@@ -149,6 +155,10 @@ FILES_${PN}-dbg += "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/.debug"
 PACKAGES += "${PN}-misc"
 FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN}"
 
+RDEPENDS_${PN}-ptest = "${PN}-json ${PN}-crypt ${PN}-unittest ${PN}-difflib ${PN}-pprint ${PN}-shell ${PN}-tests ${PN}-misc ${PN}-netclient ${PN}-mailbox ${PN}-pkgutil ${PN}-profile ${PN}-compile ${PN}-pydoc ${PN}-robotparser ${PN}-netserver ${PN}-datetime ${PN}-compression ${PN}-mime ${PN}-audio ${PN}-db ${PN}-resource ${PN}-image ${PN}-subprocess ${PN}-doctest ${PN}-numbers ${PN}-html ${PN}-email ${PN}-distutils ${PN}-hotshot ${PN}-2to3 ${PN}-mmap ${PN}-terminal ${PN}-xmlrpc ${PN}-smtpd ${PN}-unixadmin ${PN}-compiler"
+#inherit ptest after "require python-${PYTHON_MAJMIN}-manifest.inc" so PACKAGES doesn't get overwritten
+inherit ptest
+
 # catch manpage
 PACKAGES += "${PN}-man"
 FILES_${PN}-man = "${datadir}/man"
-- 
1.7.10.4




More information about the Openembedded-core mailing list