]> source.dussan.org Git - rspamd.git/commitdiff
[Test] Add tests for group score limits 5084/head
authorVsevolod Stakhov <vsevolod@rspamd.com>
Thu, 1 Aug 2024 11:58:13 +0000 (12:58 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Thu, 1 Aug 2024 11:58:13 +0000 (12:58 +0100)
test/functional/cases/001_merged/101_lua.robot
test/functional/configs/merged-local.conf
test/functional/configs/merged.conf
test/functional/lua/deps.lua
test/functional/lua/limits.lua [new file with mode: 0644]

index 2cfc03677ce7e2157dec7028ee13f94c7ebb8c92..51d5b4b23a9983f5849701517775b39a66b8a805 100644 (file)
@@ -52,4 +52,48 @@ External Maps Simple
 
 Task Inject Url
   Scan File  ${URL_ICS}  Settings={symbols_enabled = [TEST_INJECT_URL]}
-  Expect Symbol  TEST_INJECT_URL
\ No newline at end of file
+  Expect Symbol  TEST_INJECT_URL
+
+Group Score Positive
+  Scan File  ${MESSAGE}  Settings={symbols_enabled = [GR_POSITIVE1, GR_POSITIVE2, GR_POSITIVE4, GR_POSITIVE8, GR_POSITIVE16]}
+  Expect Symbol With Score  GR_POSITIVE1  1
+  Expect Symbol With Score  GR_POSITIVE2  2
+  Expect Symbol With Score  GR_POSITIVE4  4
+  Expect Symbol With Score  GR_POSITIVE8  3
+  Expect Symbol With Score  GR_POSITIVE16  0
+
+Group Score Negative
+  Scan File  ${MESSAGE}  Settings={symbols_enabled = [GR_NEGATIVE1, GR_NEGATIVE2, GR_NEGATIVE4, GR_NEGATIVE8]}
+  Expect Symbol With Score  GR_NEGATIVE1  -1
+  Expect Symbol With Score  GR_NEGATIVE2  -2
+  Expect Symbol With Score  GR_NEGATIVE4  -4
+  Expect Symbol With Score  GR_NEGATIVE8  -3
+
+Group Score Mix 1
+  Scan File  ${MESSAGE}  Settings={symbols_enabled = [GR_POSITIVE1, GR_POSITIVE2, GR_POSITIVE4, GR_POSITIVE8, GR_NEGATIVE1, GR_NEGATIVE2, GR_NEGATIVE4, GR_NEGATIVE8]}
+  Expect Symbol With Score  GR_POSITIVE1  1
+  Expect Symbol With Score  GR_POSITIVE2  2
+  Expect Symbol With Score  GR_POSITIVE4  4
+  Expect Symbol With Score  GR_POSITIVE8  3
+  Expect Symbol With Score  GR_NEGATIVE1  -1
+  Expect Symbol With Score  GR_NEGATIVE2  -2
+  Expect Symbol With Score  GR_NEGATIVE4  -4
+  Expect Symbol With Score  GR_NEGATIVE8  -8
+
+Group Score Mix 2
+  Scan File  ${MESSAGE}  Settings={symbols_enabled = [GR_POSITIVE1, GR_POSITIVE2, GR_POSITIVE4, GR_POSITIVE8, GR_NEGATIVE16]}
+  Expect Symbol With Score  GR_POSITIVE1  1
+  Expect Symbol With Score  GR_POSITIVE2  2
+  Expect Symbol With Score  GR_POSITIVE4  4
+  Expect Symbol With Score  GR_POSITIVE8  3
+  Expect Symbol With Score  GR_NEGATIVE16  -16
+
+Group Score Mix 3
+  Scan File  ${MESSAGE}  Settings={symbols_enabled = [GR_POSITIVE1, GR_NEGATIVE16]}
+  Expect Symbol With Score  GR_POSITIVE1  1
+  Expect Symbol With Score  GR_NEGATIVE16  -11
+
+Group Score Mix 4
+  Scan File  ${MESSAGE}  Settings={symbols_enabled = [GR_POSITIVE16, GR_NEGATIVE16]}
+  Expect Symbol With Score  GR_POSITIVE16  10
+  Expect Symbol With Score  GR_NEGATIVE16  -16
\ No newline at end of file
index 2d914b0759717d2a01bfaf60dcfb2b721fb0f5a2..2aef274c212861538be94e5025220607e95aee49 100644 (file)
@@ -965,6 +965,45 @@ symbols {
   }
 }
 
