]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Test] Add tests for CDB maps 5390/head
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 15 Mar 2025 15:49:00 +0000 (15:49 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 15 Mar 2025 15:49:00 +0000 (15:49 +0000)
lualib/lua_maps.lua
test/functional/cases/001_merged/102_multimap.robot
test/functional/configs/merged-override.conf

index 3a2b29d30b892909eab643f40dc1b109d636ca56..d4ba30306ff7bd16c6cd052a0433319ce06873da 100644 (file)
@@ -90,7 +90,7 @@ local external_map_schema = ts.shape {
   external = ts.equivalent(true), -- must be true
   backend = ts.string:is_optional(), -- where to get data, required for HTTP
   cdb = ts.string:is_optional(), -- path to CDB file, required for CDB
-  method = ts.one_of { "body", "header", "query" }, -- how to pass input
+  method = ts.one_of { "body", "header", "query" }:is_optional(), -- how to pass input
   encode = ts.one_of { "json", "messagepack" }:is_optional(), -- how to encode input (if relevant)
   timeout = (ts.number + ts.string / lua_util.parse_time_interval):is_optional(),
 }
index 50d1af6b6ddc406062bdb29be598543daa200db4..a16d0e5c40218a4d9e5f35cddfc36995957b23f2 100644 (file)
@@ -418,6 +418,16 @@ MAP - EXTERNAL MISS
   ...   Settings={symbols_enabled = [EXTERNAL_MULTIMAP]}
   Do Not Expect Symbol  EXTERNAL_MULTIMAP
 
+MAP - EXTERNAL CDB
+  Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=example.com
+  ...   Settings={symbols_enabled = [EXTERNAL_MULTIMAP_CDB]}
+  Expect Symbol  EXTERNAL_MULTIMAP_CDB
+
+MAP - EXTERNAL CDB MISS
+  Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=example.com.bg
+  ...   Settings={symbols_enabled = [EXTERNAL_MULTIMAP_CDB]}
+  Do Not Expect Symbol  EXTERNAL_MULTIMAP_CDB
+
 MAP - DYNAMIC SYMBOLS - SYM1
   Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=foo
   ...   Settings={symbols_enabled = [DYN_TEST1,DYN_TEST2,DYN_MULTIMAP]}
index 344e307864970b1838480eb63b3e8aaec4ea0996..e302e88fc94c79ee8e8d839f667f363fd74d184c 100644 (file)
@@ -254,6 +254,14 @@ multimap {
       }
   }
 
+  EXTERNAL_MULTIMAP_CDB {
+      type = "hostname";
+      map = {
+        external = true;
+        cdb = "{= env.TESTDIR =}/configs/maps/domains.cdb";
+      }
+  }
+
   DYN_MULTIMAP {
     type = "hostname";
     map = "{= env.TESTDIR =}/configs/maps/dynamic_symbols.map";