From 6a2059bdf28fe8fe2d9639ea26c7ae1a5cc52c6e Mon Sep 17 00:00:00 2001 From: Sam James Date: Mon, 19 May 2025 14:55:18 +0100 Subject: [PATCH] dev-python/cython: rework tests * Make numpy conditional on USE=test-full numpy doesn't pass tests on some niche arches and maybe we'll even be able to destable it on the really niche arches at some point thanks to this. * Make numpy conditional on PYTHON_FULLY_TESTED numpy depends on cython and porting numpy to a new Python impl often takes a while, so let's make it easy to get partial coverage. * Fix numpy test dep (doesn't need to be <2 for a while now). Sent https://github.com/cython/cython/pull/6895 upstream as well. * Enable tests for py3.13, py3.14, and pypy3_11 * More robust skips for coverage tests which have had problems before They're not interesting for us in packaging. * Add some notes about other possible test deps we could add in future. Signed-off-by: Sam James --- dev-python/cython/cython-3.1.1.ebuild | 78 ++++++++++++++++++++------- dev-python/cython/metadata.xml | 6 +++ 2 files changed, 64 insertions(+), 20 deletions(-) diff --git a/dev-python/cython/cython-3.1.1.ebuild b/dev-python/cython/cython-3.1.1.ebuild index 3931c3e0fe2eb..51b147eecc22e 100644 --- a/dev-python/cython/cython-3.1.1.ebuild +++ b/dev-python/cython/cython-3.1.1.ebuild @@ -5,8 +5,9 @@ EAPI=8 DISTUTILS_EXT=1 DISTUTILS_USE_PEP517=setuptools -PYTHON_TESTED=( python3_{11..12} ) -PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" pypy3_11 python3_13{,t} python3_14{,t} ) +PYTHON_FULLY_TESTED=( python3_{11..14} ) +PYTHON_TESTED=( "${PYTHON_FULLY_TESTED[@]}" pypy3_11 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) PYTHON_REQ_USE="threads(+)" inherit distutils-r1 multiprocessing pypi toolchain-funcs @@ -21,15 +22,17 @@ HOMEPAGE=" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="test" +IUSE="test test-full" RESTRICT="!test? ( test )" BDEPEND=" ${RDEPEND} test? ( - $(python_gen_cond_dep ' - =3.13. + --exclude 'subinterpreters_threading_stress_test' + ) + + if [[ ${EPYTHON} == pypy3* ]] ; then + testargs+=( + # Recursion issue + --exclude 'run.if_else_expr' + --exclude 'run.test_patma*' + # Slight output difference (missing '<') + --exclude 'run.cpp_exception_ptr_just_handler' + + ) + fi + + # Keep test-full for numpy as it's large and doesn't pass tests itself + # on niche arches. + if ! use test-full || ! has "${EPYTHON/./_}" "${PYTHON_FULLY_TESTED[@]}"; then + testargs+=( + --exclude 'run.numpy*' + --exclude 'run.ufunc' + --exclude 'numpy*' + ) + fi + + "${PYTHON}" runtests.py "${testargs[@]}" || die "Tests fail with ${EPYTHON}" } python_install_all() { diff --git a/dev-python/cython/metadata.xml b/dev-python/cython/metadata.xml index 4960428b8c6bf..fd01ff3d83806 100644 --- a/dev-python/cython/metadata.xml +++ b/dev-python/cython/metadata.xml @@ -10,6 +10,12 @@ language as easy as Python itself. It's based on Pyrex, but supports more cutting edge functionality and optimizations. + + + Run test suite in full via additional (large) test + dependencies, like dev-python/numpy. + + Cython cython/cython