Files
nixpkgs/nixos/tests/systemd-initrd-vconsole.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

51 lines
1.3 KiB
Nix

{ lib, pkgs, ... }:
{
name = "systemd-initrd-vconsole";
nodes.machine =
{ pkgs, ... }:
{
boot.kernelParams = lib.mkAfter [
"rd.systemd.unit=rescue.target"
"loglevel=3"
"udev.log_level=3"
"systemd.log_level=warning"
];
boot.initrd.systemd = {
enable = true;
emergencyAccess = true;
};
console = {
earlySetup = true;
keyMap = "colemak";
};
};
testScript = ''
# Boot into rescue shell in initrd
machine.start()
machine.wait_for_console_text("Press Enter for maintenance")
machine.send_console("\n")
# Wait for shell to become ready
for _ in range(300):
machine.send_console("printf '%s to receive commands:\\n' Ready\n")
try:
machine.wait_for_console_text("Ready to receive commands:", timeout=1)
break
except Exception:
continue
else:
raise RuntimeError("Rescue shell never became ready")
# Check keymap
machine.send_console("(printf '%s to receive text:\\n' Ready && read text && echo \"$text\") </dev/tty1\n")
machine.wait_for_console_text("Ready to receive text:")
for key in "asdfjkl;\n":
machine.send_key(key)
machine.wait_for_console_text("arstneio")
'';
}