==> Building on baxcalibur ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-pytest-xprocess ./ .SRCINFO 839 100% 0.00kB/s 0:00:00 839 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=7/9) .nvchecker.toml 111 100% 108.40kB/s 0:00:00 111 100% 108.40kB/s 0:00:00 (xfr#2, to-chk=6/9) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=5/9) PKGBUILD 1,682 100% 1.60MB/s 0:00:00 1,682 100% 1.60MB/s 0:00:00 (xfr#4, to-chk=4/9) REUSE.toml 375 100% 366.21kB/s 0:00:00 375 100% 366.21kB/s 0:00:00 (xfr#5, to-chk=3/9) python-pytest-xprocess-1.0.1-3.log 747 100% 729.49kB/s 0:00:00 747 100% 729.49kB/s 0:00:00 (xfr#6, to-chk=2/9) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE sent 2,952 bytes received 198 bytes 2,100.00 bytes/sec total size is 3,860 speedup is 1.23 ==> Running pkgctl build --arch riscv64 on remote host... ==> WARNING: invalid architecture: riscv64 ==> Updating pacman database cache [?25l:: Synchronizing package databases... core downloading... extra downloading... multilib downloading... [?25h==> Building python-pytest-xprocess  -> repo: extra  -> arch: riscv64  -> worker: felix-0 ==> Building python-pytest-xprocess for [extra] (riscv64) ]3008;start=f1f4672e585f42daa5f9bafe894663e5;user=root;hostname=baxcalibur.felixc.at;machineid=33bd66794bef4c019a0e3acfdcceb30a;bootid=7bd37e465ddc442aa00ee31b1f383665;pid=2012306;comm=systemd-nspawn;container=arch-nspawn-2012306;type=container\]11;?\]2;🔵 Container arch-nspawn-2012306 on baxcalibur.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... resolving dependencies... looking for conflicting packages... Package (2) Old Version New Version Net Change Download Size core/brotli 1.1.0-3 1.2.0-1 0.04 MiB 0.46 MiB core/libseccomp 2.5.6-1.1 2.6.0-1 0.06 MiB 0.10 MiB Total Download Size: 0.56 MiB Total Installed Size: 1.33 MiB Net Upgrade Size: 0.09 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... brotli-1.2.0-1-riscv64 downloading... libseccomp-2.6.0-1-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... upgrading brotli... upgrading libseccomp... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h[!p]104[?7h]3008;end=f1f4672e585f42daa5f9bafe894663e5\==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-0]...done ==> Making package: python-pytest-xprocess 1.0.1-3 (Sun Jan 25 09:24:54 2026) ==> Retrieving sources...  -> Downloading pytest-xprocess-1.0.1.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 27799 0 27799 0 0 23210 0 --:--:-- 0:00:01 --:--:-- 52950 ==> Validating source files with sha512sums... pytest-xprocess-1.0.1.tar.gz ... Passed ==> Validating source files with b2sums... pytest-xprocess-1.0.1.tar.gz ... Passed ]3008;start=32456ce090df4897a211b632e712ebdd;user=root;hostname=baxcalibur.felixc.at;machineid=33bd66794bef4c019a0e3acfdcceb30a;bootid=7bd37e465ddc442aa00ee31b1f383665;pid=2013370;comm=systemd-nspawn;container=arch-nspawn-2013370;type=container\]11;?\]2;🔵 Container arch-nspawn-2013370 on baxcalibur.felixc.at\==> Making package: python-pytest-xprocess 1.0.1-3 (Sun Jan 25 09:25:17 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (8) New Version Net Change Download Size core/mpdecimal 4.0.1-1 0.31 MiB extra/python-iniconfig 2.1.0-3.1 0.05 MiB extra/python-packaging 26.0-1 0.89 MiB extra/python-pluggy 1.6.0-3.1 0.23 MiB extra/python-pygments 2.19.2-3 15.30 MiB core/python 3.14.2-2 132.78 MiB extra/python-psutil 7.2.1-1 1.12 MiB 0.20 MiB extra/python-pytest 1:8.4.2-3 4.69 MiB Total Download Size: 0.20 MiB Total Installed Size: 155.36 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-psutil-7.2.1-1-riscv64 downloading... 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-psutil... installing python-iniconfig... installing python-packaging... installing python-pluggy... installing python-pygments... 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 (13) New Version Net Change extra/python-autocommand 2.2.2-9 0.08 MiB extra/python-jaraco.collections 5.1.0-3 0.11 MiB extra/python-jaraco.context 6.0.1-3 0.04 MiB extra/python-jaraco.functools 4.1.0-3 0.07 MiB extra/python-jaraco.text 4.0.0-4 0.08 MiB extra/python-more-itertools 10.8.0-2 0.73 MiB extra/python-platformdirs 4.5.1-3 0.28 MiB extra/python-pyproject-hooks 1.2.0-6 0.11 MiB extra/python-setuptools 1:80.9.0-4 8.03 MiB extra/python-build 1.4.0-1 0.24 MiB extra/python-installer 0.7.0-14 0.20 MiB extra/python-setuptools-scm 9.2.2-3 0.61 MiB extra/python-wheel 0.45.1-4 0.30 MiB Total Installed Size: 10.88 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-installer... 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 python-setuptools-scm... Optional dependencies for python-setuptools-scm python-rich: use rich as console log handler :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Retrieving sources...  -> Found pytest-xprocess-1.0.1.tar.gz ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Extracting pytest-xprocess-1.0.1.tar.gz with bsdtar ==> Starting build()... * Getting build dependencies for wheel... /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running egg_info creating pytest_xprocess.egg-info writing pytest_xprocess.egg-info/PKG-INFO writing dependency_links to pytest_xprocess.egg-info/dependency_links.txt writing entry points to pytest_xprocess.egg-info/entry_points.txt writing requirements to pytest_xprocess.egg-info/requires.txt writing top-level names to pytest_xprocess.egg-info/top_level.txt writing manifest file 'pytest_xprocess.egg-info/SOURCES.txt' reading manifest file 'pytest_xprocess.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'CHANGELOG' adding license file 'LICENSE' writing manifest file 'pytest_xprocess.egg-info/SOURCES.txt' * Building wheel... /usr/lib/python3.14/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running bdist_wheel running build running build_py creating build/lib/xprocess copying xprocess/xprocess.py -> build/lib/xprocess copying xprocess/pytest_xprocess.py -> build/lib/xprocess copying xprocess/__init__.py -> build/lib/xprocess installing to build/bdist.linux-riscv64/wheel running install running install_lib creating build/bdist.linux-riscv64/wheel creating build/bdist.linux-riscv64/wheel/xprocess copying build/lib/xprocess/xprocess.py -> build/bdist.linux-riscv64/wheel/./xprocess copying build/lib/xprocess/pytest_xprocess.py -> build/bdist.linux-riscv64/wheel/./xprocess copying build/lib/xprocess/__init__.py -> build/bdist.linux-riscv64/wheel/./xprocess running install_egg_info running egg_info writing pytest_xprocess.egg-info/PKG-INFO writing dependency_links to pytest_xprocess.egg-info/dependency_links.txt writing entry points to pytest_xprocess.egg-info/entry_points.txt writing requirements to pytest_xprocess.egg-info/requires.txt writing top-level names to pytest_xprocess.egg-info/top_level.txt reading manifest file 'pytest_xprocess.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'CHANGELOG' adding license file 'LICENSE' writing manifest file 'pytest_xprocess.egg-info/SOURCES.txt' Copying pytest_xprocess.egg-info to build/bdist.linux-riscv64/wheel/./pytest_xprocess-1.0.1-py3.14.egg-info running install_scripts creating build/bdist.linux-riscv64/wheel/pytest_xprocess-1.0.1.dist-info/WHEEL creating '/build/python-pytest-xprocess/src/pytest-xprocess-1.0.1/dist/.tmp-qgqjqhcv/pytest_xprocess-1.0.1-py3-none-any.whl' and adding 'build/bdist.linux-riscv64/wheel' to it adding 'pytest_xprocess-1.0.1.dist-info/licenses/LICENSE' adding 'xprocess/__init__.py' adding 'xprocess/pytest_xprocess.py' adding 'xprocess/xprocess.py' adding 'pytest_xprocess-1.0.1.dist-info/METADATA' adding 'pytest_xprocess-1.0.1.dist-info/WHEEL' adding 'pytest_xprocess-1.0.1.dist-info/entry_points.txt' adding 'pytest_xprocess-1.0.1.dist-info/top_level.txt' adding 'pytest_xprocess-1.0.1.dist-info/RECORD' removing build/bdist.linux-riscv64/wheel Successfully built pytest_xprocess-1.0.1-py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.14.2, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /build/python-pytest-xprocess/src/pytest-xprocess-1.0.1 configfile: tox.ini plugins: xprocess-1.0.1 collecting ... collected 51 items / 2 deselected / 49 selected tests/test_callback.py::test_callback_success[s1] PASSED [ 2%] tests/test_callback.py::test_callback_success[s2] PASSED [ 4%] tests/test_callback.py::test_callback_success[s3] PASSED [ 6%] tests/test_callback.py::test_callback_fail[s1] PASSED [ 8%] tests/test_callback.py::test_callback_fail[s2] PASSED [ 10%] tests/test_callback.py::test_callback_fail[s3] PASSED [ 12%] tests/test_functional_workflow.py::test_functional_work_flow PASSED [ 14%] tests/test_process_initialization.py::test_servers_start[s1] PASSED [ 16%] tests/test_process_initialization.py::test_servers_start[s2] PASSED [ 18%] tests/test_process_initialization.py::test_servers_start[s3] PASSED [ 20%] tests/test_process_initialization.py::test_ensure_not_restart[s1] PASSED [ 22%] tests/test_process_initialization.py::test_ensure_not_restart[s2] PASSED [ 24%] tests/test_process_initialization.py::test_ensure_not_restart[s3] PASSED [ 26%] tests/test_process_initialization.py::test_startup_detection_max_read_lines[s1-started-21] PASSED [ 28%] tests/test_process_initialization.py::test_startup_detection_max_read_lines[s2-spam, bacon, eggs-30] PASSED [ 30%] tests/test_process_initialization.py::test_startup_detection_max_read_lines[s3-finally started-130] PASSED [ 32%] tests/test_process_initialization.py::test_runtime_error_on_start_fail[s1] PASSED [ 34%] tests/test_process_initialization.py::test_runtime_error_on_start_fail[s2] PASSED [ 36%] tests/test_process_initialization.py::test_runtime_error_on_start_fail[s3] PASSED [ 38%] tests/test_process_initialization.py::test_popen_kwargs[s1] PASSED [ 40%] tests/test_process_initialization.py::test_popen_kwargs[s2] PASSED [ 42%] tests/test_process_initialization.py::test_popen_kwargs[s3] PASSED [ 44%] tests/test_process_initialization.py::test_startup_without_pattern[s1] FAILED [ 46%] tests/test_process_initialization.py::test_startup_without_pattern[s2] FAILED [ 48%] tests/test_process_initialization.py::test_startup_without_pattern[s3] FAILED [ 51%] tests/test_process_initialization.py::test_startup_with_pattern_and_callback[s1-will not match-21] FAILED [ 53%] tests/test_process_initialization.py::test_startup_with_pattern_and_callback[s2-spam, bacon, eggs-30] FAILED [ 55%] tests/test_process_initialization.py::test_startup_with_pattern_and_callback[s3-finally started-130] FAILED [ 57%] tests/test_process_termination.py::test_clean_shutdown[s1] PASSED [ 59%] tests/test_process_termination.py::test_clean_shutdown[s2] PASSED [ 61%] tests/test_process_termination.py::test_clean_shutdown[s3] PASSED [ 63%] tests/test_process_termination.py::test_terminate_no_pid[s1] PASSED [ 65%] tests/test_process_termination.py::test_terminate_no_pid[s2] PASSED [ 67%] tests/test_process_termination.py::test_terminate_no_pid[s3] PASSED [ 69%] tests/test_process_termination.py::test_terminate_only_parent[s1] PASSED [ 71%] tests/test_process_termination.py::test_terminate_only_parent[s2] PASSED [ 73%] tests/test_process_termination.py::test_terminate_only_parent[s3] PASSED [ 75%] tests/test_process_termination.py::test_sigkill_after_failed_sigterm[s1] PASSED [ 77%] tests/test_process_termination.py::test_sigkill_after_failed_sigterm[s2] PASSED [ 79%] tests/test_process_termination.py::test_sigkill_after_failed_sigterm[s3] PASSED [ 81%] tests/test_process_termination.py::test_return_value_on_failure[s1] PASSED [ 83%] tests/test_process_termination.py::test_return_value_on_failure[s2] PASSED [ 85%] tests/test_process_termination.py::test_return_value_on_failure[s3] PASSED [ 87%] tests/test_resource_cleanup.py::test_0 PASSED [ 89%] tests/test_resource_cleanup.py::test_1 PASSED [ 91%] tests/test_resource_cleanup.py::test_2 PASSED [ 93%] tests/test_startup_timeout.py::test_timeout_raise_exception[s1] PASSED [ 95%] tests/test_startup_timeout.py::test_timeout_raise_exception[s2] PASSED [ 97%] tests/test_startup_timeout.py::test_timeout_raise_exception[s3] PASSED [100%] =================================== FAILURES =================================== _______________________ test_startup_without_pattern[s1] _______________________ tcp_port = 42439, proc_name = 's1' xprocess = @pytest.mark.parametrize("proc_name", ["s1", "s2", "s3"]) def test_startup_without_pattern(tcp_port, proc_name, xprocess): data = "bacon\n" class Starter(ProcessStarter): args = [sys.executable, server_path, tcp_port, "--no-children"] def startup_check(self): return request_response_cycle(tcp_port, data) > xprocess.ensure(proc_name, Starter) tests/test_process_initialization.py:131: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.14/site-packages/xprocess/xprocess.py:284: in ensure if not starter.wait(log_file_handle): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test_dir/usr/lib/python3.14/site-packages/xprocess/xprocess.py:413: in wait callback_ok = self.wait_callback() ^^^^^^^^^^^^^^^^^^^^ test_dir/usr/lib/python3.14/site-packages/xprocess/xprocess.py:388: in wait_callback if self.startup_check(): ^^^^^^^^^^^^^^^^^^^^ tests/test_process_initialization.py:129: in startup_check return request_response_cycle(tcp_port, data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tcp_port = 42439, data = 'bacon\n' def request_response_cycle(tcp_port, data): """test started server instance by sending request and checking response""" with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: > sock.connect(("localhost", tcp_port)) E ConnectionRefusedError: [Errno 111] Connection refused tests/test_process_initialization.py:16: ConnectionRefusedError ----------------------------- Captured stdout call ----------------------------- /build/python-pytest-xprocess/src/pytest-xprocess-1.0.1/.pytest_cache/d/.xprocess/s1$ /usr/bin/python /build/python-pytest-xprocess/src/pytest-xprocess-1.0.1/tests/server.py 42439 --no-children process 's1' started pid=1115 _______________________ test_startup_without_pattern[s2] _______________________ tcp_port = 36339, proc_name = 's2' xprocess = @pytest.mark.parametrize("proc_name", ["s1", "s2", "s3"]) def test_startup_without_pattern(tcp_port, proc_name, xprocess): data = "bacon\n" class Starter(ProcessStarter): args = [sys.executable, server_path, tcp_port, "--no-children"] def startup_check(self): return request_response_cycle(tcp_port, data) > xprocess.ensure(proc_name, Starter) tests/test_process_initialization.py:131: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.14/site-packages/xprocess/xprocess.py:284: in ensure if not starter.wait(log_file_handle): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test_dir/usr/lib/python3.14/site-packages/xprocess/xprocess.py:413: in wait callback_ok = self.wait_callback() ^^^^^^^^^^^^^^^^^^^^ test_dir/usr/lib/python3.14/site-packages/xprocess/xprocess.py:388: in wait_callback if self.startup_check(): ^^^^^^^^^^^^^^^^^^^^ tests/test_process_initialization.py:129: in startup_check return request_response_cycle(tcp_port, data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tcp_port = 36339, data = 'bacon\n' def request_response_cycle(tcp_port, data): """test started server instance by sending request and checking response""" with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: > sock.connect(("localhost", tcp_port)) E ConnectionRefusedError: [Errno 111] Connection refused tests/test_process_initialization.py:16: ConnectionRefusedError ----------------------------- Captured stdout call ----------------------------- /build/python-pytest-xprocess/src/pytest-xprocess-1.0.1/.pytest_cache/d/.xprocess/s2$ /usr/bin/python /build/python-pytest-xprocess/src/pytest-xprocess-1.0.1/tests/server.py 36339 --no-children process 's2' started pid=1116 _______________________ test_startup_without_pattern[s3] _______________________ tcp_port = 59847, proc_name = 's3' xprocess = @pytest.mark.parametrize("proc_name", ["s1", "s2", "s3"]) def test_startup_without_pattern(tcp_port, proc_name, xprocess): data = "bacon\n" class Starter(ProcessStarter): args = [sys.executable, server_path, tcp_port, "--no-children"] def startup_check(self): return request_response_cycle(tcp_port, data) > xprocess.ensure(proc_name, Starter) tests/test_process_initialization.py:131: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.14/site-packages/xprocess/xprocess.py:284: in ensure if not starter.wait(log_file_handle): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test_dir/usr/lib/python3.14/site-packages/xprocess/xprocess.py:413: in wait callback_ok = self.wait_callback() ^^^^^^^^^^^^^^^^^^^^ test_dir/usr/lib/python3.14/site-packages/xprocess/xprocess.py:388: in wait_callback if self.startup_check(): ^^^^^^^^^^^^^^^^^^^^ tests/test_process_initialization.py:129: in startup_check return request_response_cycle(tcp_port, data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tcp_port = 59847, data = 'bacon\n' def request_response_cycle(tcp_port, data): """test started server instance by sending request and checking response""" with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: > sock.connect(("localhost", tcp_port)) E ConnectionRefusedError: [Errno 111] Connection refused tests/test_process_initialization.py:16: ConnectionRefusedError ----------------------------- Captured stdout call ----------------------------- /build/python-pytest-xprocess/src/pytest-xprocess-1.0.1/.pytest_cache/d/.xprocess/s3$ /usr/bin/python /build/python-pytest-xprocess/src/pytest-xprocess-1.0.1/tests/server.py 59847 --no-children process 's3' started pid=1117 _________ test_startup_with_pattern_and_callback[s1-will not match-21] _________ tcp_port = 47149, proc_name = 's1', proc_pttrn = 'will not match', lines = 21 xprocess = @pytest.mark.parametrize( "proc_name,proc_pttrn,lines", [ ("s1", "will not match", 21), ("s2", "spam, bacon, eggs", 30), ("s3", "finally started", 130), ], ) def test_startup_with_pattern_and_callback( tcp_port, proc_name, proc_pttrn, lines, xprocess ): data = "bacon\n" class Starter(ProcessStarter): pattern = proc_pttrn max_read_lines = lines args = [sys.executable, server_path, tcp_port, "--no-children"] def startup_check(self): return request_response_cycle(tcp_port, data) if proc_name == "s1": > with pytest.raises(RuntimeError): ^^^^^^^^^^^^^^^^^^^^^^^^^^^ E Failed: DID NOT RAISE tests/test_process_initialization.py:159: Failed _______ test_startup_with_pattern_and_callback[s2-spam, bacon, eggs-30] ________ tcp_port = 36499, proc_name = 's2', proc_pttrn = 'spam, bacon, eggs', lines = 30 xprocess = @pytest.mark.parametrize( "proc_name,proc_pttrn,lines", [ ("s1", "will not match", 21), ("s2", "spam, bacon, eggs", 30), ("s3", "finally started", 130), ], ) def test_startup_with_pattern_and_callback( tcp_port, proc_name, proc_pttrn, lines, xprocess ): data = "bacon\n" class Starter(ProcessStarter): pattern = proc_pttrn max_read_lines = lines args = [sys.executable, server_path, tcp_port, "--no-children"] def startup_check(self): return request_response_cycle(tcp_port, data) if proc_name == "s1": with pytest.raises(RuntimeError): xprocess.ensure(proc_name, Starter) # since we made xprocess fail to start the server on purpose, we cannot # terminate it using XProcessInfo.terminate method once it does not # know the PID, process name or even that it is running, so we tell the # server to terminate itself. with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: sock.connect(("localhost", tcp_port)) sock.sendall(bytes("exit\n", "utf-8")) else: xprocess.ensure(proc_name, Starter) info = xprocess.getinfo(proc_name) assert info.isrunning() > assert request_response_cycle(tcp_port, data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_process_initialization.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tcp_port = 36499, data = 'bacon\n' def request_response_cycle(tcp_port, data): """test started server instance by sending request and checking response""" with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: > sock.connect(("localhost", tcp_port)) E ConnectionRefusedError: [Errno 111] Connection refused tests/test_process_initialization.py:16: ConnectionRefusedError ________ test_startup_with_pattern_and_callback[s3-finally started-130] ________ tcp_port = 58591, proc_name = 's3', proc_pttrn = 'finally started', lines = 130 xprocess = @pytest.mark.parametrize( "proc_name,proc_pttrn,lines", [ ("s1", "will not match", 21), ("s2", "spam, bacon, eggs", 30), ("s3", "finally started", 130), ], ) def test_startup_with_pattern_and_callback( tcp_port, proc_name, proc_pttrn, lines, xprocess ): data = "bacon\n" class Starter(ProcessStarter): pattern = proc_pttrn max_read_lines = lines args = [sys.executable, server_path, tcp_port, "--no-children"] def startup_check(self): return request_response_cycle(tcp_port, data) if proc_name == "s1": with pytest.raises(RuntimeError): xprocess.ensure(proc_name, Starter) # since we made xprocess fail to start the server on purpose, we cannot # terminate it using XProcessInfo.terminate method once it does not # know the PID, process name or even that it is running, so we tell the # server to terminate itself. with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: sock.connect(("localhost", tcp_port)) sock.sendall(bytes("exit\n", "utf-8")) else: xprocess.ensure(proc_name, Starter) info = xprocess.getinfo(proc_name) assert info.isrunning() > assert request_response_cycle(tcp_port, data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_process_initialization.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tcp_port = 58591, data = 'bacon\n' def request_response_cycle(tcp_port, data): """test started server instance by sending request and checking response""" with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: > sock.connect(("localhost", tcp_port)) E ConnectionRefusedError: [Errno 111] Connection refused tests/test_process_initialization.py:16: ConnectionRefusedError =========================== short test summary info ============================ FAILED tests/test_process_initialization.py::test_startup_without_pattern[s1] - ConnectionRefusedError: [Errno 111] Connection refused FAILED tests/test_process_initialization.py::test_startup_without_pattern[s2] - ConnectionRefusedError: [Errno 111] Connection refused FAILED tests/test_process_initialization.py::test_startup_without_pattern[s3] - ConnectionRefusedError: [Errno 111] Connection refused FAILED tests/test_process_initialization.py::test_startup_with_pattern_and_callback[s1-will not match-21] - Failed: DID NOT RAISE FAILED tests/test_process_initialization.py::test_startup_with_pattern_and_callback[s2-spam, bacon, eggs-30] - ConnectionRefusedError: [Errno 111] Connection refused FAILED tests/test_process_initialization.py::test_startup_with_pattern_and_callback[s3-finally started-130] - ConnectionRefusedError: [Errno 111] Connection refused ================= 6 failed, 43 passed, 2 deselected in 44.85s ================== pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo().terminate()'. ==> ERROR: A failure occurred in check().  Aborting... [!p]104[?7h]3008;end=32456ce090df4897a211b632e712ebdd\==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build [?25h[?25h[?25hreceiving incremental file list python-pytest-xprocess-1.0.1-3-riscv64-build.log python-pytest-xprocess-1.0.1-3-riscv64-check.log sent 62 bytes received 3,456 bytes 1,407.20 bytes/sec total size is 22,271 speedup is 6.33