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