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