at 23.11-beta 2.5 kB view raw
1import ./make-test-python.nix ({ pkgs, lib, ... }: { 2 name = "budgie"; 3 4 meta.maintainers = [ lib.maintainers.federicoschonborn ]; 5 6 nodes.machine = { ... }: { 7 imports = [ 8 ./common/user-account.nix 9 ]; 10 11 services.xserver.enable = true; 12 13 services.xserver.displayManager = { 14 lightdm.enable = true; 15 autoLogin = { 16 enable = true; 17 user = "alice"; 18 }; 19 }; 20 21 services.xserver.desktopManager.budgie = { 22 enable = true; 23 extraPlugins = [ 24 pkgs.budgiePlugins.budgie-analogue-clock-applet 25 ]; 26 }; 27 }; 28 29 testScript = { nodes, ... }: 30 let 31 user = nodes.machine.users.users.alice; 32 in 33 '' 34 with subtest("Wait for login"): 35 # wait_for_x() checks graphical-session.target, which is expected to be 36 # inactive on Budgie before #228946 (i.e. systemd managed gnome-session) is 37 # done on upstream. 38 # https://github.com/BuddiesOfBudgie/budgie-desktop/blob/v10.7.2/src/session/budgie-desktop.in#L16 39 # 40 # Previously this was unconditionally touched by xsessionWrapper but was 41 # changed in #233981 (we have Budgie:GNOME in XDG_CURRENT_DESKTOP). 42 # machine.wait_for_x() 43 machine.wait_until_succeeds('journalctl -t gnome-session-binary --grep "Entering running state"') 44 machine.wait_for_file("${user.home}/.Xauthority") 45 machine.succeed("xauth merge ${user.home}/.Xauthority") 46 47 with subtest("Check that logging in has given the user ownership of devices"): 48 machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}") 49 50 with subtest("Check if Budgie session components actually start"): 51 machine.wait_until_succeeds("pgrep budgie-daemon") 52 machine.wait_for_window("budgie-daemon") 53 machine.wait_until_succeeds("pgrep budgie-panel") 54 machine.wait_for_window("budgie-panel") 55 # We don't check xwininfo for this one. 56 # See https://github.com/NixOS/nixpkgs/pull/216737#discussion_r1155312754 57 machine.wait_until_succeeds("pgrep budgie-wm") 58 59 with subtest("Open MATE terminal"): 60 machine.succeed("su - ${user.name} -c 'DISPLAY=:0 mate-terminal >&2 &'") 61 machine.wait_for_window("Terminal") 62 63 with subtest("Check if budgie-wm has ever coredumped"): 64 machine.fail("coredumpctl --json=short | grep budgie-wm") 65 machine.sleep(20) 66 machine.screenshot("screen") 67 ''; 68})