at 25.11-pre 3.0 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, lib, ... }: 3 4 { 5 name = "lxqt"; 6 7 meta.maintainers = lib.teams.lxqt.members ++ [ lib.maintainers.bobby285271 ]; 8 9 nodes.machine = 10 { ... }: 11 12 { 13 imports = [ ./common/user-account.nix ]; 14 15 services.xserver.enable = true; 16 services.xserver.desktopManager.lxqt.enable = true; 17 18 services.displayManager = { 19 sddm.enable = true; 20 defaultSession = "lxqt"; 21 autoLogin = { 22 enable = true; 23 user = "alice"; 24 }; 25 }; 26 }; 27 28 enableOCR = true; 29 30 testScript = 31 { nodes, ... }: 32 let 33 user = nodes.machine.users.users.alice; 34 in 35 '' 36 machine.wait_for_unit("display-manager.service") 37 38 with subtest("Wait for login"): 39 machine.wait_for_x() 40 machine.wait_for_file("/tmp/xauth_*") 41 machine.succeed("xauth merge /tmp/xauth_*") 42 machine.succeed("su - ${user.name} -c 'xauth merge /tmp/xauth_*'") 43 44 with subtest("Check that logging in has given the user ownership of devices"): 45 machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}") 46 47 with subtest("Check if LXQt components actually start"): 48 for i in ["openbox", "lxqt-session", "pcmanfm-qt", "lxqt-panel", "lxqt-runner"]: 49 machine.wait_until_succeeds(f"pgrep {i}") 50 machine.wait_for_window("pcmanfm-desktop0") 51 machine.wait_for_window("lxqt-panel") 52 machine.wait_for_text("(Computer|Network|Trash)") 53 54 with subtest("Open QTerminal"): 55 machine.succeed("su - ${user.name} -c 'DISPLAY=:0 qterminal >&2 &'") 56 machine.wait_until_succeeds("pgrep qterminal") 57 machine.wait_for_window("${user.name}@machine: ~") 58 59 with subtest("Open PCManFM-Qt"): 60 machine.succeed("mkdir -p /tmp/test/test") 61 machine.succeed("su - ${user.name} -c 'DISPLAY=:0 QT_SCALE_FACTOR=2 pcmanfm-qt /tmp/test >&2 &'") 62 machine.wait_for_window("test") 63 machine.wait_for_text("(test|Bookmarks|Reload)") 64 65 with subtest("Check if various environment variables are set"): 66 cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf /run/current-system/sw/bin/lxqt-panel)/environ" 67 machine.succeed(f"{cmd} | grep 'XDG_CURRENT_DESKTOP=LXQt'") 68 machine.succeed(f"{cmd} | grep 'QT_PLATFORM_PLUGIN=lxqt'") 69 # From login shell. 70 machine.succeed(f"{cmd} | grep '__NIXOS_SET_ENVIRONMENT_DONE=1'") 71 # See the nixos/lxqt module. 72 machine.succeed(f"{cmd} | grep 'XDG_CONFIG_DIRS' | grep '${nodes.machine.system.path}'") 73 74 with subtest("Check if any coredumps are found"): 75 machine.succeed("(coredumpctl --json=short 2>&1 || true) | grep 'No coredumps found'") 76 machine.sleep(10) 77 machine.screenshot("screen") 78 ''; 79 } 80)