summary refs log tree commit diff
path: root/nixos/tests/sddm.nix
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@mailbox.org>2017-03-24 10:38:16 -0500
committerThomas Tuegel <ttuegel@mailbox.org>2017-03-24 10:39:13 -0500
commit352e335f3d643b84f34d5c102a4828712924a267 (patch)
treef7dd2cf225aa2416a01668d1e8f182257c56865f /nixos/tests/sddm.nix
parent5dbbb60d4f11406467d2c3655c4fb35c951ee656 (diff)
downloadnixpkgs-352e335f3d643b84f34d5c102a4828712924a267.tar
nixpkgs-352e335f3d643b84f34d5c102a4828712924a267.tar.gz
nixpkgs-352e335f3d643b84f34d5c102a4828712924a267.tar.bz2
nixpkgs-352e335f3d643b84f34d5c102a4828712924a267.tar.lz
nixpkgs-352e335f3d643b84f34d5c102a4828712924a267.tar.xz
nixpkgs-352e335f3d643b84f34d5c102a4828712924a267.tar.zst
nixpkgs-352e335f3d643b84f34d5c102a4828712924a267.zip
nixos/sddm: test automatic and manual login
Diffstat (limited to 'nixos/tests/sddm.nix')
-rw-r--r--nixos/tests/sddm.nix90
1 files changed, 65 insertions, 25 deletions
diff --git a/nixos/tests/sddm.nix b/nixos/tests/sddm.nix
index a1bd8f14d23..82be9bc1d72 100644
--- a/nixos/tests/sddm.nix
+++ b/nixos/tests/sddm.nix
@@ -1,26 +1,66 @@
-import ./make-test.nix ({ pkgs, ...} : {
-  name = "sddm";
-
-  machine = { lib, ... }: {
-    imports = [ ./common/user-account.nix ];
-    services.xserver.enable = true;
-    services.xserver.displayManager.sddm.enable = true;
-    services.xserver.windowManager.default = "icewm";
-    services.xserver.windowManager.icewm.enable = true;
-    services.xserver.desktopManager.default = "none";
-  };
+{ system ? builtins.currentSystem }:
+
+with import ../lib/testing.nix { inherit system; };
+
+let
+  inherit (pkgs) lib;
+
+  tests = {
+    default = {
+      name = "sddm";
+
+      machine = { lib, ... }: {
+        imports = [ ./common/user-account.nix ];
+        services.xserver.enable = true;
+        services.xserver.displayManager.sddm.enable = true;
+        services.xserver.windowManager.default = "icewm";
+        services.xserver.windowManager.icewm.enable = true;
+        services.xserver.desktopManager.default = "none";
+      };
 
-  enableOCR = true;
-
-  testScript = { nodes, ... }: let
-    user = nodes.machine.config.users.extraUsers.alice;
-  in ''
-    startAll;
-    $machine->waitForText(qr/ALICE/);
-    $machine->screenshot("sddm");
-    $machine->sendChars("${user.password}\n");
-    $machine->waitForFile("/home/alice/.Xauthority");
-    $machine->succeed("xauth merge ~alice/.Xauthority");
-    $machine->waitForWindow("^IceWM ");
-  '';
-})
+      enableOCR = true;
+
+      testScript = { nodes, ... }: let
+        user = nodes.machine.config.users.extraUsers.alice;
+      in ''
+        startAll;
+        $machine->waitForText(qr/ALICE/);
+        $machine->screenshot("sddm");
+        $machine->sendChars("${user.password}\n");
+        $machine->waitForFile("/home/alice/.Xauthority");
+        $machine->succeed("xauth merge ~alice/.Xauthority");
+        $machine->waitForWindow("^IceWM ");
+      '';
+    };
+
+    autoLogin = {
+      name = "sddm-autologin";
+      meta = with pkgs.stdenv.lib.maintainers; {
+        maintainers = [ ttuegel ];
+      };
+
+      machine = { lib, ... }: {
+        imports = [ ./common/user-account.nix ];
+        services.xserver.enable = true;
+        services.xserver.displayManager.sddm = {
+          enable = true;
+          autoLogin = {
+            enable = true;
+            user = "alice";
+          };
+        };
+        services.xserver.windowManager.default = "icewm";
+        services.xserver.windowManager.icewm.enable = true;
+        services.xserver.desktopManager.default = "none";
+      };
+
+      testScript = { nodes, ... }: ''
+        startAll;
+        $machine->waitForFile("/home/alice/.Xauthority");
+        $machine->succeed("xauth merge ~alice/.Xauthority");
+        $machine->waitForWindow("^IceWM ");
+      '';
+    };
+  };
+in
+  lib.mapAttrs (lib.const makeTest) tests