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