at master 1.2 kB view raw
1{ pkgs, ... }: 2 3let 4 client = 5 { pkgs, ... }: 6 7 { 8 imports = [ ./common/x11.nix ]; 9 environment.systemPackages = [ pkgs.teeworlds ]; 10 }; 11 12in 13{ 14 name = "teeworlds"; 15 meta = with pkgs.lib.maintainers; { 16 maintainers = [ hax404 ]; 17 }; 18 19 nodes = { 20 server = { 21 services.teeworlds = { 22 enable = true; 23 openPorts = true; 24 }; 25 }; 26 27 client1 = client; 28 client2 = client; 29 }; 30 31 testScript = '' 32 start_all() 33 34 server.wait_for_unit("teeworlds.service") 35 server.wait_until_succeeds("ss --numeric --udp --listening | grep -q 8303") 36 37 client1.wait_for_x() 38 client2.wait_for_x() 39 40 client1.execute("teeworlds 'player_name Alice;connect server' >&2 &") 41 server.wait_until_succeeds( 42 'journalctl -u teeworlds -e | grep --extended-regexp -q "team_join player=\'[0-9]:Alice"' 43 ) 44 45 client2.execute("teeworlds 'player_name Bob;connect server' >&2 &") 46 server.wait_until_succeeds( 47 'journalctl -u teeworlds -e | grep --extended-regexp -q "team_join player=\'[0-9]:Bob"' 48 ) 49 50 server.sleep(10) # wait for a while to get a nice screenshot 51 52 client1.screenshot("screen_client1") 53 client2.screenshot("screen_client2") 54 ''; 55 56}