]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Test] Improve fuzzy split server test configuration and setup
authorVsevolod Stakhov <vsevolod@rspamd.com>
Thu, 1 May 2025 08:35:57 +0000 (09:35 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Thu, 1 May 2025 08:38:47 +0000 (09:38 +0100)
test/functional/cases/120_fuzzy/lib.robot
test/functional/cases/120_fuzzy/split-servers.robot
test/functional/configs/fuzzy-split-servers.conf [new file with mode: 0644]

index 0a69c0ae981e2ab8fd51df2717ecca43228b73ba..a57ecc742953b886310b13de7fa7ffe8b48c68cc 100644 (file)
@@ -145,6 +145,7 @@ Fuzzy Setup Plain
   [Arguments]  ${algorithm}
   Set Suite Variable  ${RSPAMD_FUZZY_ALGORITHM}  ${algorithm}
   Set Suite Variable  ${RSPAMD_FUZZY_SERVER_MODE}  servers
+  Set Suite Variable  ${SETTINGS_FUZZY_CHECK}  servers = "${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_FUZZY}";
   Rspamd Redis Setup
 
 Fuzzy Setup Keyed
@@ -226,14 +227,17 @@ Fuzzy Multimessage Overwrite Test
 Fuzzy Setup Split Servers
   Set Suite Variable  ${RSPAMD_FUZZY_ALGORITHM}  siphash
   Set Suite Variable  ${RSPAMD_FUZZY_SERVER_MODE}  split
+  Set Suite Variable  ${SETTINGS_FUZZY_CHECK}  read_servers = "${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_FUZZY}"; write_servers = "${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_FUZZY}";
   Rspamd Redis Setup
 
 Fuzzy Setup Read Only
   Set Suite Variable  ${RSPAMD_FUZZY_ALGORITHM}  siphash
   Set Suite Variable  ${RSPAMD_FUZZY_SERVER_MODE}  read_only
+  Set Suite Variable  ${SETTINGS_FUZZY_CHECK}  read_only = true;
   Rspamd Redis Setup
 
 Fuzzy Setup Write Only
   Set Suite Variable  ${RSPAMD_FUZZY_ALGORITHM}  siphash
   Set Suite Variable  ${RSPAMD_FUZZY_SERVER_MODE}  write_only
+  Set Suite Variable  ${SETTINGS_FUZZY_CHECK}  mode = "write_only";
   Rspamd Redis Setup
index 97d7a7756d7ac5050aeb70f003a34914f726188f..41acb23fff2636045cdaf4342905e7482aa653f4 100644 (file)
@@ -2,6 +2,10 @@
 Suite Setup     Fuzzy Setup Split Servers
 Suite Teardown  Rspamd Redis Teardown
 Resource        lib.robot
+Variables       ${RSPAMD_TESTDIR}/lib/vars.py
+
+*** Variables ***
+${CONFIG}       ${RSPAMD_TESTDIR}/configs/fuzzy-split-servers.conf
 
 *** Test Cases ***
 Fuzzy Add
diff --git a/test/functional/configs/fuzzy-split-servers.conf b/test/functional/configs/fuzzy-split-servers.conf
new file mode 100644 (file)
index 0000000..e7c3bb9
--- /dev/null
@@ -0,0 +1,97 @@
+redis {
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
+}
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
+options = {
+       filters = "fuzzy_check";
+       pidfile = "{= env.TMPDIR =}/rspamd.pid";
+       control_socket = "{= env.TMPDIR =}/rspamd.sock mode=0600";
+       url_tld = "{= env.TESTDIR =}/../lua/unit/test_tld.dat";
+       dns {
+               retransmits = 10;
+               timeout = 2s;
+       }
+}
+logging = {
+       type = "file",
+       level = "debug"
+       filename = "{= env.TMPDIR =}/rspamd.log"
+}
+metric = {
+       name = "default",
+       actions = {
+               reject = 100500,
+       }
+       unknown_weight = 1
+        symbol {
+            weight = 10.0;
+            name = "{= env.FLAG1_SYMBOL =}";
+        }
+        symbol {
+            weight = -1.0;
+            name = "{= env.FLAG2_SYMBOL =}";
+        }
+}
+
+worker {
+       type = normal
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}";
+       count = 1
+       task_timeout = 60s;
+}
+
+worker {
+        type = controller
+        bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}";
+        count = 1
+        secure_ip = ["{= env.LOCAL_ADDR =}"];
+        stats_path = "{= env.TMPDIR =}/stats.ucl";
+}
+
+worker {
+       count = 1;
+        backend = "{= env.FUZZY_BACKEND =}";
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_FUZZY =}";
+       type = "fuzzy";
+       hashfile = "{= env.TMPDIR =}/fuzzy.db";
+       allow_update = ["{= env.LOCAL_ADDR =}"];
+       encrypted_only = {= env.FUZZY_ENCRYPTED_ONLY =};
+       keypair {
+               privkey = "{= env.KEY_PVT1 =}";
+               pubkey = "{= env.KEY_PUB1 =}";
+       }
+       dynamic_keys_map = "{= env.TESTDIR =}/configs/maps/fuzzy_keymap.map";
+}
+
+fuzzy_check {
+       min_bytes = 100;
+       timeout = 1s;
+       retransmits = 10;
+
+       rule {
+         min_bytes = 0;
+         min_length = 0;
+               algorithm = "{= env.FUZZY_ALGORITHM =}";
+               read_servers = "{= env.LOCAL_ADDR =}:{= env.PORT_FUZZY =}";
+               write_servers = "{= env.LOCAL_ADDR =}:{= env.PORT_FUZZY =}";
+               symbol = "R_TEST_FUZZY";
+               max_score = 10.0;
+               mime_types = ["application/*"];
+               read_only = false;
+               skip_unknown = true;
+               skip_hashes = "{= env.TMPDIR =}/skip_hash.map";
+               fuzzy_key = {= env.FUZZY_KEY =};
+               fuzzy_shingles_key = {= env.FUZZY_SHINGLES_KEY =};
+.include "{= env.FUZZY_INCLUDE =}";
+               fuzzy_map = {
+                       R_TEST_FUZZY_DENIED {
+                               max_score = 10.0;
+                               flag = {= env.FLAG1_NUMBER =};
+                       }
+                       R_TEST_FUZZY_WHITE {
+                               max_score = 1.0;
+                               flag = {= env.FLAG2_NUMBER =};
+                       }
+               }
+       }
+}