summary refs log tree commit diff
path: root/nixos/tests/rspamd.nix
diff options
context:
space:
mode:
authorBrian Olsen <brian@maven-group.org>2018-02-03 19:04:31 +0100
committerBrian Olsen <brian@maven-group.org>2018-02-09 06:19:03 +0100
commit908fc5e14b59650d7b1ea5a0f9e85351f79b2439 (patch)
tree87809967278e3200d93899bb68db4f86114634b6 /nixos/tests/rspamd.nix
parent27ee0b9099e8c27d3a09de3e8489bce43f8e7624 (diff)
downloadnixpkgs-908fc5e14b59650d7b1ea5a0f9e85351f79b2439.tar
nixpkgs-908fc5e14b59650d7b1ea5a0f9e85351f79b2439.tar.gz
nixpkgs-908fc5e14b59650d7b1ea5a0f9e85351f79b2439.tar.bz2
nixpkgs-908fc5e14b59650d7b1ea5a0f9e85351f79b2439.tar.lz
nixpkgs-908fc5e14b59650d7b1ea5a0f9e85351f79b2439.tar.xz
nixpkgs-908fc5e14b59650d7b1ea5a0f9e85351f79b2439.tar.zst
nixpkgs-908fc5e14b59650d7b1ea5a0f9e85351f79b2439.zip
nixos/rspamd: options for worker configuration and socket activation
Diffstat (limited to 'nixos/tests/rspamd.nix')
-rw-r--r--nixos/tests/rspamd.nix87
1 files changed, 82 insertions, 5 deletions
diff --git a/nixos/tests/rspamd.nix b/nixos/tests/rspamd.nix
index 35e534246b6..6b2e2dd3a53 100644
--- a/nixos/tests/rspamd.nix
+++ b/nixos/tests/rspamd.nix
@@ -13,11 +13,12 @@ let
     $machine->succeed("[[ \"\$(stat -c %G ${socket})\" == \"${group}\" ]]");
     $machine->succeed("[[ \"\$(stat -c %a ${socket})\" == \"${mode}\" ]]");
   '';
-  simple = name: enableIPv6: makeTest {
+  simple = name: socketActivation: enableIPv6: makeTest {
     name = "rspamd-${name}";
     machine = {
       services.rspamd = {
         enable = true;
+        socketActivation = socketActivation;
       };
       networking.enableIPv6 = enableIPv6;
     };
@@ -29,7 +30,15 @@ let
       $machine->succeed("id \"rspamd\" >/dev/null");
       ${checkSocket "/run/rspamd/rspamd.sock" "rspamd" "rspamd" "660" }
       sleep 10;
+      $machine->log($machine->succeed("cat /etc/rspamd.conf"));
       $machine->log($machine->succeed("systemctl cat rspamd.service"));
+      ${if socketActivation then ''
+        $machine->log($machine->succeed("systemctl cat rspamd-controller-1.socket"));
+        $machine->log($machine->succeed("systemctl cat rspamd-normal-1.socket"));
+      '' else ''
+        $machine->fail("systemctl cat rspamd-controller-1.socket");
+        $machine->fail("systemctl cat rspamd-normal-1.socket");
+      ''}
       $machine->log($machine->succeed("curl http://localhost:11334/auth"));
       $machine->log($machine->succeed("curl http://127.0.0.1:11334/auth"));
       ${optionalString enableIPv6 ''
@@ -39,10 +48,12 @@ let
   };
 in
 {
-  simple = simple "simple" true;
-  ipv4only = simple "ipv4only" false;
-  bindports = makeTest {
-    name = "rspamd-bindports";
+  simple = simple "simple" false true;
+  ipv4only = simple "ipv4only" false false;
+  simple-socketActivated = simple "simple-socketActivated" true true;
+  ipv4only-socketActivated = simple "ipv4only-socketActivated" true false;
+  deprecated = makeTest {
+    name = "rspamd-deprecated";
     machine = {
       services.rspamd = {
         enable = true;
@@ -56,6 +67,72 @@ in
       $machine->waitForFile("/run/rspamd.sock");
       ${checkSocket "/run/rspamd.sock" "root" "root" "600" }
       ${checkSocket "/run/rspamd-worker.sock" "root" "root" "666" }
+      $machine->log($machine->succeed("cat /etc/rspamd.conf"));
+      $machine->fail("systemctl cat rspamd-normal-1.socket");
+      $machine->log($machine->succeed("rspamc -h /run/rspamd-worker.sock stat"));
+      $machine->log($machine->succeed("curl --unix-socket /run/rspamd-worker.sock http://localhost/ping"));
+    '';
+  };
+
+  bindports = makeTest {
+    name = "rspamd-bindports";
+    machine = {
+      services.rspamd = {
+        enable = true;
+        socketActivation = false;
+        workers.normal.bindSockets = [{
+          socket = "/run/rspamd.sock";
+          mode = "0600";
+          owner = "root";
+          group = "root";
+        }];
+        workers.controller.bindSockets = [{
+          socket = "/run/rspamd-worker.sock";
+          mode = "0666";
+          owner = "root";
+          group = "root";
+        }];
+      };
+    };
+
+    testScript = ''
+      ${initMachine}
+      $machine->waitForFile("/run/rspamd.sock");
+      ${checkSocket "/run/rspamd.sock" "root" "root" "600" }
+      ${checkSocket "/run/rspamd-worker.sock" "root" "root" "666" }
+      $machine->log($machine->succeed("cat /etc/rspamd.conf"));
+      $machine->fail("systemctl cat rspamd-normal-1.socket");
+      $machine->log($machine->succeed("rspamc -h /run/rspamd-worker.sock stat"));
+      $machine->log($machine->succeed("curl --unix-socket /run/rspamd-worker.sock http://localhost/ping"));
+    '';
+  };
+  socketActivated = makeTest {
+    name = "rspamd-socketActivated";
+    machine = {
+      services.rspamd = {
+        enable = true;
+        workers.normal.bindSockets = [{
+          socket = "/run/rspamd.sock";
+          mode = "0600";
+          owner = "root";
+          group = "root";
+        }];
+        workers.controller.bindSockets = [{
+          socket = "/run/rspamd-worker.sock";
+          mode = "0666";
+          owner = "root";
+          group = "root";
+        }];
+      };
+    };
+
+    testScript = ''
+      startAll
+      $machine->waitForFile("/run/rspamd.sock");
+      ${checkSocket "/run/rspamd.sock" "root" "root" "600" }
+      ${checkSocket "/run/rspamd-worker.sock" "root" "root" "666" }
+      $machine->log($machine->succeed("cat /etc/rspamd.conf"));
+      $machine->log($machine->succeed("systemctl cat rspamd-normal-1.socket"));
       $machine->log($machine->succeed("rspamc -h /run/rspamd-worker.sock stat"));
       $machine->log($machine->succeed("curl --unix-socket /run/rspamd-worker.sock http://localhost/ping"));
     '';