nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #75464 from mmilata/rspamd-python-test

nixosTests.rspamd: port to python

authored by

Maximilian Bosch and committed by
GitHub
f2915c16 33e87b06

+99 -60
+99 -60
nixos/tests/rspamd.nix
··· 3 3 pkgs ? import ../.. { inherit system config; } 4 4 }: 5 5 6 - with import ../lib/testing.nix { inherit system pkgs; }; 6 + with import ../lib/testing-python.nix { inherit system pkgs; }; 7 7 with pkgs.lib; 8 8 9 9 let 10 10 initMachine = '' 11 - startAll 12 - $machine->waitForUnit("rspamd.service"); 13 - $machine->succeed("id \"rspamd\" >/dev/null"); 11 + start_all() 12 + machine.wait_for_unit("rspamd.service") 13 + machine.succeed("id rspamd >/dev/null") 14 14 ''; 15 15 checkSocket = socket: user: group: mode: '' 16 - $machine->succeed("ls ${socket} >/dev/null"); 17 - $machine->succeed("[[ \"\$(stat -c %U ${socket})\" == \"${user}\" ]]"); 18 - $machine->succeed("[[ \"\$(stat -c %G ${socket})\" == \"${group}\" ]]"); 19 - $machine->succeed("[[ \"\$(stat -c %a ${socket})\" == \"${mode}\" ]]"); 16 + machine.succeed("ls ${socket} >/dev/null") 17 + machine.succeed('[[ "$(stat -c %U ${socket})" == "${user}" ]]') 18 + machine.succeed('[[ "$(stat -c %G ${socket})" == "${group}" ]]') 19 + machine.succeed('[[ "$(stat -c %a ${socket})" == "${mode}" ]]') 20 20 ''; 21 21 simple = name: enableIPv6: makeTest { 22 22 name = "rspamd-${name}"; ··· 25 25 networking.enableIPv6 = enableIPv6; 26 26 }; 27 27 testScript = '' 28 - startAll 29 - $machine->waitForUnit("multi-user.target"); 30 - $machine->waitForOpenPort(11334); 31 - $machine->waitForUnit("rspamd.service"); 32 - $machine->succeed("id \"rspamd\" >/dev/null"); 28 + start_all() 29 + machine.wait_for_unit("multi-user.target") 30 + machine.wait_for_open_port(11334) 31 + machine.wait_for_unit("rspamd.service") 32 + machine.succeed("id rspamd >/dev/null") 33 33 ${checkSocket "/run/rspamd/rspamd.sock" "rspamd" "rspamd" "660" } 34 - sleep 10; 35 - $machine->log($machine->succeed("cat /etc/rspamd/rspamd.conf")); 36 - $machine->log($machine->succeed("grep 'CONFDIR/worker-controller.inc' /etc/rspamd/rspamd.conf")); 37 - $machine->log($machine->succeed("grep 'CONFDIR/worker-normal.inc' /etc/rspamd/rspamd.conf")); 38 - $machine->log($machine->succeed("systemctl cat rspamd.service")); 39 - $machine->log($machine->succeed("curl http://localhost:11334/auth")); 40 - $machine->log($machine->succeed("curl http://127.0.0.1:11334/auth")); 41 - ${optionalString enableIPv6 '' 42 - $machine->log($machine->succeed("curl http://[::1]:11334/auth")); 43 - ''} 34 + machine.sleep(10) 35 + machine.log(machine.succeed("cat /etc/rspamd/rspamd.conf")) 36 + machine.log( 37 + machine.succeed("grep 'CONFDIR/worker-controller.inc' /etc/rspamd/rspamd.conf") 38 + ) 39 + machine.log(machine.succeed("grep 'CONFDIR/worker-normal.inc' /etc/rspamd/rspamd.conf")) 40 + machine.log(machine.succeed("systemctl cat rspamd.service")) 41 + machine.log(machine.succeed("curl http://localhost:11334/auth")) 42 + machine.log(machine.succeed("curl http://127.0.0.1:11334/auth")) 43 + ${optionalString enableIPv6 ''machine.log(machine.succeed("curl http://[::1]:11334/auth"))''} 44 + # would not reformat 44 45 ''; 45 46 }; 46 47 in ··· 70 69 71 70 testScript = '' 72 71 ${initMachine} 73 - $machine->waitForFile("/run/rspamd.sock"); 72 + machine.wait_for_file("/run/rspamd.sock") 74 73 ${checkSocket "/run/rspamd.sock" "root" "root" "600" } 75 74 ${checkSocket "/run/rspamd-worker.sock" "root" "root" "666" } 76 - $machine->log($machine->succeed("cat /etc/rspamd/rspamd.conf")); 77 - $machine->log($machine->succeed("grep 'CONFDIR/worker-controller.inc' /etc/rspamd/rspamd.conf")); 78 - $machine->log($machine->succeed("grep 'CONFDIR/worker-normal.inc' /etc/rspamd/rspamd.conf")); 79 - $machine->log($machine->succeed("rspamc -h /run/rspamd-worker.sock stat")); 80 - $machine->log($machine->succeed("curl --unix-socket /run/rspamd-worker.sock http://localhost/ping")); 75 + machine.log(machine.succeed("cat /etc/rspamd/rspamd.conf")) 76 + machine.log( 77 + machine.succeed("grep 'CONFDIR/worker-controller.inc' /etc/rspamd/rspamd.conf") 78 + ) 79 + machine.log(machine.succeed("grep 'CONFDIR/worker-normal.inc' /etc/rspamd/rspamd.conf")) 80 + machine.log(machine.succeed("rspamc -h /run/rspamd-worker.sock stat")) 81 + machine.log( 82 + machine.succeed("curl --unix-socket /run/rspamd-worker.sock http://localhost/ping") 83 + ) 81 84 ''; 82 85 }; 83 86 ··· 116 111 117 112 testScript = '' 118 113 ${initMachine} 119 - $machine->waitForFile("/run/rspamd.sock"); 114 + machine.wait_for_file("/run/rspamd.sock") 120 115 ${checkSocket "/run/rspamd.sock" "root" "root" "600" } 121 116 ${checkSocket "/run/rspamd-worker.sock" "root" "root" "666" } 122 - $machine->log($machine->succeed("cat /etc/rspamd/rspamd.conf")); 123 - $machine->log($machine->succeed("grep 'CONFDIR/worker-controller.inc' /etc/rspamd/rspamd.conf")); 124 - $machine->log($machine->succeed("grep 'CONFDIR/worker-normal.inc' /etc/rspamd/rspamd.conf")); 125 - $machine->log($machine->succeed("grep 'LOCAL_CONFDIR/override.d/worker-controller2.inc' /etc/rspamd/rspamd.conf")); 126 - $machine->log($machine->succeed("grep 'verysecretpassword' /etc/rspamd/override.d/worker-controller2.inc")); 127 - $machine->waitUntilSucceeds("journalctl -u rspamd | grep -i 'starting controller process' >&2"); 128 - $machine->log($machine->succeed("rspamc -h /run/rspamd-worker.sock stat")); 129 - $machine->log($machine->succeed("curl --unix-socket /run/rspamd-worker.sock http://localhost/ping")); 130 - $machine->log($machine->succeed("curl http://localhost:11335/ping")); 117 + machine.log(machine.succeed("cat /etc/rspamd/rspamd.conf")) 118 + machine.log( 119 + machine.succeed("grep 'CONFDIR/worker-controller.inc' /etc/rspamd/rspamd.conf") 120 + ) 121 + machine.log(machine.succeed("grep 'CONFDIR/worker-normal.inc' /etc/rspamd/rspamd.conf")) 122 + machine.log( 123 + machine.succeed( 124 + "grep 'LOCAL_CONFDIR/override.d/worker-controller2.inc' /etc/rspamd/rspamd.conf" 125 + ) 126 + ) 127 + machine.log( 128 + machine.succeed( 129 + "grep 'verysecretpassword' /etc/rspamd/override.d/worker-controller2.inc" 130 + ) 131 + ) 132 + machine.wait_until_succeeds( 133 + "journalctl -u rspamd | grep -i 'starting controller process' >&2" 134 + ) 135 + machine.log(machine.succeed("rspamc -h /run/rspamd-worker.sock stat")) 136 + machine.log( 137 + machine.succeed("curl --unix-socket /run/rspamd-worker.sock http://localhost/ping") 138 + ) 139 + machine.log(machine.succeed("curl http://localhost:11335/ping")) 131 140 ''; 132 141 }; 133 142 customLuaRules = makeTest { ··· 218 199 }; 219 200 testScript = '' 220 201 ${initMachine} 221 - $machine->waitForOpenPort(11334); 222 - $machine->log($machine->succeed("cat /etc/rspamd/rspamd.conf")); 223 - $machine->log($machine->succeed("cat /etc/rspamd/rspamd.local.lua")); 224 - $machine->log($machine->succeed("cat /etc/rspamd/local.d/groups.conf")); 202 + machine.wait_for_open_port(11334) 203 + machine.log(machine.succeed("cat /etc/rspamd/rspamd.conf")) 204 + machine.log(machine.succeed("cat /etc/rspamd/rspamd.local.lua")) 205 + machine.log(machine.succeed("cat /etc/rspamd/local.d/groups.conf")) 225 206 # Verify that redis.conf was not written 226 - $machine->fail("cat /etc/rspamd/local.d/redis.conf >&2"); 207 + machine.fail("cat /etc/rspamd/local.d/redis.conf >&2") 227 208 # Verify that antivirus.conf was not written 228 - $machine->fail("cat /etc/rspamd/local.d/antivirus.conf >&2"); 209 + machine.fail("cat /etc/rspamd/local.d/antivirus.conf >&2") 229 210 ${checkSocket "/run/rspamd/rspamd.sock" "rspamd" "rspamd" "660" } 230 - $machine->log($machine->succeed("curl --unix-socket /run/rspamd/rspamd.sock http://localhost/ping")); 231 - $machine->log($machine->succeed("rspamc -h 127.0.0.1:11334 stat")); 232 - $machine->log($machine->succeed("cat /etc/tests/no-muh.eml | rspamc -h 127.0.0.1:11334")); 233 - $machine->log($machine->succeed("cat /etc/tests/muh.eml | rspamc -h 127.0.0.1:11334 symbols")); 234 - $machine->waitUntilSucceeds("journalctl -u rspamd | grep -i muh >&2"); 235 - $machine->log($machine->fail("cat /etc/tests/no-muh.eml | rspamc -h 127.0.0.1:11334 symbols | grep NO_MUH")); 236 - $machine->log($machine->succeed("cat /etc/tests/muh.eml | rspamc -h 127.0.0.1:11334 symbols | grep NO_MUH")); 211 + machine.log( 212 + machine.succeed("curl --unix-socket /run/rspamd/rspamd.sock http://localhost/ping") 213 + ) 214 + machine.log(machine.succeed("rspamc -h 127.0.0.1:11334 stat")) 215 + machine.log(machine.succeed("cat /etc/tests/no-muh.eml | rspamc -h 127.0.0.1:11334")) 216 + machine.log( 217 + machine.succeed("cat /etc/tests/muh.eml | rspamc -h 127.0.0.1:11334 symbols") 218 + ) 219 + machine.wait_until_succeeds("journalctl -u rspamd | grep -i muh >&2") 220 + machine.log( 221 + machine.fail( 222 + "cat /etc/tests/no-muh.eml | rspamc -h 127.0.0.1:11334 symbols | grep NO_MUH" 223 + ) 224 + ) 225 + machine.log( 226 + machine.succeed( 227 + "cat /etc/tests/muh.eml | rspamc -h 127.0.0.1:11334 symbols | grep NO_MUH" 228 + ) 229 + ) 237 230 ''; 238 231 }; 239 232 postfixIntegration = makeTest { ··· 281 250 }; 282 251 testScript = '' 283 252 ${initMachine} 284 - $machine->waitForOpenPort(11334); 285 - $machine->waitForOpenPort(25); 253 + machine.wait_for_open_port(11334) 254 + machine.wait_for_open_port(25) 286 255 ${checkSocket "/run/rspamd/rspamd-milter.sock" "rspamd" "postfix" "660" } 287 - $machine->log($machine->succeed("rspamc -h 127.0.0.1:11334 stat")); 288 - $machine->log($machine->succeed("msmtp --host=localhost -t --read-envelope-from < /etc/tests/example.eml")); 289 - $machine->log($machine->fail("msmtp --host=localhost -t --read-envelope-from < /etc/tests/gtube.eml")); 256 + machine.log(machine.succeed("rspamc -h 127.0.0.1:11334 stat")) 257 + machine.log( 258 + machine.succeed( 259 + "msmtp --host=localhost -t --read-envelope-from < /etc/tests/example.eml" 260 + ) 261 + ) 262 + machine.log( 263 + machine.fail( 264 + "msmtp --host=localhost -t --read-envelope-from < /etc/tests/gtube.eml" 265 + ) 266 + ) 290 267 291 - $machine->waitUntilFails('[ "$(postqueue -p)" != "Mail queue is empty" ]'); 292 - $machine->fail("journalctl -u postfix | grep -i error >&2"); 293 - $machine->fail("journalctl -u postfix | grep -i warning >&2"); 268 + machine.wait_until_fails('[ "$(postqueue -p)" != "Mail queue is empty" ]') 269 + machine.fail("journalctl -u postfix | grep -i error >&2") 270 + machine.fail("journalctl -u postfix | grep -i warning >&2") 294 271 ''; 295 272 }; 296 273 }