+group "test" {
+  max_score = 10;
+  min_score = -10;
+
+  symbols = {
+    "GR_POSITIVE1" = {
+      score = 1.0;
+    },
+    "GR_POSITIVE2" = {
+      score = 2.0;
+    },
+    "GR_POSITIVE4" = {
+      score = 4.0;
+    },
+    "GR_POSITIVE8" = {
+      score = 8.0;
+    },
+    "GR_POSITIVE16" = {
+      score = 16.0;
+    },
+
+    "GR_NEGATIVE1" = {
+      score = -1.0;
+    },
+    "GR_NEGATIVE2" = {
+      score = -2.0;
+    },
+    "GR_NEGATIVE4" = {
+      score = -4.0;
+    },
+    "GR_NEGATIVE8" = {
+      score = -8.0;
+    },
+    "GR_NEGATIVE16" = {
+      score = -16.0;
+    },
+  }
+}
+
 worker "controller" {
     bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}";
     keypair {
index 0ee224ceb0373f3f393b11bc36e7ec223aa245d3..06a34308dab3f9239d6bbb1743dc30af2b176115 100644 (file)
@@ -11,6 +11,7 @@ lua = "{= env.TESTDIR =}/lua/recipients.lua"
 lua = "{= env.TESTDIR =}/lua/remove_result.lua"
 lua = "{= env.TESTDIR =}/lua/tlds.lua"
 lua = "{= env.TESTDIR =}/lua/inject_url.lua"
+lua = "{= env.TESTDIR =}/lua/limits.lua"
 
 # 104_get_from
 lua = "{= env.TESTDIR =}/lua/get_from.lua"
index 6171db699553544f3d1f53d0cb72029c931040b5..b78d3abb76d2036c11b9c8951583f47eff59048b 100644 (file)
@@ -24,7 +24,7 @@ rspamd_config:register_virtual_symbol('TOP', 1.0, id)
 rspamd_config:register_symbol('DEP1', 1.0, cb_dep1)
 rspamd_config:register_dependency('DEP1', 'TOP')
 
-for i = 2,10 do
+for i = 2, 10 do
   rspamd_config:register_symbol('DEP' .. tostring(i), 1.0, cb_gen(i - 1))
   rspamd_config:register_dependency('DEP' .. tostring(i), 'DEP' .. tostring(i - 1))
 end
diff --git a/test/functional/lua/limits.lua b/test/functional/lua/limits.lua
new file mode 100644 (file)
index 0000000..52fb47f
--- /dev/null
@@ -0,0 +1,22 @@
+local true_cb_gen = function()
+  return function()
+    return true
+  end
+end
+
+local test_weights = { 1, 2, 4, 8, 16 }
+for _, i in ipairs(test_weights) do
+  rspamd_config:register_symbol('GR_POSITIVE' .. tostring(i), 1.0, true_cb_gen())
+
+  if i > 1 then
+    rspamd_config:register_dependency('GR_POSITIVE' .. tostring(i), 'GR_POSITIVE' .. tostring(i / 2))
+  end
+
+  rspamd_config:register_symbol('GR_NEGATIVE' .. tostring(i), 1.0, true_cb_gen())
+
+  if i > 1 then
+    rspamd_config:register_dependency('GR_NEGATIVE' .. tostring(i), 'GR_NEGATIVE' .. tostring(i / 2))
+  end
+end
+
+rspamd_config:register_dependency('GR_NEGATIVE1', 'GR_POSITIVE16')
\ No newline at end of file