jetbrains: 2024.1 -> 2024.2.7 (#351041)
[NixPkgs.git] / nixos / tests / retroarch.nix
blob0e5f60aa8be2821615f3876bb0ce9f84364e0b71
1 import ./make-test-python.nix ({ pkgs, ... }:
3   {
4     name = "retroarch";
5     meta = with pkgs.lib; { maintainers = teams.libretro.members ++ [ maintainers.j0hax ]; };
7     nodes.machine = { ... }:
9       {
10         imports = [ ./common/user-account.nix ];
11         services.xserver.enable = true;
12         services.xserver.desktopManager.retroarch = {
13           enable = true;
14           package = pkgs.retroarchBare;
15         };
16         services.xserver.displayManager = {
17           sddm.enable = true;
18           defaultSession = "RetroArch";
19           autoLogin = {
20             enable = true;
21             user = "alice";
22           };
23         };
24       };
26     testScript = { nodes, ... }:
27       let
28         user = nodes.machine.config.users.users.alice;
29         xdo = "${pkgs.xdotool}/bin/xdotool";
30       in ''
31         with subtest("Wait for login"):
32             start_all()
33             machine.wait_for_file("/tmp/xauth_*")
34             machine.succeed("xauth merge /tmp/xauth_*")
36         with subtest("Check RetroArch started"):
37             machine.wait_until_succeeds("pgrep retroarch")
38             machine.wait_for_window("^RetroArch ")
40         with subtest("Check configuration created"):
41             machine.wait_for_file("${user.home}/.config/retroarch/retroarch.cfg")
43         with subtest("Wait to get a screenshot"):
44             machine.execute(
45                 "${xdo} key Alt+F1 sleep 10"
46             )
47             machine.screenshot("screen")
48       '';
49   })