nixos/test-driver: replace termlib with socat

telnetlib does not handle unicode, which is annoying when using systemctl.
Also this gives us a nice readline with history.
This commit is contained in:
Jörg Thalheim 2021-06-22 08:51:39 +02:00
parent a95eebd1cd
commit 48aec70ea1
No known key found for this signature in database
GPG key ID: B3F5D81B0C6967C4
2 changed files with 5 additions and 4 deletions

View file

@ -462,9 +462,10 @@ class Machine:
Should only be used during test development, not in the production test."""
self.connect()
self.log("Terminal is ready (there is no prompt):")
telnet = telnetlib.Telnet()
telnet.sock = self.shell # type: ignore
telnet.interact()
subprocess.run(
["socat", "READLINE", f"FD:{self.shell.fileno()}"],
pass_fds=[self.shell.fileno()],
)
def succeed(self, *commands: str) -> str:
"""Execute each command and check that it succeeds."""

View file

@ -64,7 +64,7 @@ rec {
wrapProgram $out/bin/nixos-test-driver \
--argv0 ${name} \
--prefix PATH : "${lib.makeBinPath [ qemu_pkg vde2 netpbm coreutils ]}" \
--prefix PATH : "${lib.makeBinPath [ qemu_pkg vde2 netpbm coreutils socat ]}" \
${lib.optionalString enableOCR
"--prefix PATH : '${ocrProg}/bin:${imagemagick_tiff}/bin'"} \