aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/tests/teeworlds.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/tests/teeworlds.nix')
-rw-r--r--nixpkgs/nixos/tests/teeworlds.nix55
1 files changed, 55 insertions, 0 deletions
diff --git a/nixpkgs/nixos/tests/teeworlds.nix b/nixpkgs/nixos/tests/teeworlds.nix
new file mode 100644
index 00000000000..edf58896878
--- /dev/null
+++ b/nixpkgs/nixos/tests/teeworlds.nix
@@ -0,0 +1,55 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+let
+ client =
+ { pkgs, ... }:
+
+ { imports = [ ./common/x11.nix ];
+ environment.systemPackages = [ pkgs.teeworlds ];
+ };
+
+in {
+ name = "teeworlds";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ hax404 ];
+ };
+
+ nodes =
+ { server =
+ { services.teeworlds = {
+ enable = true;
+ openPorts = true;
+ };
+ };
+
+ client1 = client;
+ client2 = client;
+ };
+
+ testScript =
+ ''
+ start_all()
+
+ server.wait_for_unit("teeworlds.service")
+ server.wait_until_succeeds("ss --numeric --udp --listening | grep -q 8303")
+
+ client1.wait_for_x()
+ client2.wait_for_x()
+
+ client1.execute("teeworlds 'player_name Alice;connect server'&")
+ server.wait_until_succeeds(
+ 'journalctl -u teeworlds -e | grep --extended-regexp -q "team_join player=\'[0-9]:Alice"'
+ )
+
+ client2.execute("teeworlds 'player_name Bob;connect server'&")
+ server.wait_until_succeeds(
+ 'journalctl -u teeworlds -e | grep --extended-regexp -q "team_join player=\'[0-9]:Bob"'
+ )
+
+ server.sleep(10) # wait for a while to get a nice screenshot
+
+ client1.screenshot("screen_client1")
+ client2.screenshot("screen_client2")
+ '';
+
+})