commit f72578c: [Test] statistics: per-user

Andrew Lewis nerf at judo.za.org
Mon Jul 29 17:51:46 UTC 2024


Author: Andrew Lewis
Date: 2024-01-25 01:58:50 +0200
URL: https://github.com/rspamd/rspamd/commit/f72578cc22e52a8c08981b432ce6bc1750382742 (refs/pull/4789/head)

[Test] statistics: per-user

---
 ...redis-plain-siphash.robot => 090-peruser.robot} |  8 ++--
 ...siphash.robot => 100-redis-keyed-siphash.robot} |  0
 ...d-xxhash.robot => 110-redis-keyed-xxhash.robot} |  0
 ...siphash.robot => 200-redis-plain-siphash.robot} |  0
 ...n-xxhash.robot => 210-redis-plain-xxhash.robot} |  0
 test/functional/cases/110_statistics/lib.robot     | 52 +++++++++++++++-------
 test/functional/configs/stats.conf                 |  8 ++++
 7 files changed, 47 insertions(+), 21 deletions(-)

diff --git a/test/functional/cases/110_statistics/redis-plain-siphash.robot b/test/functional/cases/110_statistics/090-peruser.robot
similarity index 51%
copy from test/functional/cases/110_statistics/redis-plain-siphash.robot
copy to test/functional/cases/110_statistics/090-peruser.robot
index 790a63eab..cd8f3ac77 100644
--- a/test/functional/cases/110_statistics/redis-plain-siphash.robot
+++ b/test/functional/cases/110_statistics/090-peruser.robot
@@ -4,12 +4,12 @@ Suite Teardown  Rspamd Redis Teardown
 Resource        lib.robot
 
 *** Variables ***
-${RSPAMD_REDIS_SERVER}  ${RSPAMD_REDIS_ADDR}:${RSPAMD_REDIS_PORT}
-${RSPAMD_STATS_HASH}    siphash
+${RSPAMD_REDIS_SERVER}    ${RSPAMD_REDIS_ADDR}:${RSPAMD_REDIS_PORT}
+${RSPAMD_STATS_PER_USER}  true
 
 *** Test Cases ***
 Learn
-  Learn Test
+  Learn Test  test at example.com
 
 Relearn
-  Relearn Test
+  Relearn Test  test at 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
similarity index 100%
rename from test/functional/cases/110_statistics/redis-keyed-siphash.robot
rename to 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
similarity index 100%
rename from test/functional/cases/110_statistics/redis-keyed-xxhash.robot
rename to 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
similarity index 100%
rename from test/functional/cases/110_statistics/redis-plain-siphash.robot
rename to 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
similarity index 100%
rename from test/functional/cases/110_statistics/redis-plain-xxhash.robot
rename to 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";
 


More information about the Commits mailing list