Release NixOS 23.11
[NixPkgs.git] / nixos / tests / redis.nix
blob94b50d07be6dc3352e33bcec8775b2241b1a062c
1 import ./make-test-python.nix ({ pkgs, lib, ... }:
3   name = "redis";
4   meta.maintainers = with lib.maintainers; [ flokli ];
6   nodes = {
7     machine =
8       { pkgs, lib, ... }:
10       {
11         services.redis.servers."".enable = true;
12         services.redis.servers."test".enable = true;
14         users.users = lib.listToAttrs (map (suffix: lib.nameValuePair "member${suffix}" {
15           createHome = false;
16           description = "A member of the redis${suffix} group";
17           isNormalUser = true;
18           extraGroups = [ "redis${suffix}" ];
19         }) ["" "-test"]);
20       };
21   };
23   testScript = { nodes, ... }: let
24     inherit (nodes.machine.config.services) redis;
25     in ''
26     start_all()
27     machine.wait_for_unit("redis")
28     machine.wait_for_unit("redis-test")
30     # The unnamed Redis server still opens a port for backward-compatibility
31     machine.wait_for_open_port(6379)
33     machine.wait_for_file("${redis.servers."".unixSocket}")
34     machine.wait_for_file("${redis.servers."test".unixSocket}")
36     # The unix socket is accessible to the redis group
37     machine.succeed('su member -c "redis-cli ping | grep PONG"')
38     machine.succeed('su member-test -c "redis-cli ping | grep PONG"')
40     machine.succeed("redis-cli ping | grep PONG")
41     machine.succeed("redis-cli -s ${redis.servers."".unixSocket} ping | grep PONG")
42     machine.succeed("redis-cli -s ${redis.servers."test".unixSocket} ping | grep PONG")
43   '';