1{ runTest }:
2{
3 default = runTest {
4 name = "sddm";
5
6 nodes.machine = {
7 imports = [ ./common/user-account.nix ];
8 services.xserver.enable = true;
9 services.displayManager.sddm.enable = true;
10 services.displayManager.defaultSession = "none+icewm";
11 services.xserver.windowManager.icewm.enable = true;
12 };
13
14 enableOCR = true;
15
16 testScript =
17 { nodes, ... }:
18 let
19 user = nodes.machine.users.users.alice;
20 in
21 ''
22 start_all()
23 machine.wait_for_text("(?i)select your user")
24 machine.screenshot("sddm")
25 machine.send_chars("${user.password}\n")
26 machine.wait_for_file("/tmp/xauth_*")
27 machine.wait_until_succeeds("test -s /tmp/xauth_*")
28 machine.succeed("xauth merge /tmp/xauth_*")
29 machine.wait_for_window("^IceWM ")
30 '';
31 };
32
33 autoLogin = runTest (
34 { lib, ... }:
35 {
36 name = "sddm-autologin";
37 meta = with lib.maintainers; {
38 maintainers = [ ttuegel ];
39 };
40
41 nodes.machine = {
42 imports = [ ./common/user-account.nix ];
43 services.xserver.enable = true;
44 services.displayManager = {
45 sddm.enable = true;
46 autoLogin = {
47 enable = true;
48 user = "alice";
49 };
50 };
51 services.displayManager.defaultSession = "none+icewm";
52 services.xserver.windowManager.icewm.enable = true;
53 };
54
55 testScript = ''
56 start_all()
57 machine.wait_for_file("/tmp/xauth_*")
58 machine.wait_until_succeeds("test -s /tmp/xauth_*")
59 machine.succeed("xauth merge /tmp/xauth_*")
60 machine.wait_for_window("^IceWM ")
61 '';
62 }
63 );
64}