==> Building on articuno ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-pytest-mpi ./ .SRCINFO 510 100% 0.00kB/s 0:00:00 510 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=3/5) .nvchecker.toml 56 100% 54.69kB/s 0:00:00 56 100% 54.69kB/s 0:00:00 (xfr#2, to-chk=2/5) PKGBUILD 962 100% 939.45kB/s 0:00:00 962 100% 939.45kB/s 0:00:00 (xfr#3, to-chk=1/5) python-pytest-mpi-0.6-6.log 610 100% 595.70kB/s 0:00:00 610 100% 595.70kB/s 0:00:00 (xfr#4, to-chk=0/5) sent 1,484 bytes received 144 bytes 3,256.00 bytes/sec total size is 1,693 speedup is 1.04 ==> Running pkgctl build --arch riscv64 --repo extra on remote host... ==> WARNING: unsupported architecture: riscv64 ==> Building python-pytest-mpi  -> repo: extra  -> arch: riscv64  -> worker: felix-0 ==> Building python-pytest-mpi for [extra] (riscv64) ]2;🔵 Container arch-nspawn-956315 on articuno.felixc.at\[?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] -> [felix-0]...done ==> Making package: python-pytest-mpi 0.6-6 (Thu Jan 9 18:59:36 2025) ==> 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 37416 0 --:--:-- --:--:-- --:--:-- 37416 ==> Validating source files with sha256sums... pytest-mpi-0.6.tar.gz ... Passed ]2;🔵 Container arch-nspawn-957390 on articuno.felixc.at\==> Making package: python-pytest-mpi 0.6-6 (Thu Jan 9 18:59:53 2025) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (6) New Version Net Change extra/mpdecimal 4.0.0-2 0.29 MiB core/python 3.13.1-1 108.57 MiB extra/python-iniconfig 2.0.0-6 0.04 MiB extra/python-packaging 24.2-3 0.66 MiB extra/python-pluggy 1.5.0-3 0.20 MiB extra/python-pytest 1:8.3.4-1 3.92 MiB Total Installed Size: 113.68 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing mpdecimal... installing python... Optional dependencies for python python-setuptools: for building Python packages using tooling that is usually bundled with Python python-pip: for installing Python packages using tooling that is usually bundled with Python python-pipx: for installing Python software not packaged on Arch Linux sqlite: for a default database integration [installed] xz: for lzma [installed] tk: for tkinter installing python-iniconfig... installing python-packaging... installing python-pluggy... installing python-pytest... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (20) New Version Net Change Download Size extra/hwloc 2.11.2-1 1.45 MiB extra/libfabric 2.0.0-1 4.15 MiB 1.28 MiB core/libnl 3.11.0-1 1.85 MiB extra/libpciaccess 0.18.1-2 0.05 MiB extra/numactl 2.0.19-1 0.20 MiB extra/openpmix 5.0.6-1 3.40 MiB 0.91 MiB extra/openucx 1.17.0-3 5.98 MiB extra/prrte 3.0.8-1 1.76 MiB extra/python-autocommand 2.2.2-7 0.08 MiB extra/python-jaraco.collections 5.1.0-1 0.10 MiB extra/python-jaraco.context 6.0.1-1 0.04 MiB extra/python-jaraco.functools 4.1.0-1 0.07 MiB extra/python-jaraco.text 4.0.0-2 0.08 MiB extra/python-more-itertools 10.5.0-1 0.64 MiB extra/python-platformdirs 4.3.6-2 0.24 MiB extra/python-wheel 0.45.0-3 0.28 MiB extra/openmpi 5.0.6-2 9.01 MiB 3.88 MiB extra/python-mpi4py 4.0.1-1 2.93 MiB 0.85 MiB extra/python-setuptools 1:75.2.0-4 8.05 MiB extra/python-sybil 6.0.3-3.1 0.30 MiB 0.06 MiB Total Download Size: 6.99 MiB Total Installed Size: 40.67 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... openmpi-5.0.6-2-riscv64 downloading... libfabric-2.0.0-1-riscv64 downloading... openpmix-5.0.6-1-riscv64 downloading... python-mpi4py-4.0.1-1-riscv64 downloading... python-sybil-6.0.3-3.1-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-jaraco.text... Optional dependencies for python-jaraco.text python-inflect: for show-newlines script installing python-jaraco.collections... installing python-platformdirs... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures python-setuptools: for legacy bdist_wheel subcommand [pending] installing python-setuptools... installing libpciaccess... installing hwloc... Optional dependencies for hwloc cairo: PDF, Postscript, and PNG export support libxml2: full XML import/export support [installed] installing numactl... installing libfabric... installing libnl... installing openpmix... Optional dependencies for openpmix openpmix-docs: for documentation installing openucx... Optional dependencies for openucx rdma-core: for InfiniBand and RDMA support rocm-language-runtime: for ROCm support 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 installing python-mpi4py... installing python-sybil... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?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/lib/pytest_mpi copying src/pytest_mpi/_helpers.py -> build/lib/pytest_mpi copying src/pytest_mpi/__init__.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.13.1, pytest-8.3.4, pluggy-1.5.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /build/python-pytest-mpi/src/pytest-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 FAILED [ 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.13/site-packages/_pytest/pytester.py:564: 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.13/site-packages/_pytest/pytester.py:582: 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 ----------------------------- ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --with-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_file_name0 ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --with-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_file_name0 -------------------------------------------------------------------------- prterun detected that one or more processes exited with non-zero status, thus causing the job to be terminated. The first process to do so was: Process name: [prterun-arch-nspawn-957390-1054@1,0] Exit code: 4 -------------------------------------------------------------------------- _______________________________ 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.13/site-packages/_pytest/pytester.py:564: 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.13/site-packages/_pytest/pytester.py:582: 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 ----------------------------- ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --with-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_tmpdir0 ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --with-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_tmpdir0 -------------------------------------------------------------------------- prterun detected that one or more processes exited with non-zero status, thus causing the job to be terminated. The first process to do so was: Process name: [prterun-arch-nspawn-957390-1059@1,1] Exit code: 4 -------------------------------------------------------------------------- ______________________________ 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.13/site-packages/_pytest/pytester.py:564: 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.13/site-packages/_pytest/pytester.py:582: 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 ----------------------------- ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --with-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_tmp_path0 ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --with-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_tmp_path0 -------------------------------------------------------------------------- prterun detected that one or more processes exited with non-zero status, thus causing the job to be terminated. The first process to do so was: Process name: [prterun-arch-nspawn-957390-1064@1,0] Exit code: 4 -------------------------------------------------------------------------- ___________________________________ test_mpi ___________________________________ testdir = def test_mpi(testdir): testdir.makepyfile(MPI_TEST_CODE) result = testdir.runpytest() > result.assert_outcomes(skipped=4, passed=1) E AssertionError: assert {'passed': 3, 'skipped': 0, 'failed': 2, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 4, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} E  E Common items: E {'errors': 0, 'xfailed': 0, 'xpassed': 0} E Differing items: E {'failed': 2} != {'failed': 0} E {'passed': 3} != {'passed': 1} E {'skipped': 0} != {'skipped': 4} E  E Full diff: E { E 'errors': 0, E - 'failed': 0, E ? ^ E + 'failed': 2, E ? ^ E - 'passed': 1, E ? ^ E + 'passed': 3, E ? ^ E - 'skipped': 4, E ? ^ E + 'skipped': 0, E ? ^ E 'xfailed': 0, E 'xpassed': 0, E } /build/python-pytest-mpi/src/pytest-mpi-0.6/tests/test_markers.py:63: AssertionError ----------------------------- Captured stdout call ----------------------------- running: /usr/bin/python -mpytest --basetemp=/tmp/pytest-of-builduser/pytest-0/test_mpi0/runpytest-0 --basetemp=/tmp/pytest-of-builduser/pytest-0/basetemp in: /tmp/pytest-of-builduser/pytest-0/test_mpi0 ============================= test session starts ============================== platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi0 collected 5 items test_mpi.py .FF.. [100%] =================================== FAILURES =================================== _______________________________ test_size_min_2 ________________________________ @pytest.mark.mpi(min_size=2) def test_size_min_2(): from mpi4py import MPI comm = MPI.COMM_WORLD > assert comm.size >= 2 E assert 1 >= 2 E + where 1 = .size test_mpi.py:15: AssertionError _______________________________ test_size_min_4 ________________________________ @pytest.mark.mpi(min_size=4) def test_size_min_4(): from mpi4py import MPI comm = MPI.COMM_WORLD > assert comm.size >= 4 E assert 1 >= 4 E + where 1 = .size test_mpi.py:22: AssertionError =============================== warnings summary =============================== test_mpi.py:3 /tmp/pytest-of-builduser/pytest-0/test_mpi0/test_mpi.py:3: PytestUnknownMarkWarning: Unknown pytest.mark.mpi - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.mpi test_mpi.py:10 /tmp/pytest-of-builduser/pytest-0/test_mpi0/test_mpi.py:10: PytestUnknownMarkWarning: Unknown pytest.mark.mpi - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.mpi(min_size=2) test_mpi.py:17 /tmp/pytest-of-builduser/pytest-0/test_mpi0/test_mpi.py:17: PytestUnknownMarkWarning: Unknown pytest.mark.mpi - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.mpi(min_size=4) test_mpi.py:24 /tmp/pytest-of-builduser/pytest-0/test_mpi0/test_mpi.py:24: PytestUnknownMarkWarning: Unknown pytest.mark.mpi - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.mpi(2) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED test_mpi.py::test_size_min_2 - assert 1 >= 2 FAILED test_mpi.py::test_size_min_4 - assert 1 >= 4 =================== 2 failed, 3 passed, 4 warnings in 1.78s ==================== ______________________________ 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.13/site-packages/_pytest/pytester.py:564: 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.13/site-packages/_pytest/pytester.py:582: 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 ----------------------------- ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --with-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_with_mpi0 ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --with-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_with_mpi0 -------------------------------------------------------------------------- prterun detected that one or more processes exited with non-zero status, thus causing the job to be terminated. The first process to do so was: Process name: [prterun-arch-nspawn-957390-1072@1,1] Exit code: 4 -------------------------------------------------------------------------- ______________________________ 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.13/site-packages/_pytest/pytester.py:564: 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.13/site-packages/_pytest/pytester.py:582: 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 ----------------------------- ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --only-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_only_mpi0 ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --only-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_only_mpi0 -------------------------------------------------------------------------- prterun detected that one or more processes exited with non-zero status, thus causing the job to be terminated. The first process to do so was: Process name: [prterun-arch-nspawn-957390-1077@1,1] Exit code: 4 -------------------------------------------------------------------------- ___________________________ 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.13/site-packages/_pytest/pytester.py:564: 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.13/site-packages/_pytest/pytester.py:582: 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 ----------------------------- ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --with-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_skip_under_mpi0 ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --with-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_skip_under_mpi0 -------------------------------------------------------------------------- prterun detected that one or more processes exited with non-zero status, thus causing the job to be terminated. The first process to do so was: Process name: [prterun-arch-nspawn-957390-1083@1,0] Exit code: 4 -------------------------------------------------------------------------- ___________________________ 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.13/site-packages/_pytest/pytester.py:564: 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.13/site-packages/_pytest/pytester.py:582: 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 ----------------------------- ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --with-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_xfail_under_mpi0 ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...] __main__.py: error: unrecognized arguments: --with-mpi inifile: None rootdir: /tmp/pytest-of-builduser/pytest-0/test_mpi_xfail_under_mpi0 -------------------------------------------------------------------------- prterun detected that one or more processes exited with non-zero status, thus causing the job to be terminated. The first process to do so was: Process name: [prterun-arch-nspawn-957390-1091@1,1] Exit code: 4 -------------------------------------------------------------------------- =========================== 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 - AssertionError: assert {'passed': 3, 'skipped': 0, 'failed': 2, 'errors': 0, 'xpassed': 0, 'xfailed': 0} == {'passed': 1, 'skipped': 4, 'failed': 0, 'errors': 0, 'xpassed': 0, 'xfailed': 0} Common items: {'errors': 0, 'xfailed': 0, 'xpassed': 0} Differing items: {'failed': 2} != {'failed': 0} {'passed': 3} != {'passed': 1} {'skipped': 0} != {'skipped': 4} Full diff: { 'errors': 0, - 'failed': 0, ? ^ + 'failed': 2, ? ^ - 'passed': 1, ? ^ + 'passed': 3, ? ^ - 'skipped': 4, ? ^ + 'skipped': 0, ? ^ 'xfailed': 0, 'xpassed': 0, } 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 ========================= 8 failed, 2 passed in 17.71s ========================= ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build [?25h[?25h[?25hreceiving incremental file list python-pytest-mpi-0.6-6-riscv64-build.log python-pytest-mpi-0.6-6-riscv64-check.log sent 62 bytes received 3,171 bytes 6,466.00 bytes/sec total size is 28,423 speedup is 8.79