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