at master 1.8 kB view raw
1{ pkgs, lib, ... }: 2{ 3 name = "gnome-flashback"; 4 meta.maintainers = lib.teams.gnome.members ++ [ lib.maintainers.chpatrick ]; 5 6 nodes.machine = 7 { nodes, ... }: 8 let 9 user = nodes.machine.users.users.alice; 10 in 11 12 { 13 imports = [ ./common/user-account.nix ]; 14 15 services.xserver.enable = true; 16 17 services.displayManager.gdm = { 18 enable = true; 19 debug = true; 20 }; 21 22 services.displayManager.autoLogin = { 23 enable = true; 24 user = user.name; 25 }; 26 27 services.desktopManager.gnome.enable = true; 28 services.desktopManager.gnome.debug = true; 29 services.desktopManager.gnome.flashback.enableMetacity = true; 30 services.displayManager.defaultSession = "gnome-flashback-metacity"; 31 }; 32 33 testScript = 34 { nodes, ... }: 35 let 36 user = nodes.machine.users.users.alice; 37 uid = toString user.uid; 38 xauthority = "/run/user/${uid}/gdm/Xauthority"; 39 in 40 '' 41 with subtest("Login to GNOME Flashback with GDM"): 42 machine.wait_for_x() 43 machine.wait_until_succeeds('journalctl -t gnome-session-binary --grep "Entering running state"') 44 # Wait for alice to be logged in" 45 machine.wait_for_unit("default.target", "${user.name}") 46 machine.wait_for_file("${xauthority}") 47 machine.succeed("xauth merge ${xauthority}") 48 # Check that logging in has given the user ownership of devices 49 assert "alice" in machine.succeed("getfacl -p /dev/snd/timer") 50 51 with subtest("Wait for Metacity"): 52 machine.wait_until_succeeds("pgrep metacity") 53 54 with subtest("Regression test for #233920"): 55 machine.wait_until_succeeds("pgrep -fa gnome-flashback-media-keys") 56 machine.sleep(20) 57 machine.screenshot("screen") 58 ''; 59}