aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/functional/cases/001_merged/101_lua.robot46
-rw-r--r--test/functional/configs/merged-local.conf39
-rw-r--r--test/functional/configs/merged.conf1
-rw-r--r--test/functional/lua/deps.lua2
-rw-r--r--test/functional/lua/limits.lua22
5 files changed, 108 insertions, 2 deletions
diff --git a/test/functional/cases/001_merged/101_lua.robot b/test/functional/cases/001_merged/101_lua.robot
index 2cfc03677..51d5b4b23 100644
--- a/test/functional/cases/001_merged/101_lua.robot
+++ b/test/functional/cases/001_merged/101_lua.robot
@@ -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
diff --git a/test/functional/configs/merged-local.conf b/test/functional/configs/merged-local.conf
index 2d914b075..2aef274c2 100644
--- a/test/functional/configs/merged-local.conf
+++ b/test/functional/configs/merged-local.conf
@@ -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 {
diff --git a/test/functional/configs/merged.conf b/test/functional/configs/merged.conf
index 0ee224ceb..06a34308d 100644
--- a/test/functional/configs/merged.conf
+++ b/test/functional/configs/merged.conf
@@ -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"
diff --git a/test/functional/lua/deps.lua b/test/functional/lua/deps.lua
index 6171db699..b78d3abb7 100644
--- a/test/functional/lua/deps.lua
+++ b/test/functional/lua/deps.lua
@@ -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
index 000000000..52fb47fb9
--- /dev/null
+++ b/test/functional/lua/limits.lua
@@ -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