python3-numpy: fix ptests

Fix the numpy ptests by doing the following:

- Add meson to ptest RDEPENDS in the recipe;
- Add python3-unittest-automake-output as a ptest RDEPENDS;
- Convert run-ptest to a shell script that sets PYTEST_DEBUG_TEMPROOT to
  a directory inside the same path that contains the script, create that
  directory, and then invoke the tests with `pytest --automake` pointed
  at the numpy path in site-packages (copying the tests into the normal
  PTEST_DIRECTORY seems to cause module import breakages in some tests).
  This also includes skipping two problematic tests which require a C
  compiler and use up a lot of space, respectively;
- Set 'IMAGE_ROOTFS_EXTRA_SPACE = "3048576"' for python3-numpy in
  core-image-ptest.bb;
- Also set 'QB_MEM:virtclass-mcextend-python3-numpy = "-m 4096"' in
  core-image-ptest.bb;
- Move python3-numpy from the PTESTS_PROBLEMS list to the PTESTS_SLOW
  one.

Results on qemux86-64:

Testsuite summary
DURATION: 87
END: /usr/lib/python3-numpy/ptest
2025-04-29T17:35
STOP: ptest-runner
TOTAL: 1 FAIL: 0

Note that many of the skipped tests are due to the absence of
python3-mypy (which is currently in meta-python) and of a Fortran
compiler.

(From OE-Core rev: 7f0b5e8faa1b246531ac425c99a629eb344b21e2)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Trevor Gamblin
2025-04-29 14:38:01 -04:00
committed by Richard Purdie
parent 98889f60cc
commit 0cb7199a8d
4 changed files with 43 additions and 26 deletions

View File

@@ -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"