1import ./make-test-python.nix (
2 { pkgs, lib, ... }:
3 {
4 name = "deepin";
5
6 meta.maintainers = lib.teams.deepin.members;
7
8 nodes.machine =
9 { ... }:
10 {
11 imports = [
12 ./common/user-account.nix
13 ];
14
15 virtualisation.memorySize = 2048;
16
17 services.xserver.enable = true;
18
19 services.xserver.displayManager = {
20 lightdm.enable = true;
21 autoLogin = {
22 enable = true;
23 user = "alice";
24 };
25 };
26
27 services.xserver.desktopManager.deepin.enable = true;
28 };
29
30 testScript =
31 { nodes, ... }:
32 let
33 user = nodes.machine.users.users.alice;
34 in
35 ''
36 with subtest("Wait for login"):
37 machine.wait_for_x()
38 machine.wait_for_file("${user.home}/.Xauthority")
39 machine.succeed("xauth merge ${user.home}/.Xauthority")
40
41 with subtest("Check that logging in has given the user ownership of devices"):
42 machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
43
44 with subtest("Check if Deepin session components actually start"):
45 machine.wait_until_succeeds("pgrep -f dde-session-daemon")
46 machine.wait_for_window("dde-session-daemon")
47 machine.wait_until_succeeds("pgrep -f dde-desktop")
48 machine.wait_for_window("dde-desktop")
49
50 with subtest("Open deepin-terminal"):
51 machine.succeed("su - ${user.name} -c 'DISPLAY=:0 deepin-terminal >&2 &'")
52 machine.wait_for_window("deepin-terminal")
53 machine.sleep(20)
54 machine.screenshot("screen")
55 '';
56 }
57)