==> Building on charcadet ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-pytest-mpi ./ .SRCINFO 544 100% 0.00kB/s 0:00:00 544 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=2/4) PKGBUILD 982 100% 958.98kB/s 0:00:00 982 100% 958.98kB/s 0:00:00 (xfr#2, to-chk=1/4) python-pytest-mpi-0.6-5.1.log 373 100% 364.26kB/s 0:00:00 373 100% 364.26kB/s 0:00:00 (xfr#3, to-chk=0/4) sent 1,341 bytes received 125 bytes 2,932.00 bytes/sec total size is 1,722 speedup is 1.17 ==> Running extra-riscv64-build -- -d /home/felix/packages/riscv64-pkg-cache:/var/cache/pacman/pkg -l root1 on remote host... [?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [root1]...done ==> Making package: python-pytest-mpi 0.6-5.1 (Fri May 31 10:23:59 2024) ==> Retrieving sources...  -> Downloading pytest-mpi-0.6.tar.gz... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 35329 100 35329 0 0 41092 0 --:--:-- --:--:-- --:--:-- 41092 ==> Validating source files with sha256sums... pytest-mpi-0.6.tar.gz ... Passed ==> Making package: python-pytest-mpi 0.6-5.1 (Fri May 31 10:24:27 2024) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (4) New Version Net Change extra/python-iniconfig 2.0.0-5 0.04 MiB extra/python-packaging 24.0-1 0.50 MiB extra/python-pluggy 1.5.0-1 0.20 MiB extra/python-pytest 1:8.1.2-1 3.89 MiB Total Installed Size: 4.63 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-iniconfig... installing python-packaging... installing python-pluggy... installing python-pytest... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (26) New Version Net Change Download Size extra/hwloc 2.9.1-1 1.31 MiB extra/libfabric 1.21.0-1 3.34 MiB 1.12 MiB core/libnl 3.9.0-1 1.73 MiB extra/libpciaccess 0.18.1-2 0.05 MiB extra/numactl 2.0.18-1 0.19 MiB extra/openpmix 5.0.2-1 3.34 MiB 0.91 MiB extra/prrte 3.0.5-3 1.66 MiB 0.56 MiB extra/python-autocommand 2.2.2-6 0.08 MiB extra/python-fastjsonschema 2.19.1-3 0.26 MiB extra/python-inflect 7.2.1-2 0.36 MiB extra/python-jaraco.context 4.3.0-4 0.03 MiB extra/python-jaraco.functools 4.0.1-1 0.07 MiB 0.02 MiB extra/python-jaraco.text 3.12.0-3 0.08 MiB extra/python-more-itertools 10.2.0-2 0.61 MiB extra/python-ordered-set 4.1.0-5 0.06 MiB extra/python-platformdirs 4.2.0-3 0.23 MiB extra/python-tomli 2.0.1-4 0.10 MiB extra/python-trove-classifiers 2024.5.22-1 0.12 MiB extra/python-typeguard 4.2.1-2 0.40 MiB extra/python-typing_extensions 4.12.0-1 0.41 MiB extra/python-validate-pyproject 0.16-1 0.31 MiB extra/openmpi 5.0.3-1 6.10 MiB 3.11 MiB extra/python-mpi4py 3.1.5-5 1.91 MiB 0.53 MiB extra/python-pytest-mpi 0.6-5 0.04 MiB 0.01 MiB extra/python-setuptools 1:69.0.3-6 4.39 MiB extra/python-sybil 6.0.3-2 0.30 MiB 0.06 MiB Total Download Size: 6.33 MiB Total Installed Size: 27.48 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... openmpi-5.0.3-1-riscv64 downloading... libfabric-1.21.0-1-riscv64 downloading... openpmix-5.0.2-1-riscv64 downloading... prrte-3.0.5-3-riscv64 downloading... python-mpi4py-3.1.5-5-riscv64 downloading... python-sybil-6.0.3-2-any downloading... python-jaraco.functools-4.0.1-1-any downloading... python-pytest-mpi-0.6-5-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-more-itertools... installing python-jaraco.functools... installing python-jaraco.context... installing python-autocommand... installing python-typing_extensions... installing python-typeguard... installing python-inflect... installing python-jaraco.text... installing python-ordered-set... installing python-platformdirs... installing python-tomli... installing python-fastjsonschema... installing python-trove-classifiers... installing python-validate-pyproject... installing python-setuptools... installing libpciaccess... installing hwloc... Optional dependencies for hwloc cairo libxml2 [installed] pciutils libx11 installing numactl... installing libfabric... installing libnl... installing openpmix... Optional dependencies for openpmix openpmix-docs: for documentation installing prrte... Optional dependencies for prrte openssh: for execution on remote hosts via plm_ssh_agent prrte-docs: for documentation installing openmpi... Optional dependencies for openmpi hip-runtime-amd: ROCm support gcc-fortran: fortran support openssh: for execution on remote hosts via plm_ssh_agent openucc: for UCC accelerated collectives installing python-mpi4py... installing python-sybil... installing python-pytest-mpi... [?25h==> Retrieving sources...  -> Found pytest-mpi-0.6.tar.gz ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Extracting pytest-mpi-0.6.tar.gz with bsdtar ==> Starting build()... running build running build_py creating build creating build/lib creating build/lib/pytest_mpi copying src/pytest_mpi/__init__.py -> build/lib/pytest_mpi copying src/pytest_mpi/_helpers.py -> build/lib/pytest_mpi copying src/pytest_mpi/_version.py -> build/lib/pytest_mpi UPDATING build/lib/pytest_mpi/_version.py set build/lib/pytest_mpi/_version.py to '0.6' ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-8.1.2, pluggy-1.5.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /build/python-pytest-mpi/src/pytest-mpi-0.6 plugins: typeguard-4.2.1, mpi-0.6 collecting ... collected 10 items tests/test_fixtures.py::test_mpi_file_name FAILED [ 10%] tests/test_fixtures.py::test_mpi_tmpdir FAILED [ 20%] tests/test_fixtures.py::test_mpi_tmp_path FAILED [ 30%] tests/test_markers.py::test_mpi PASSED [ 40%] tests/test_markers.py::test_mpi_with_mpi FAILED [ 50%] tests/test_markers.py::test_mpi_only_mpi FAILED [ 60%] tests/test_markers.py::test_mpi_skip PASSED [ 70%] tests/test_markers.py::test_mpi_skip_under_mpi FAILED [ 80%] tests/test_markers.py::test_mpi_xfail PASSED [ 90%] tests/test_markers.py::test_mpi_xfail_under_mpi FAILED [100%] =================================== FAILURES =================================== ______________________________ test_mpi_file_name ______________________________ mpi_testdir = , has_mpi4py = True def test_mpi_file_name(mpi_testdir, has_mpi4py): mpi_testdir.makepyfile(MPI_FILE_NAME_TEST_CODE) result = mpi_testdir.runpytest("--with-mpi", timeout=5) if has_mpi4py: > result.assert_outcomes(passed=1) /build/python-pytest-mpi/src/pytest-mpi-0.6/tests/test_fixtures.py:59: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/_pytest/pytester.py:573: in parseoutcomes return self.parse_summary_nouns(self.outlines) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = , lines = [] @classmethod def parse_summary_nouns(cls, lines) -> Dict[str, int]: """Extract the nouns from a pytest terminal summary line. It always returns the plural noun for consistency:: ======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ==== Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``. """ for line in reversed(lines): if rex_session_duration.search(line): outcomes = rex_outcome.findall(line) ret = {noun: int(count) for (count, noun) in outcomes} break else: > raise ValueError("Pytest terminal summary report not found") E ValueError: Pytest terminal summary report not found /usr/lib/python3.12/site-packages/_pytest/pytester.py:591: ValueError ----------------------------- Captured stdout call ----------------------------- running: mpirun -n 2 /usr/bin/python -mpytest --basetemp=/tmp/pytest-of-builduser/pytest-0/test_mpi_file_name0/runpytest-0 --with-mpi in: /tmp/pytest-of-builduser/pytest-0/test_mpi_file_name0 ----------------------------- Captured stderr call ----------------------------- -------------------------------------------------------------------------- There are not enough slots available in the system to satisfy the 2 slots that were requested by the application: /usr/bin/python Either request fewer procs for your application, or make more slots available for use. A "slot" is the PRRTE term for an allocatable unit where we can launch a process. The number of slots available are defined by the environment in which PRRTE processes are run: 1. Hostfile, via "slots=N" clauses (N defaults to number of processor cores if not provided) 2. The --host command line parameter, via a ":N" suffix on the hostname (N defaults to 1 if not provided) 3. Resource manager (e.g., SLURM, PBS/Torque, LSF, etc.) 4. If none of a hostfile, the --host command line parameter, or an RM is present, PRRTE defaults to the number of processor cores In all the above cases, if you want PRRTE to default to the number of hardware threads instead of the number of processor cores, use the --use-hwthread-cpus option. Alternatively, you can use the --map-by :OVERSUBSCRIBE option to ignore the number of available slots when deciding the number of processes to launch. -------------------------------------------------------------------------- _______________________________ test_mpi_tmpdir ________________________________ mpi_testdir = , has_mpi4py = True def test_mpi_tmpdir(mpi_testdir, has_mpi4py): mpi_testdir.makepyfile(MPI_TMPDIR_TEST_CODE) result = mpi_testdir.runpytest("--with-mpi", timeout=5) if has_mpi4py: > result.assert_outcomes(passed=1) /build/python-pytest-mpi/src/pytest-mpi-0.6/tests/test_fixtures.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/_pytest/pytester.py:573: in parseoutcomes return self.parse_summary_nouns(self.outlines) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = , lines = [] @classmethod def parse_summary_nouns(cls, lines) -> Dict[str, int]: """Extract the nouns from a pytest terminal summary line. It always returns the plural noun for consistency:: ======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ==== Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``. """ for line in reversed(lines): if rex_session_duration.search(line): outcomes = rex_outcome.findall(line) ret = {noun: int(count) for (count, noun) in outcomes} break else: > raise ValueError("Pytest terminal summary report not found") E ValueError: Pytest terminal summary report not found /usr/lib/python3.12/site-packages/_pytest/pytester.py:591: ValueError ----------------------------- Captured stdout call ----------------------------- running: mpirun -n 2 /usr/bin/python -mpytest --basetemp=/tmp/pytest-of-builduser/pytest-0/test_mpi_tmpdir0/runpytest-0 --with-mpi in: /tmp/pytest-of-builduser/pytest-0/test_mpi_tmpdir0 ----------------------------- Captured stderr call ----------------------------- -------------------------------------------------------------------------- There are not enough slots available in the system to satisfy the 2 slots that were requested by the application: /usr/bin/python Either request fewer procs for your application, or make more slots available for use. A "slot" is the PRRTE term for an allocatable unit where we can launch a process. The number of slots available are defined by the environment in which PRRTE processes are run: 1. Hostfile, via "slots=N" clauses (N defaults to number of processor cores if not provided) 2. The --host command line parameter, via a ":N" suffix on the hostname (N defaults to 1 if not provided) 3. Resource manager (e.g., SLURM, PBS/Torque, LSF, etc.) 4. If none of a hostfile, the --host command line parameter, or an RM is present, PRRTE defaults to the number of processor cores In all the above cases, if you want PRRTE to default to the number of hardware threads instead of the number of processor cores, use the --use-hwthread-cpus option. Alternatively, you can use the --map-by :OVERSUBSCRIBE option to ignore the number of available slots when deciding the number of processes to launch. -------------------------------------------------------------------------- ______________________________ test_mpi_tmp_path _______________________________ mpi_testdir = , has_mpi4py = True def test_mpi_tmp_path(mpi_testdir, has_mpi4py): mpi_testdir.makepyfile(MPI_TMP_PATH_TEST_CODE) result = mpi_testdir.runpytest("--with-mpi", timeout=5) if has_mpi4py: > result.assert_outcomes(passed=1) /build/python-pytest-mpi/src/pytest-mpi-0.6/tests/test_fixtures.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/_pytest/pytester.py:573: in parseoutcomes return self.parse_summary_nouns(self.outlines) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = , lines = [] @classmethod def parse_summary_nouns(cls, lines) -> Dict[str, int]: """Extract the nouns from a pytest terminal summary line. It always returns the plural noun for consistency:: ======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ==== Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``. """ for line in reversed(lines): if rex_session_duration.search(line): outcomes = rex_outcome.findall(line) ret = {noun: int(count) for (count, noun) in outcomes} break else: > raise ValueError("Pytest terminal summary report not found") E ValueError: Pytest terminal summary report not found /usr/lib/python3.12/site-packages/_pytest/pytester.py:591: ValueError ----------------------------- Captured stdout call ----------------------------- running: mpirun -n 2 /usr/bin/python -mpytest --basetemp=/tmp/pytest-of-builduser/pytest-0/test_mpi_tmp_path0/runpytest-0 --with-mpi in: /tmp/pytest-of-builduser/pytest-0/test_mpi_tmp_path0 ----------------------------- Captured stderr call ----------------------------- -------------------------------------------------------------------------- There are not enough slots available in the system to satisfy the 2 slots that were requested by the application: /usr/bin/python Either request fewer procs for your application, or make more slots available for use. A "slot" is the PRRTE term for an allocatable unit where we can launch a process. The number of slots available are defined by the environment in which PRRTE processes are run: 1. Hostfile, via "slots=N" clauses (N defaults to number of processor cores if not provided) 2. The --host command line parameter, via a ":N" suffix on the hostname (N defaults to 1 if not provided) 3. Resource manager (e.g., SLURM, PBS/Torque, LSF, etc.) 4. If none of a hostfile, the --host command line parameter, or an RM is present, PRRTE defaults to the number of processor cores In all the above cases, if you want PRRTE to default to the number of hardware threads instead of the number of processor cores, use the --use-hwthread-cpus option. Alternatively, you can use the --map-by :OVERSUBSCRIBE option to ignore the number of available slots when deciding the number of processes to launch. -------------------------------------------------------------------------- ______________________________ test_mpi_with_mpi _______________________________ mpi_testdir = , has_mpi4py = True def test_mpi_with_mpi(mpi_testdir, has_mpi4py): mpi_testdir.makepyfile(MPI_TEST_CODE) result = mpi_testdir.runpytest("--with-mpi") if has_mpi4py: > result.assert_outcomes(**_fix_plural(passed=3, errors=1, skipped=1)) /build/python-pytest-mpi/src/pytest-mpi-0.6/tests/test_markers.py:72: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/_pytest/pytester.py:573: in parseoutcomes return self.parse_summary_nouns(self.outlines) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = , lines = [] @classmethod def parse_summary_nouns(cls, lines) -> Dict[str, int]: """Extract the nouns from a pytest terminal summary line. It always returns the plural noun for consistency:: ======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ==== Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``. """ for line in reversed(lines): if rex_session_duration.search(line): outcomes = rex_outcome.findall(line) ret = {noun: int(count) for (count, noun) in outcomes} break else: > raise ValueError("Pytest terminal summary report not found") E ValueError: Pytest terminal summary report not found /usr/lib/python3.12/site-packages/_pytest/pytester.py:591: ValueError ----------------------------- Captured stdout call ----------------------------- running: mpirun -n 2 /usr/bin/python -mpytest --basetemp=/tmp/pytest-of-builduser/pytest-0/test_mpi_with_mpi0/runpytest-0 --with-mpi in: /tmp/pytest-of-builduser/pytest-0/test_mpi_with_mpi0 ----------------------------- Captured stderr call ----------------------------- -------------------------------------------------------------------------- There are not enough slots available in the system to satisfy the 2 slots that were requested by the application: /usr/bin/python Either request fewer procs for your application, or make more slots available for use. A "slot" is the PRRTE term for an allocatable unit where we can launch a process. The number of slots available are defined by the environment in which PRRTE processes are run: 1. Hostfile, via "slots=N" clauses (N defaults to number of processor cores if not provided) 2. The --host command line parameter, via a ":N" suffix on the hostname (N defaults to 1 if not provided) 3. Resource manager (e.g., SLURM, PBS/Torque, LSF, etc.) 4. If none of a hostfile, the --host command line parameter, or an RM is present, PRRTE defaults to the number of processor cores In all the above cases, if you want PRRTE to default to the number of hardware threads instead of the number of processor cores, use the --use-hwthread-cpus option. Alternatively, you can use the --map-by :OVERSUBSCRIBE option to ignore the number of available slots when deciding the number of processes to launch. -------------------------------------------------------------------------- ______________________________ test_mpi_only_mpi _______________________________ mpi_testdir = , has_mpi4py = True def test_mpi_only_mpi(mpi_testdir, has_mpi4py): mpi_testdir.makepyfile(MPI_TEST_CODE) result = mpi_testdir.runpytest("--only-mpi") if has_mpi4py: > result.assert_outcomes(**_fix_plural(passed=2, errors=1, skipped=2)) /build/python-pytest-mpi/src/pytest-mpi-0.6/tests/test_markers.py:83: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/_pytest/pytester.py:573: in parseoutcomes return self.parse_summary_nouns(self.outlines) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = , lines = [] @classmethod def parse_summary_nouns(cls, lines) -> Dict[str, int]: """Extract the nouns from a pytest terminal summary line. It always returns the plural noun for consistency:: ======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ==== Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``. """ for line in reversed(lines): if rex_session_duration.search(line): outcomes = rex_outcome.findall(line) ret = {noun: int(count) for (count, noun) in outcomes} break else: > raise ValueError("Pytest terminal summary report not found") E ValueError: Pytest terminal summary report not found /usr/lib/python3.12/site-packages/_pytest/pytester.py:591: ValueError ----------------------------- Captured stdout call ----------------------------- running: mpirun -n 2 /usr/bin/python -mpytest --basetemp=/tmp/pytest-of-builduser/pytest-0/test_mpi_only_mpi0/runpytest-0 --only-mpi in: /tmp/pytest-of-builduser/pytest-0/test_mpi_only_mpi0 ----------------------------- Captured stderr call ----------------------------- -------------------------------------------------------------------------- There are not enough slots available in the system to satisfy the 2 slots that were requested by the application: /usr/bin/python Either request fewer procs for your application, or make more slots available for use. A "slot" is the PRRTE term for an allocatable unit where we can launch a process. The number of slots available are defined by the environment in which PRRTE processes are run: 1. Hostfile, via "slots=N" clauses (N defaults to number of processor cores if not provided) 2. The --host command line parameter, via a ":N" suffix on the hostname (N defaults to 1 if not provided) 3. Resource manager (e.g., SLURM, PBS/Torque, LSF, etc.) 4. If none of a hostfile, the --host command line parameter, or an RM is present, PRRTE defaults to the number of processor cores In all the above cases, if you want PRRTE to default to the number of hardware threads instead of the number of processor cores, use the --use-hwthread-cpus option. Alternatively, you can use the --map-by :OVERSUBSCRIBE option to ignore the number of available slots when deciding the number of processes to launch. -------------------------------------------------------------------------- ___________________________ test_mpi_skip_under_mpi ____________________________ mpi_testdir = def test_mpi_skip_under_mpi(mpi_testdir): mpi_testdir.makepyfile(MPI_SKIP_TEST_CODE) result = mpi_testdir.runpytest("--with-mpi") > result.assert_outcomes(skipped=1) /build/python-pytest-mpi/src/pytest-mpi-0.6/tests/test_markers.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/_pytest/pytester.py:573: in parseoutcomes return self.parse_summary_nouns(self.outlines) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = , lines = [] @classmethod def parse_summary_nouns(cls, lines) -> Dict[str, int]: """Extract the nouns from a pytest terminal summary line. It always returns the plural noun for consistency:: ======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ==== Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``. """ for line in reversed(lines): if rex_session_duration.search(line): outcomes = rex_outcome.findall(line) ret = {noun: int(count) for (count, noun) in outcomes} break else: > raise ValueError("Pytest terminal summary report not found") E ValueError: Pytest terminal summary report not found /usr/lib/python3.12/site-packages/_pytest/pytester.py:591: ValueError ----------------------------- Captured stdout call ----------------------------- running: mpirun -n 2 /usr/bin/python -mpytest --basetemp=/tmp/pytest-of-builduser/pytest-0/test_mpi_skip_under_mpi0/runpytest-0 --with-mpi in: /tmp/pytest-of-builduser/pytest-0/test_mpi_skip_under_mpi0 ----------------------------- Captured stderr call ----------------------------- -------------------------------------------------------------------------- There are not enough slots available in the system to satisfy the 2 slots that were requested by the application: /usr/bin/python Either request fewer procs for your application, or make more slots available for use. A "slot" is the PRRTE term for an allocatable unit where we can launch a process. The number of slots available are defined by the environment in which PRRTE processes are run: 1. Hostfile, via "slots=N" clauses (N defaults to number of processor cores if not provided) 2. The --host command line parameter, via a ":N" suffix on the hostname (N defaults to 1 if not provided) 3. Resource manager (e.g., SLURM, PBS/Torque, LSF, etc.) 4. If none of a hostfile, the --host command line parameter, or an RM is present, PRRTE defaults to the number of processor cores In all the above cases, if you want PRRTE to default to the number of hardware threads instead of the number of processor cores, use the --use-hwthread-cpus option. Alternatively, you can use the --map-by :OVERSUBSCRIBE option to ignore the number of available slots when deciding the number of processes to launch. -------------------------------------------------------------------------- ___________________________ test_mpi_xfail_under_mpi ___________________________ mpi_testdir = , has_mpi4py = True def test_mpi_xfail_under_mpi(mpi_testdir, has_mpi4py): mpi_testdir.makepyfile(MPI_XFAIL_TEST_CODE) result = mpi_testdir.runpytest("--with-mpi") if has_mpi4py: > result.assert_outcomes(xfailed=1) /build/python-pytest-mpi/src/pytest-mpi-0.6/tests/test_markers.py:118: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/_pytest/pytester.py:573: in parseoutcomes return self.parse_summary_nouns(self.outlines) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = , lines = [] @classmethod def parse_summary_nouns(cls, lines) -> Dict[str, int]: """Extract the nouns from a pytest terminal summary line. It always returns the plural noun for consistency:: ======= 1 failed, 1 passed, 1 warning, 1 error in 0.13s ==== Will return ``{"failed": 1, "passed": 1, "warnings": 1, "errors": 1}``. """ for line in reversed(lines): if rex_session_duration.search(line): outcomes = rex_outcome.findall(line) ret = {noun: int(count) for (count, noun) in outcomes} break else: > raise ValueError("Pytest terminal summary report not found") E ValueError: Pytest terminal summary report not found /usr/lib/python3.12/site-packages/_pytest/pytester.py:591: ValueError ----------------------------- Captured stdout call ----------------------------- running: mpirun -n 2 /usr/bin/python -mpytest --basetemp=/tmp/pytest-of-builduser/pytest-0/test_mpi_xfail_under_mpi0/runpytest-0 --with-mpi in: /tmp/pytest-of-builduser/pytest-0/test_mpi_xfail_under_mpi0 ----------------------------- Captured stderr call ----------------------------- -------------------------------------------------------------------------- There are not enough slots available in the system to satisfy the 2 slots that were requested by the application: /usr/bin/python Either request fewer procs for your application, or make more slots available for use. A "slot" is the PRRTE term for an allocatable unit where we can launch a process. The number of slots available are defined by the environment in which PRRTE processes are run: 1. Hostfile, via "slots=N" clauses (N defaults to number of processor cores if not provided) 2. The --host command line parameter, via a ":N" suffix on the hostname (N defaults to 1 if not provided) 3. Resource manager (e.g., SLURM, PBS/Torque, LSF, etc.) 4. If none of a hostfile, the --host command line parameter, or an RM is present, PRRTE defaults to the number of processor cores In all the above cases, if you want PRRTE to default to the number of hardware threads instead of the number of processor cores, use the --use-hwthread-cpus option. Alternatively, you can use the --map-by :OVERSUBSCRIBE option to ignore the number of available slots when deciding the number of processes to launch. -------------------------------------------------------------------------- =========================== short test summary info ============================ FAILED tests/test_fixtures.py::test_mpi_file_name - ValueError: Pytest terminal summary report not found FAILED tests/test_fixtures.py::test_mpi_tmpdir - ValueError: Pytest terminal summary report not found FAILED tests/test_fixtures.py::test_mpi_tmp_path - ValueError: Pytest terminal summary report not found FAILED tests/test_markers.py::test_mpi_with_mpi - ValueError: Pytest terminal summary report not found FAILED tests/test_markers.py::test_mpi_only_mpi - ValueError: Pytest terminal summary report not found FAILED tests/test_markers.py::test_mpi_skip_under_mpi - ValueError: Pytest terminal summary report not found FAILED tests/test_markers.py::test_mpi_xfail_under_mpi - ValueError: Pytest terminal summary report not found ========================= 7 failed, 3 passed in 11.64s ========================= ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/root1/build [?25h[?25hreceiving incremental file list python-pytest-mpi-0.6-5.1-riscv64-build.log python-pytest-mpi-0.6-5.1-riscv64-check.log sent 62 bytes received 2,657 bytes 5,438.00 bytes/sec total size is 26,469 speedup is 9.73