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