diff options
author | Johannes Arnold <johannes.arnold@stud.uni-hannover.de> | 2022-02-05 00:50:11 +0100 |
---|---|---|
committer | Johannes Arnold <johannes.arnold@stud.uni-hannover.de> | 2022-02-08 20:52:02 +0100 |
commit | d282f448ff74243ed1a1661c09ae27f010096cef (patch) | |
tree | f817903fc1c2e8501975d54eb98956468a0f663d /nixos/tests | |
parent | f80278219f00b38762847049f6d482898051c2ca (diff) | |
download | nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.tar nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.tar.gz nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.tar.bz2 nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.tar.lz nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.tar.xz nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.tar.zst nixpkgs-d282f448ff74243ed1a1661c09ae27f010096cef.zip |
nixos/retroarch: add RetroArch as a desktop session
Diffstat (limited to 'nixos/tests')
-rw-r--r-- | nixos/tests/all-tests.nix | 1 | ||||
-rw-r--r-- | nixos/tests/retroarch.nix | 49 |
2 files changed, 50 insertions, 0 deletions
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index e49d7e9ab37..9340bf3af17 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -439,6 +439,7 @@ in resolv = handleTest ./resolv.nix {}; restartByActivationScript = handleTest ./restart-by-activation-script.nix {}; restic = handleTest ./restic.nix {}; + retroarch = handleTest ./retroarch.nix {}; riak = handleTest ./riak.nix {}; robustirc-bridge = handleTest ./robustirc-bridge.nix {}; roundcube = handleTest ./roundcube.nix {}; diff --git a/nixos/tests/retroarch.nix b/nixos/tests/retroarch.nix new file mode 100644 index 00000000000..4c96f9eabc8 --- /dev/null +++ b/nixos/tests/retroarch.nix @@ -0,0 +1,49 @@ +import ./make-test-python.nix ({ pkgs, ... }: + + { + name = "retroarch"; + meta = with pkgs.lib.maintainers; { maintainers = [ j0hax ]; }; + + machine = { ... }: + + { + imports = [ ./common/user-account.nix ]; + services.xserver.enable = true; + services.xserver.desktopManager.retroarch = { + enable = true; + package = pkgs.retroarchFull; + }; + services.xserver.displayManager = { + sddm.enable = true; + defaultSession = "RetroArch"; + autoLogin = { + enable = true; + user = "alice"; + }; + }; + }; + + testScript = { nodes, ... }: + let + user = nodes.machine.config.users.users.alice; + xdo = "${pkgs.xdotool}/bin/xdotool"; + in '' + with subtest("Wait for login"): + start_all() + machine.wait_for_file("${user.home}/.Xauthority") + machine.succeed("xauth merge ${user.home}/.Xauthority") + + with subtest("Check RetroArch started"): + machine.wait_until_succeeds("pgrep retroarch") + machine.wait_for_window("^RetroArch ") + + with subtest("Check configuration created"): + machine.wait_for_file("${user.home}/.config/retroarch/retroarch.cfg") + + with subtest("Wait to get a screenshot"): + machine.execute( + "${xdo} key Alt+F1 sleep 10" + ) + machine.screenshot("screen") + ''; + }) |