aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rspamd.com>2024-01-25 14:40:38 +0600
committerGitHub <noreply@github.com>2024-01-25 14:40:38 +0600
commit6fb583995a3f172fa8b4707f515329a8f06ca104 (patch)
treecaf65faeddcdf25444c1a92863c20d6aa3601842
parent32e2fc07e16f452f0e6d2229a900b2d38b52ab28 (diff)
parentf72578cc22e52a8c08981b432ce6bc1750382742 (diff)
downloadrspamd-6fb583995a3f172fa8b4707f515329a8f06ca104.tar.gz
rspamd-6fb583995a3f172fa8b4707f515329a8f06ca104.zip
Merge pull request #4789 from fatalbanana/per_user_test
[Test] statistics: per-user
-rw-r--r--test/functional/cases/110_statistics/090-peruser.robot15
-rw-r--r--test/functional/cases/110_statistics/100-redis-keyed-siphash.robot (renamed from test/functional/cases/110_statistics/redis-keyed-siphash.robot)0
-rw-r--r--test/functional/cases/110_statistics/110-redis-keyed-xxhash.robot (renamed from test/functional/cases/110_statistics/redis-keyed-xxhash.robot)0
-rw-r--r--test/functional/cases/110_statistics/200-redis-plain-siphash.robot (renamed from test/functional/cases/110_statistics/redis-plain-siphash.robot)0
-rw-r--r--test/functional/cases/110_statistics/210-redis-plain-xxhash.robot (renamed from test/functional/cases/110_statistics/redis-plain-xxhash.robot)0
-rw-r--r--test/functional/cases/110_statistics/lib.robot52
-rw-r--r--test/functional/configs/stats.conf8
7 files changed, 58 insertions, 17 deletions
diff --git a/test/functional/cases/110_statistics/090-peruser.robot b/test/functional/cases/110_statistics/090-peruser.robot
new file mode 100644
index 000000000..cd8f3ac77
--- /dev/null
+++ b/test/functional/cases/110_statistics/090-peruser.robot
@@ -0,0 +1,15 @@
+*** Settings ***
+Suite Setup Rspamd Redis Setup
+Suite Teardown Rspamd Redis Teardown
+Resource lib.robot
+
+*** Variables ***
+${RSPAMD_REDIS_SERVER} ${RSPAMD_REDIS_ADDR}:${RSPAMD_REDIS_PORT}
+${RSPAMD_STATS_PER_USER} true
+
+*** Test Cases ***
+Learn
+ Learn Test test@example.com
+
+Relearn
+ Relearn Test test@example.com
diff --git a/test/functional/cases/110_statistics/redis-keyed-siphash.robot b/test/functional/cases/110_statistics/100-redis-keyed-siphash.robot
index d889502ef..d889502ef 100644
--- a/test/functional/cases/110_statistics/redis-keyed-siphash.robot
+++ b/test/functional/cases/110_statistics/100-redis-keyed-siphash.robot
diff --git a/test/functional/cases/110_statistics/redis-keyed-xxhash.robot b/test/functional/cases/110_statistics/110-redis-keyed-xxhash.robot
index 928a9ea14..928a9ea14 100644
--- a/test/functional/cases/110_statistics/redis-keyed-xxhash.robot
+++ b/test/functional/cases/110_statistics/110-redis-keyed-xxhash.robot
diff --git a/test/functional/cases/110_statistics/redis-plain-siphash.robot b/test/functional/cases/110_statistics/200-redis-plain-siphash.robot
index 790a63eab..790a63eab 100644
--- a/test/functional/cases/110_statistics/redis-plain-siphash.robot
+++ b/test/functional/cases/110_statistics/200-redis-plain-siphash.robot
diff --git a/test/functional/cases/110_statistics/redis-plain-xxhash.robot b/test/functional/cases/110_statistics/210-redis-plain-xxhash.robot
index 55e7524a3..55e7524a3 100644
--- a/test/functional/cases/110_statistics/redis-plain-xxhash.robot
+++ b/test/functional/cases/110_statistics/210-redis-plain-xxhash.robot
diff --git a/test/functional/cases/110_statistics/lib.robot b/test/functional/cases/110_statistics/lib.robot
index c6fad2b2f..792806300 100644
--- a/test/functional/cases/110_statistics/lib.robot
+++ b/test/functional/cases/110_statistics/lib.robot
@@ -4,15 +4,16 @@ Resource ${RSPAMD_TESTDIR}/lib/rspamd.robot
Variables ${RSPAMD_TESTDIR}/lib/vars.py
*** Variables ***
-${CONFIG} ${RSPAMD_TESTDIR}/configs/stats.conf
-${MESSAGE_HAM} ${RSPAMD_TESTDIR}/messages/ham.eml
-${MESSAGE_SPAM} ${RSPAMD_TESTDIR}/messages/spam_message.eml
-${REDIS_SCOPE} Suite
-${RSPAMD_REDIS_SERVER} null
-${RSPAMD_SCOPE} Suite
-${RSPAMD_STATS_BACKEND} redis
-${RSPAMD_STATS_HASH} null
-${RSPAMD_STATS_KEY} null
+${CONFIG} ${RSPAMD_TESTDIR}/configs/stats.conf
+${MESSAGE_HAM} ${RSPAMD_TESTDIR}/messages/ham.eml
+${MESSAGE_SPAM} ${RSPAMD_TESTDIR}/messages/spam_message.eml
+${REDIS_SCOPE} Suite
+${RSPAMD_REDIS_SERVER} null
+${RSPAMD_SCOPE} Suite
+${RSPAMD_STATS_BACKEND} redis
+${RSPAMD_STATS_HASH} null
+${RSPAMD_STATS_KEY} null
+${RSPAMD_STATS_PER_USER} ${EMPTY}
*** Keywords ***
Broken Learn Test
@@ -26,24 +27,41 @@ Empty Part Test
Scan File ${MESSAGE}
Expect Symbol BAYES_SPAM
+Learn
+ [Arguments] ${user} ${class} ${message}
+ IF "${user}"
+ ${result} = Run Rspamc -d ${user} -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_${class} ${message}
+ ELSE
+ ${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_${class} ${message}
+ END
+ Check Rspamc ${result}
+
Learn Test
+ [Arguments] ${user}=${EMPTY}
Set Suite Variable ${RSPAMD_STATS_LEARNTEST} 0
- ${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_spam ${MESSAGE_SPAM}
- ${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_ham ${MESSAGE_HAM}
- Check Rspamc ${result}
- Scan File ${MESSAGE_SPAM}
+ Set Test Variable ${kwargs} &{EMPTY}
+ IF "${user}"
+ Set To Dictionary ${kwargs} Deliver-To=${user}
+ END
+ Learn ${user} spam ${MESSAGE_SPAM}
+ Learn ${user} ham ${MESSAGE_HAM}
+ Scan File ${MESSAGE_SPAM} &{kwargs}
Expect Symbol BAYES_SPAM
- Scan File ${MESSAGE_HAM}
+ Scan File ${MESSAGE_HAM} &{kwargs}
Expect Symbol BAYES_HAM
Set Suite Variable ${RSPAMD_STATS_LEARNTEST} 1
Relearn Test
+ [Arguments] ${user}=${EMPTY}
IF ${RSPAMD_STATS_LEARNTEST} == 0
Fail "Learn test was not run"
END
- ${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} learn_ham ${MESSAGE_SPAM}
- Check Rspamc ${result}
- Scan File ${MESSAGE_SPAM}
+ Learn ${user} ham ${MESSAGE_SPAM}
+ Set Test Variable ${kwargs} &{EMPTY}
+ IF "${user}"
+ Set To Dictionary ${kwargs} Deliver-To=${user}
+ END
+ Scan File ${MESSAGE_SPAM} &{kwargs}
${pass} = Run Keyword And Return Status Expect Symbol BAYES_HAM
IF ${pass}
Pass Execution What Me Worry
diff --git a/test/functional/configs/stats.conf b/test/functional/configs/stats.conf
index bfa39b426..ba6a5fe9c 100644
--- a/test/functional/configs/stats.conf
+++ b/test/functional/configs/stats.conf
@@ -71,6 +71,14 @@ classifier {
cache {
server = {= env.REDIS_SERVER =}
}
+
+ {% if env.STATS_PER_USER ~= '' %}
+ per_user = <<EOD
+return function(task)
+ return task:get_principal_recipient()
+end
+EOD;
+ {% endif %}
}
lua = "{= env.TESTDIR =}/lua/test_coverage.lua";