nixpkgs/nixos/tests/sddm.nix
K900 68c2b33ead nixos/tests: better handling of SDDM xauth files
Clearly, the sleep is not sleeping enough, so actually wait
for the cookie to be written (and hope that it doesn't get
split into multiple writes...)
2025-08-25 15:31:01 +03:00

65 lines
1.7 KiB
Nix

{ runTest }:
{
default = runTest {
name = "sddm";
nodes.machine = {
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.displayManager.sddm.enable = true;
services.displayManager.defaultSession = "none+icewm";
services.xserver.windowManager.icewm.enable = true;
};
enableOCR = true;
testScript =
{ nodes, ... }:
let
user = nodes.machine.users.users.alice;
in
''
start_all()
machine.wait_for_text("(?i)select your user")
machine.screenshot("sddm")
machine.send_chars("${user.password}\n")
machine.wait_for_file("/tmp/xauth_*")
machine.wait_until_succeeds("test -s /tmp/xauth_*")
machine.succeed("xauth merge /tmp/xauth_*")
machine.wait_for_window("^IceWM ")
'';
};
autoLogin = runTest (
{ lib, ... }:
{
name = "sddm-autologin";
meta = with lib.maintainers; {
maintainers = [ ttuegel ];
};
nodes.machine = {
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.displayManager = {
sddm.enable = true;
autoLogin = {
enable = true;
user = "alice";
};
};
services.displayManager.defaultSession = "none+icewm";
services.xserver.windowManager.icewm.enable = true;
};
testScript = ''
start_all()
machine.wait_for_file("/tmp/xauth_*")
machine.wait_until_succeeds("test -s /tmp/xauth_*")
machine.succeed("xauth merge /tmp/xauth_*")
machine.wait_for_window("^IceWM ")
'';
}
);
}