1import ./make-test-python.nix (
2 { pkgs, ... }:
3
4 {
5 name = "retroarch";
6 meta = with pkgs.lib; {
7 maintainers = teams.libretro.members ++ [ maintainers.j0hax ];
8 };
9
10 nodes.machine =
11 { ... }:
12
13 {
14 imports = [ ./common/user-account.nix ];
15 services.xserver.enable = true;
16 services.xserver.desktopManager.retroarch = {
17 enable = true;
18 package = pkgs.retroarch-bare;
19 };
20 services.xserver.displayManager = {
21 sddm.enable = true;
22 defaultSession = "RetroArch";
23 autoLogin = {
24 enable = true;
25 user = "alice";
26 };
27 };
28 };
29
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_*")
41
42 with subtest("Check RetroArch started"):
43 machine.wait_until_succeeds("pgrep retroarch")
44 machine.wait_for_window("^RetroArch")
45
46 with subtest("Check configuration created"):
47 machine.wait_for_file("${user.home}/.config/retroarch/retroarch.cfg")
48
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 }
56)