1import ./make-test.nix ({ pkgs, ...} : {
2 name = "gnome3-gdm";
3 meta = with pkgs.stdenv.lib.maintainers; {
4 maintainers = [ lethalman ];
5 };
6
7 machine =
8 { ... }:
9
10 { imports = [ ./common/user-account.nix ];
11
12 services.xserver.enable = true;
13
14 services.xserver.displayManager.gdm = {
15 enable = true;
16 autoLogin = {
17 enable = true;
18 user = "alice";
19 };
20 };
21 services.xserver.desktopManager.gnome3.enable = true;
22
23 virtualisation.memorySize = 1024;
24 };
25
26 testScript =
27 ''
28 # wait for gdm to start and bring up X
29 $machine->waitForUnit("display-manager.service");
30 $machine->waitForX;
31
32 # wait for alice to be logged in
33 $machine->waitForUnit("default.target","alice");
34
35 # Check that logging in has given the user ownership of devices.
36 $machine->succeed("getfacl /dev/snd/timer | grep -q alice");
37
38 # open a terminal and check it's there
39 $machine->succeed("su - alice -c 'DISPLAY=:0.0 XAUTHORITY=/run/user/\$UID/gdm/Xauthority gnome-terminal'");
40 $machine->succeed("xauth merge /run/user/1000/gdm/Xauthority");
41 $machine->waitForWindow(qr/Terminal/);
42
43 # wait to get a nice screenshot
44 $machine->sleep(20);
45 $machine->screenshot("screen");
46 '';
47})