diff --git a/meta/conf/distro/include/ptest-packagelists.inc b/meta/conf/distro/include/ptest-packagelists.inc index f3fdededf6..51b29cf17e 100644 --- a/meta/conf/distro/include/ptest-packagelists.inc +++ b/meta/conf/distro/include/ptest-packagelists.inc @@ -120,6 +120,7 @@ PTESTS_SLOW = "\ python3-cffi \ python3-click \ python3-cryptography \ + python3-numpy \ python3-xmltodict \ strace \ tar \ @@ -143,7 +144,6 @@ PTESTS_SLOW:append:libc-musl = " libc-test" # libpam \ # Needs pam DISTRO_FEATURE # mdadm \ # tests are flaky in AB. # numactl \ # qemu not (yet) configured for numa; all tests are skipped -# python3-numpy \ # requires even more RAM and (possibly) disk space; multiple failures PTESTS_PROBLEMS = "\ ruby \ @@ -155,5 +155,4 @@ PTESTS_PROBLEMS = "\ mdadm \ numactl \ python3-license-expression \ - python3-numpy \ " diff --git a/meta/recipes-core/images/core-image-ptest.bb b/meta/recipes-core/images/core-image-ptest.bb index a0ff8d9528..73270d1067 100644 --- a/meta/recipes-core/images/core-image-ptest.bb +++ b/meta/recipes-core/images/core-image-ptest.bb @@ -27,11 +27,15 @@ IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-lttng-tools = "1524288" # tar-ptest in particular needs more space IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-tar = "1524288" +# python3-numpy-ptest requires a lot of extra space +IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-python3-numpy = "3048576" + # ptests need more memory than standard to avoid the OOM killer QB_MEM = "-m 1024" QB_MEM:virtclass-mcextend-lttng-tools = "-m 4096" QB_MEM:virtclass-mcextend-python3 = "-m 2048" QB_MEM:virtclass-mcextend-python3-cryptography = "-m 5100" +QB_MEM:virtclass-mcextend-python3-numpy = "-m 4096" QB_MEM:virtclass-mcextend-tcl = "-m 5100" TEST_SUITES = "ping ssh parselogs ptest" diff --git a/meta/recipes-devtools/python/python3-numpy/run-ptest b/meta/recipes-devtools/python/python3-numpy/run-ptest index 9a1c72aeb1..6e76dffc59 100644 --- a/meta/recipes-devtools/python/python3-numpy/run-ptest +++ b/meta/recipes-devtools/python/python3-numpy/run-ptest @@ -1,5 +1,15 @@ -#!/usr/bin/env python3 +#!/bin/sh -import numpy -numpy.test(label='full', verbose=2) +# By default, numpy will use /tmp as the root path for temporary files used +# during tests, but if this is a tmpfs it may fill up quickly and cause many of +# the tests to report "no space left on device" errors. Create a custom +# directory for these and point pytest at it so we can take advantage of the +# storage provided in the rootfs. +export PYTEST_DEBUG_TEMPROOT="/usr/lib/python3-numpy/ptest/tmp" +mkdir -p "$PYTEST_DEBUG_TEMPROOT" +# test_mem_policy fails if there's no C compiler present, but we don't want to +# include gcc as a ptest dependency, so skip that. test_big_arrays uses up a +# large amount of storage, so skip that too. +pytest --automake -m "not slow" -k "not test_mem_policy and not test_big_arrays" /usr/lib/python3.*/site-packages/numpy +rm -rf "$PYTEST_DEBUG_TEMPROOT" diff --git a/meta/recipes-devtools/python/python3-numpy_2.2.5.bb b/meta/recipes-devtools/python/python3-numpy_2.2.5.bb index c6a37c0a85..f963e15b83 100644 --- a/meta/recipes-devtools/python/python3-numpy_2.2.5.bb +++ b/meta/recipes-devtools/python/python3-numpy_2.2.5.bb @@ -41,32 +41,36 @@ FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/_core/lib/*.a \ " # install what is needed for numpy.test() -RDEPENDS:${PN} = "python3-unittest \ - python3-difflib \ - python3-pprint \ - python3-pickle \ - python3-shell \ - python3-doctest \ - python3-datetime \ - python3-misc \ - python3-mmap \ - python3-netclient \ - python3-numbers \ - python3-pydoc \ - python3-pkgutil \ - python3-email \ +RDEPENDS:${PN} = "\ python3-compression \ python3-ctypes \ - python3-threading \ - python3-multiprocessing \ + python3-datetime \ + python3-difflib \ + python3-doctest \ + python3-email \ python3-json \ + python3-misc \ + python3-mmap \ + python3-multiprocessing \ + python3-netclient \ + python3-numbers \ + python3-pickle \ + python3-pkgutil \ + python3-pprint \ + python3-pydoc \ + python3-shell \ + python3-threading \ + python3-unittest \ " -RDEPENDS:${PN}-ptest += "python3-pytest \ - python3-hypothesis \ - python3-sortedcontainers \ - python3-resource \ - python3-typing-extensions \ +RDEPENDS:${PN}-ptest += "\ ldd \ + meson \ + python3-hypothesis \ + python3-pytest \ + python3-resource \ + python3-sortedcontainers \ + python3-typing-extensions \ + python3-unittest-automake-output \ " BBCLASSEXTEND = "native nativesdk"