diff options
author | Andrew Lewis <nerf@judo.za.org> | 2024-01-25 01:58:50 +0200 |
---|---|---|
committer | Andrew Lewis <nerf@judo.za.org> | 2024-01-25 01:58:50 +0200 |
commit | f72578cc22e52a8c08981b432ce6bc1750382742 (patch) | |
tree | caf65faeddcdf25444c1a92863c20d6aa3601842 | |
parent | 32e2fc07e16f452f0e6d2229a900b2d38b52ab28 (diff) | |
download | rspamd-f72578cc22e52a8c08981b432ce6bc1750382742.tar.gz rspamd-f72578cc22e52a8c08981b432ce6bc1750382742.zip |
[Test] statistics: per-user
-rw-r--r-- | test/functional/cases/110_statistics/090-peruser.robot | 15 | ||||
-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.robot | 52 | ||||
-rw-r--r-- | test/functional/configs/stats.conf | 8 |
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"; |