notes: 2.3.0 -> 2.3.1 (#352950)
[NixPkgs.git] / nixos / tests / minecraft-server.nix
blob6e733bb96c1c55a62498f352e1b60f3d7084343a
1 let
2   seed = "2151901553968352745";
3   rcon-pass = "foobar";
4   rcon-port = 43000;
5 in import ./make-test-python.nix ({ pkgs, ... }: {
6   name = "minecraft-server";
7   meta = with pkgs.lib.maintainers; { maintainers = [ nequissimus ]; };
9   nodes.server = { ... }: {
10     environment.systemPackages = [ pkgs.mcrcon ];
12     nixpkgs.config.allowUnfree = true;
14     services.minecraft-server = {
15       declarative = true;
16       enable = true;
17       eula = true;
18       serverProperties = {
19         enable-rcon = true;
20         level-seed = seed;
21         level-type = "flat";
22         generate-structures = false;
23         online-mode = false;
24         "rcon.password" = rcon-pass;
25         "rcon.port" = rcon-port;
26       };
27     };
29     virtualisation.memorySize = 2047;
30   };
32   testScript = ''
33     server.wait_for_unit("minecraft-server")
34     server.wait_for_open_port(${toString rcon-port})
35     assert "${seed}" in server.succeed(
36         "mcrcon -H localhost -P ${toString rcon-port} -p '${rcon-pass}' -c 'seed'"
37     )
38     server.succeed("systemctl stop minecraft-server")
39   '';