Merge branch 'staging-next' into staging
[NixPkgs.git] / nixos / tests / teeworlds.nix
blobac2c996955c800d40206c9f05f55180b551af429
1 import ./make-test-python.nix ({ pkgs, ... }:
3 let
4   client =
5     { pkgs, ... }:
7     { imports = [ ./common/x11.nix ];
8       environment.systemPackages = [ pkgs.teeworlds ];
9     };
11 in {
12   name = "teeworlds";
13   meta = with pkgs.lib.maintainers; {
14     maintainers = [ hax404 ];
15   };
17   nodes =
18     { server =
19       { services.teeworlds = {
20           enable = true;
21           openPorts = true;
22         };
23       };
25       client1 = client;
26       client2 = client;
27     };
29     testScript =
30     ''
31       start_all()
33       server.wait_for_unit("teeworlds.service")
34       server.wait_until_succeeds("ss --numeric --udp --listening | grep -q 8303")
36       client1.wait_for_x()
37       client2.wait_for_x()
39       client1.execute("teeworlds 'player_name Alice;connect server' >&2 &")
40       server.wait_until_succeeds(
41           'journalctl -u teeworlds -e | grep --extended-regexp -q "team_join player=\'[0-9]:Alice"'
42       )
44       client2.execute("teeworlds 'player_name Bob;connect server' >&2 &")
45       server.wait_until_succeeds(
46           'journalctl -u teeworlds -e | grep --extended-regexp -q "team_join player=\'[0-9]:Bob"'
47       )
49       server.sleep(10)  # wait for a while to get a nice screenshot
51       client1.screenshot("screen_client1")
52       client2.screenshot("screen_client2")
53     '';