at 25.11-pre 1.8 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, ... }: 3 4 let 5 client = 6 { pkgs, ... }: 7 8 { 9 imports = [ ./common/x11.nix ]; 10 hardware.graphics.enable = true; 11 environment.systemPackages = [ pkgs.openarena ]; 12 }; 13 14 in 15 { 16 name = "openarena"; 17 meta = with pkgs.lib.maintainers; { 18 maintainers = [ fpletz ]; 19 }; 20 21 nodes = { 22 server = { 23 services.openarena = { 24 enable = true; 25 extraFlags = [ 26 "+set g_gametype 0" 27 "+map oa_dm7" 28 "+addbot Angelyss" 29 "+addbot Arachna" 30 ]; 31 openPorts = true; 32 }; 33 }; 34 35 client1 = client; 36 client2 = client; 37 }; 38 39 testScript = '' 40 start_all() 41 42 server.wait_for_unit("openarena") 43 server.wait_until_succeeds("ss --numeric --udp --listening | grep -q 27960") 44 45 client1.wait_for_x() 46 client2.wait_for_x() 47 48 client1.execute("openarena +set r_fullscreen 0 +set name Foo +connect server >&2 &") 49 client2.execute("openarena +set r_fullscreen 0 +set name Bar +connect server >&2 &") 50 51 server.wait_until_succeeds( 52 "journalctl -u openarena -e | grep -q 'Foo.*entered the game'" 53 ) 54 server.wait_until_succeeds( 55 "journalctl -u openarena -e | grep -q 'Bar.*entered the game'" 56 ) 57 58 server.sleep(10) # wait for a while to get a nice screenshot 59 60 client1.screenshot("screen_client1_1") 61 client2.screenshot("screen_client2_1") 62 63 client1.block() 64 65 server.sleep(10) 66 67 client1.screenshot("screen_client1_2") 68 client2.screenshot("screen_client2_2") 69 70 client1.unblock() 71 72 server.sleep(10) 73 74 client1.screenshot("screen_client1_3") 75 client2.screenshot("screen_client2_3") 76 ''; 77 78 } 79)