nixos/sddm: test automatic and manual login

This commit is contained in:
Thomas Tuegel 2017-03-24 10:38:16 -05:00
parent 5dbbb60d4f
commit 352e335f3d
No known key found for this signature in database
GPG Key ID: 22CBF5249D4B4D59
3 changed files with 66 additions and 26 deletions

View File

@ -92,7 +92,7 @@ in rec {
(all nixos.tests.openssh) (all nixos.tests.openssh)
(all nixos.tests.printing) (all nixos.tests.printing)
(all nixos.tests.proxy) (all nixos.tests.proxy)
(all nixos.tests.sddm) (all nixos.tests.sddm.default)
(all nixos.tests.simple) (all nixos.tests.simple)
(all nixos.tests.udisks2) (all nixos.tests.udisks2)
(all nixos.tests.xfce) (all nixos.tests.xfce)

View File

@ -296,7 +296,7 @@ in rec {
tests.quake3 = callTest tests/quake3.nix {}; tests.quake3 = callTest tests/quake3.nix {};
tests.runInMachine = callTest tests/run-in-machine.nix {}; tests.runInMachine = callTest tests/run-in-machine.nix {};
tests.samba = callTest tests/samba.nix {}; tests.samba = callTest tests/samba.nix {};
tests.sddm = callTest tests/sddm.nix {}; tests.sddm = callSubTests tests/sddm.nix {};
tests.simple = callTest tests/simple.nix {}; tests.simple = callTest tests/simple.nix {};
tests.smokeping = callTest tests/smokeping.nix {}; tests.smokeping = callTest tests/smokeping.nix {};
tests.taskserver = callTest tests/taskserver.nix {}; tests.taskserver = callTest tests/taskserver.nix {};

View File

@ -1,26 +1,66 @@
import ./make-test.nix ({ pkgs, ...} : { { system ? builtins.currentSystem }:
name = "sddm";
machine = { lib, ... }: { with import ../lib/testing.nix { inherit system; };
imports = [ ./common/user-account.nix ];
services.xserver.enable = true; let
services.xserver.displayManager.sddm.enable = true; inherit (pkgs) lib;
services.xserver.windowManager.default = "icewm";
services.xserver.windowManager.icewm.enable = true; tests = {
services.xserver.desktopManager.default = "none"; 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 ");
'';
};
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
enableOCR = true; lib.mapAttrs (lib.const makeTest) tests
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 ");
'';
})