Files
lix/tests/functional2/cli/test_daemon.py
T
eldritch horrors c914b9fc53 nix/daemon: wrap kj stdio forwarding errors nicely
not doing this has lix crash if stdio forwarding fails for odd reasons,
such as ssh failing to set up a connection due to transient dns errors.

cf #1148

Change-Id: I543b7444236e69d3c13b47fb6c6eb37c65b96763
2026-03-05 21:43:52 +00:00

27 lines
1.1 KiB
Python

from pathlib import Path
from testlib.fixtures.nix import Nix
from testlib.fixtures.file_helper import with_files
from testlib.utils import get_global_asset_pack
@with_files(get_global_asset_pack("simple-drv"))
def test_stdio_forward_failure(nix: Nix, files: Path):
result = (
nix.nix_build(
[
f"{files}/simple.nix",
"--builders",
# build-remote handles the first ssh-ng in-process, but we want to test how nix-daemon
# behaves in error cases. we need to explicitly set remote-program for the main remote
# connection since we may choose the wrong binary otherwise. the inner ssh-ng also has
# a remote-program set to cause predictable failures (rather than using ssh impurely).
f"ssh-ng://localhost?remote-program={nix.env.dirs.nix_bin_dir}/nix-daemon&remote-store=ssh-ng://localhost?remote-program=false",
"-j0",
]
)
.run()
.expect(1)
)
assert "stream ended unexpectedly" in result.stderr_plain
assert "Lix crashed" not in result.stderr_plain