diff options
Diffstat (limited to 'nixpkgs/nixos/tests/redis.nix')
-rw-r--r-- | nixpkgs/nixos/tests/redis.nix | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/nixpkgs/nixos/tests/redis.nix b/nixpkgs/nixos/tests/redis.nix new file mode 100644 index 000000000000..94b50d07be6d --- /dev/null +++ b/nixpkgs/nixos/tests/redis.nix @@ -0,0 +1,44 @@ +import ./make-test-python.nix ({ pkgs, lib, ... }: +{ + name = "redis"; + meta.maintainers = with lib.maintainers; [ flokli ]; + + nodes = { + machine = + { pkgs, lib, ... }: + + { + services.redis.servers."".enable = true; + services.redis.servers."test".enable = true; + + users.users = lib.listToAttrs (map (suffix: lib.nameValuePair "member${suffix}" { + createHome = false; + description = "A member of the redis${suffix} group"; + isNormalUser = true; + extraGroups = [ "redis${suffix}" ]; + }) ["" "-test"]); + }; + }; + + testScript = { nodes, ... }: let + inherit (nodes.machine.config.services) redis; + in '' + start_all() + machine.wait_for_unit("redis") + machine.wait_for_unit("redis-test") + + # The unnamed Redis server still opens a port for backward-compatibility + machine.wait_for_open_port(6379) + + machine.wait_for_file("${redis.servers."".unixSocket}") + machine.wait_for_file("${redis.servers."test".unixSocket}") + + # The unix socket is accessible to the redis group + machine.succeed('su member -c "redis-cli ping | grep PONG"') + machine.succeed('su member-test -c "redis-cli ping | grep PONG"') + + machine.succeed("redis-cli ping | grep PONG") + machine.succeed("redis-cli -s ${redis.servers."".unixSocket} ping | grep PONG") + machine.succeed("redis-cli -s ${redis.servers."test".unixSocket} ping | grep PONG") + ''; +}) |