]> source.dussan.org Git - rspamd.git/commitdiff
[Test] Use lupa for templating rspamd configs
authorAndrew Lewis <nerf@judo.za.org>
Tue, 4 May 2021 11:48:37 +0000 (13:48 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Tue, 4 May 2021 11:48:37 +0000 (13:48 +0200)
102 files changed:
test/functional/cases/100_general.robot
test/functional/cases/101_lua.robot
test/functional/cases/102_multimap.robot
test/functional/cases/103_password.robot
test/functional/cases/104_get_from.robot
test/functional/cases/105_mimetypes.robot
test/functional/cases/106_mid.robot
test/functional/cases/108_settings.robot
test/functional/cases/109_composites.robot
test/functional/cases/110_statistics/lib.robot
test/functional/cases/110_statistics/redis-keyed-siphash.robot
test/functional/cases/110_statistics/redis-keyed-xxhash.robot
test/functional/cases/110_statistics/redis-plain-siphash.robot
test/functional/cases/110_statistics/redis-plain-xxhash.robot
test/functional/cases/114_phishing.robot
test/functional/cases/115_dmarc.robot
test/functional/cases/116_dkim.robot
test/functional/cases/117_spf.robot
test/functional/cases/120_fuzzy/lib.robot
test/functional/cases/121_json/100_preresult.robot
test/functional/cases/121_json/101_simple.robot
test/functional/cases/121_json/lib.robot
test/functional/cases/123_whitelist.robot
test/functional/cases/125_map_reload.robot
test/functional/cases/131_dkim_signing/001_simple.robot
test/functional/cases/131_dkim_signing/002_redis.robot
test/functional/cases/131_dkim_signing/003_eddsa.robot
test/functional/cases/131_dkim_signing/004_invalidate_key.robot
test/functional/cases/131_dkim_signing/005_multiple.robot
test/functional/cases/131_dkim_signing/006_milter.robot
test/functional/cases/131_dkim_signing/007_sign_maps.robot
test/functional/cases/135_spamassassin.robot
test/functional/cases/140_proxy.robot
test/functional/cases/160_antivirus.robot
test/functional/cases/161_p0f.robot
test/functional/cases/162_url_redirector.robot
test/functional/cases/180_milter.robot
test/functional/cases/220_http.robot
test/functional/cases/230_tcp.robot
test/functional/cases/231_tcp_down.robot
test/functional/cases/240_redis.robot
test/functional/cases/241_redis_is_dead.robot
test/functional/cases/250_dns.robot
test/functional/cases/260_regex.robot
test/functional/cases/270_selector.robot
test/functional/cases/280_rules.robot
test/functional/cases/281_fnames.robot
test/functional/cases/290_greylist.robot
test/functional/cases/300_rbl.robot
test/functional/cases/310_udp.robot
test/functional/cases/320_arc_signing/001_simple.robot
test/functional/cases/320_arc_signing/002_redis.robot
test/functional/cases/321_arc_check.robot
test/functional/cases/330_neural/001_autotrain.robot
test/functional/cases/330_neural/002_manualtrain.robot
test/functional/cases/340_surbl.robot
test/functional/cases/350_magic.robot
test/functional/cases/360_force_actions.robot
test/functional/configs/antivirus.conf
test/functional/configs/arc.conf
test/functional/configs/arc_signing/redis.conf
test/functional/configs/arc_signing/simple.conf
test/functional/configs/composites.conf
test/functional/configs/dkim.conf
test/functional/configs/dkim_signing/eddsa.conf
test/functional/configs/dkim_signing/invalidate.conf
test/functional/configs/dkim_signing/milter.conf
test/functional/configs/dkim_signing/multiple.conf
test/functional/configs/dkim_signing/redis.conf
test/functional/configs/dkim_signing/sign_maps.conf
test/functional/configs/dkim_signing/simple.conf
test/functional/configs/dmarc.conf
test/functional/configs/empty.conf [new file with mode: 0644]
test/functional/configs/force_actions.conf
test/functional/configs/fuzzy-encryption-key.conf [new file with mode: 0644]
test/functional/configs/fuzzy.conf
test/functional/configs/greylist.conf
test/functional/configs/lua_script.conf
test/functional/configs/lua_test.conf
test/functional/configs/mid.conf
test/functional/configs/milter.conf
test/functional/configs/mime_types.conf
test/functional/configs/multimap.conf
test/functional/configs/neural.conf
test/functional/configs/neural_noauto.conf
test/functional/configs/p0f.conf
test/functional/configs/password.conf
test/functional/configs/phishing.conf
test/functional/configs/plugins.conf
test/functional/configs/proxy.conf
test/functional/configs/rbl.conf
test/functional/configs/redis.conf
test/functional/configs/regexp.conf
test/functional/configs/selector.conf
test/functional/configs/settings.conf
test/functional/configs/spamassassin.conf
test/functional/configs/stats.conf
test/functional/configs/surbl.conf
test/functional/configs/trivial.conf
test/functional/configs/url_redirector.conf
test/functional/configs/whitelist.conf
test/functional/lib/rspamd.robot

index 0a754a973790acc2cdc7ed868651a779f69728d9..d2b3f24f5b21f183af228421e0fa03ea397d7681 100644 (file)
@@ -1,5 +1,5 @@
 *** Settings ***
-Suite Setup     Generic Setup
+Suite Setup     New Setup
 Suite Teardown  Simple Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
index 215ecd0865d859b877f2b2282c53ec52231744f7..034ce756fe6a6f5b0a035648cfeeeb6f82ddfca8 100644 (file)
@@ -73,7 +73,7 @@ Rule conditions
 Lua Setup
   [Arguments]  ${LUA_SCRIPT}
   Set Test Variable  ${LUA_SCRIPT}
-  Generic Setup
+  New Setup  LUA_SCRIPT=${LUA_SCRIPT}  URL_TLD=${URL_TLD}
 
 Lua Replace Setup
   [Arguments]  ${LUA_SCRIPT_UNESC}
index fc93d7565da7cbe905d4cb8a865e80c004255df5..7ab72c7616ed2d6317c5d8855c5f6310f162d3b0 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/multimap.conf
 ${MESSAGE}      ${TESTDIR}/messages/spam_message.eml
 ${UTF_MESSAGE}  ${TESTDIR}/messages/utf.eml
 ${REDIS_SCOPE}  Suite
@@ -338,10 +338,8 @@ MAP - MULTISYMBOL DISABLED
 
 *** Keywords ***
 Multimap Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/multimap.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
   Run Redis
+  New Setup  REDIS_ADDR=${REDIS_ADDR}  REDIS_PORT=${REDIS_PORT}  URL_TLD=${URL_TLD}
 
 Multimap Teardown
   Normal Teardown
index c750369bfba76532db64803536af1d025615ed74..090bcaa6aad7dac0b7cd4d5de0b19ebfc21ba710 100644 (file)
@@ -52,4 +52,4 @@ Password Setup
   [Arguments]  ${PASSWORD}  ${ENABLE_PASSWORD}=nq2
   Set Test Variable  ${PASSWORD}
   Set Test Variable  ${ENABLE_PASSWORD}
-  Generic Setup
+  New Setup  PASSWORD=${PASSWORD}  ENABLE_PASSWORD=${ENABLE_PASSWORD}
index c15e0cdba0a79cf639085db6b1af3262b0649145..e1fcbc25912dbd5c73bc6665d23b3139da49c1d7 100644 (file)
@@ -1,5 +1,5 @@
 *** Settings ***
-Suite Setup     Generic Setup
+Suite Setup     GetFrom Setup
 Suite Teardown  Simple Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
@@ -51,3 +51,7 @@ task:get_from('mime') - quoted in the middle of DN (outer spaces)
 task:get_from('mime') - quoted in the middle of DN (inner spaces)
   Scan File  ${TESTDIR}/messages/from/from_quoted_dn_middle_inner.eml
   Expect Symbol With Exact Options  ${SYMBOL}  ${OPTIONS3}
+
+*** Keywords ***
+GetFrom Setup
+  New Setup  LUA_SCRIPT=${LUA_SCRIPT}
index a29ffcb6d01d718c1dddba400a79832365131ab8..21984669848df86fe668e5062edd3ca7d56746df 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/mime_types.conf
 ${RSPAMD_SCOPE}  Suite
 ${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
 
@@ -67,6 +67,4 @@ Empty text part should not be treat as html
 
 *** Keywords ***
 MIMETypes Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/mime_types.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  URL_TLD=${URL_TLD}
index d220abc2235ed78194ac6721ad7a98307c19d813..f014940ca654556cae615fa0449f71203fd9af78 100644 (file)
@@ -1,12 +1,12 @@
 *** Settings ***
-Suite Setup     MID Setup
+Suite Setup     New Setup
 Suite Teardown  Normal Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}        ${TESTDIR}/configs/plugins.conf
+${CONFIG}        ${TESTDIR}/configs/mid.conf
 ${RSPAMD_SCOPE}  Suite
 ${URL_TLD}       ${TESTDIR}/../lua/unit/test_tld.dat
 
@@ -34,9 +34,3 @@ MID - missing Message-ID allowed
   Expect Symbol With Score  MISSING_MID_ALLOWED  1.00
   Do Not Expect Symbol  MISSING_MID
   Do Not Expect Symbol  INVALID_MSGID
-
-*** Keywords ***
-MID Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/mid.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
index 6e02e57a392e5a3bd66e8d62a83585209853228b..3409c84ff3b0303120b3dbc1d381b1c7ab192cbd 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/settings.conf
 ${LUA_SCRIPT}   ${TESTDIR}/lua/settings.lua
 ${MESSAGE}      ${TESTDIR}/messages/spam_message.eml
 ${MESSAGE_PRIORITY}      ${TESTDIR}/messages/priority.eml
@@ -255,9 +255,8 @@ PRIORITY
 Settings Setup
   Copy File  ${TESTDIR}/data/bayes.spam.sqlite3  /tmp/bayes.spam.sqlite3
   Copy File  ${TESTDIR}/data/bayes.ham.sqlite3  /tmp/bayes.ham.sqlite3
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/settings.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  LUA_SCRIPT=${LUA_SCRIPT}
 
 Settings Teardown
   Normal Teardown
+  Remove Files  /tmp/bayes.spam.sqlite3  /tmp/bayes.ham.sqlite3
index 3aeb009edde5e83ce83c53c285960cfb229bad16..8c93642dcff37e9ea4c54391fbb898848592354d 100644 (file)
@@ -1,5 +1,5 @@
 *** Settings ***
-Suite Setup     Generic Setup
+Suite Setup     Composites Setup
 Suite Teardown  Simple Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
@@ -66,7 +66,7 @@ Composites - Opts RE Hit
   Do Not Expect Symbol  SYMOPTS3
 
 Composites - Opts RE Hit 2
-  Scan File  ${MESSAGE}  opts=foo/,sym2
+  Scan File  ${MESSAGE}  opts=sym2,foo/
   Expect Symbol With Score  SYMOPTS3  6.00
   Do Not Expect Symbol  SYMOPTS2
   Do Not Expect Symbol  SYMOPTS1
@@ -75,4 +75,8 @@ Composites - Opts RE Hit 3
   Scan File  ${MESSAGE}  opts=example.com->app.link
   Expect Symbol With Score  SYMOPTS4  6.00
   Do Not Expect Symbol  SYMOPTS2
-  Do Not Expect Symbol  SYMOPTS1
\ No newline at end of file
+  Do Not Expect Symbol  SYMOPTS1
+
+*** Keywords ***
+Composites Setup
+  New Setup  LUA_SCRIPT=${LUA_SCRIPT}
index 9dd313cd3af47070d42a716d9541b56d743f8704..808580a114dfc540bc3cb46e60b413977e73b1ac 100644 (file)
@@ -8,10 +8,11 @@ ${CONFIG}       ${TESTDIR}/configs/stats.conf
 ${MESSAGE_SPAM}      ${TESTDIR}/messages/spam_message.eml
 ${MESSAGE_HAM}      ${TESTDIR}/messages/ham.eml
 ${REDIS_SCOPE}  Suite
-${REDIS_SERVER}  ${EMPTY}
+${REDIS_SERVER}  null
 ${RSPAMD_SCOPE}  Suite
-${STATS_HASH}   ${EMPTY}
-${STATS_KEY}    ${EMPTY}
+${STATS_BACKEND}  redis
+${STATS_HASH}   null
+${STATS_KEY}    null
 
 *** Keywords ***
 Broken Learn Test
@@ -46,11 +47,8 @@ Relearn Test
   Do Not Expect Symbol  BAYES_SPAM
 
 Redis Statistics Setup
-  ${tmpdir} =  Make Temporary Directory
-  Set Suite Variable  ${TMPDIR}  ${tmpdir}
   Run Redis
-  Generic Setup  TMPDIR=${tmpdir}
+  New Setup  STATS_BACKEND=${STATS_BACKEND}  STATS_HASH=${STATS_HASH}  STATS_KEY=${STATS_KEY}  REDIS_SERVER=${REDIS_SERVER}
 
 Redis Statistics Teardown
   Normal Teardown
-  Shutdown Process With Children  ${REDIS_PID}
index 09d369d54445e848ecbe18ca051cb060def2ee34..cc43201025d641538bf56605e71b38b275db6233 100644 (file)
@@ -4,10 +4,9 @@ Suite Teardown  Redis Statistics Teardown
 Resource        lib.robot
 
 *** Variables ***
-${REDIS_SERVER}  servers = "${REDIS_ADDR}:${REDIS_PORT}"
-${STATS_BACKEND}  redis
-${STATS_HASH}   hash = "siphash";
-${STATS_KEY}    key = "${KEY_PVT1}";
+${REDIS_SERVER}  ${REDIS_ADDR}:${REDIS_PORT}
+${STATS_HASH}   siphash
+${STATS_KEY}    ${KEY_PVT1}
 
 *** Test Cases ***
 Learn
index e95b4cebc41835a35e8e61717241d134b3f1d657..ba550df20975781f7dff565fb935ed5f50823282 100644 (file)
@@ -4,10 +4,9 @@ Suite Teardown  Redis Statistics Teardown
 Resource        lib.robot
 
 *** Variables ***
-${REDIS_SERVER}  servers = "${REDIS_ADDR}:${REDIS_PORT}"
-${STATS_BACKEND}  redis
-${STATS_HASH}   hash = "xxhash";
-${STATS_KEY}    key = "${KEY_PVT1}";
+${REDIS_SERVER}  ${REDIS_ADDR}:${REDIS_PORT}
+${STATS_HASH}   xxhash
+${STATS_KEY}    ${KEY_PVT1}
 
 *** Test Cases ***
 Learn
index deb0c955972ab1338aa6f909cb66e8ebdf76dc3c..10e28a26bbcba1826816992db98a0043e35b2b87 100644 (file)
@@ -4,9 +4,8 @@ Suite Teardown  Redis Statistics Teardown
 Resource        lib.robot
 
 *** Variables ***
-${REDIS_SERVER}  servers = "${REDIS_ADDR}:${REDIS_PORT}"
-${STATS_BACKEND}  redis
-${STATS_HASH}   hash = "siphash";
+${REDIS_SERVER}  ${REDIS_ADDR}:${REDIS_PORT}
+${STATS_HASH}   siphash
 
 *** Test Cases ***
 Learn
index 379f39767fff9c43bbdd4112df3504a097186c44..47533d9be6f167cd3cb255df2a170d219cbc90d3 100644 (file)
@@ -4,9 +4,8 @@ Suite Teardown  Redis Statistics Teardown
 Resource        lib.robot
 
 *** Variables ***
-${REDIS_SERVER}  servers = "${REDIS_ADDR}:${REDIS_PORT}"
-${STATS_BACKEND}  redis
-${STATS_HASH}   hash = "xxhash";
+${REDIS_SERVER}  ${REDIS_ADDR}:${REDIS_PORT}
+${STATS_HASH}   xxhash
 
 *** Test Cases ***
 Learn
index 67e6f9aca7b4f199f8c6832b8c0f0f8ba31465a9..d0c5cab78809713139a0e7a682291ee65dcc05d2 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}        ${TESTDIR}/configs/plugins.conf
+${CONFIG}        ${TESTDIR}/configs/phishing.conf
 ${MESSAGE1}       ${TESTDIR}/messages/phishing1.eml
 ${MESSAGE2}      ${TESTDIR}/messages/phishing2.eml
 ${MESSAGE3}      ${TESTDIR}/messages/phishing3.eml
@@ -28,6 +28,4 @@ TEST PHISHING STRICT TWO
 
 *** Keywords ***
 Phishing Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/phishing.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  URL_TLD=${URL_TLD}
index 120e4461cd72f262ebb0da1b16d222510bc6257a..4b3fe92dabf3a3dc4951d03f04e4216d3127d26e 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}        ${TESTDIR}/configs/plugins.conf
+${CONFIG}        ${TESTDIR}/configs/dmarc.conf
 ${RSPAMD_SCOPE}  Suite
 ${URL_TLD}       ${TESTDIR}/../../contrib/publicsuffix/effective_tld_names.dat
 
@@ -89,6 +89,4 @@ DMARC PCT ZERO SP QUARANTINE
 
 *** Keywords ***
 DMARC Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/dmarc.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  URL_TLD=${URL_TLD}
index 45f5ad3142524743705f570d1e07a3fb9164dd6d..f1a906569d1cffd3419d3e8c96332fee8c07de7c 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}        ${TESTDIR}/configs/plugins.conf
+${CONFIG}        ${TESTDIR}/configs/dkim.conf
 ${RSPAMD_SCOPE}  Suite
 ${URL_TLD}       ${TESTDIR}/../../contrib/publicsuffix/effective_tld_names.dat
 
@@ -54,6 +54,4 @@ DKIM Verify ED25519 REJECT
 
 *** Keywords ***
 DKIM Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/dkim.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup
index 245c9c59317209f2a8973db6491af106b3aae533..210efd42aba42e772650b85df90bac3f4875c52f 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}        ${TESTDIR}/configs/plugins.conf
+${CONFIG}        ${TESTDIR}/configs/dmarc.conf
 ${RSPAMD_SCOPE}  Suite
 ${URL_TLD}       ${TESTDIR}/../../contrib/publicsuffix/effective_tld_names.dat
 
@@ -138,6 +138,4 @@ SPF UPPERCASE
 
 *** Keywords ***
 SPF Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/dmarc.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  URL_TLD=${URL_TLD}
index ca61432533635b77740a55edc87cd593aa148e69..6af0245d2b57a4f111d594eea85a90e867709a8e 100644 (file)
@@ -11,6 +11,11 @@ ${FLAG1_NUMBER}  50
 ${FLAG1_SYMBOL}  R_TEST_FUZZY_DENIED
 ${FLAG2_NUMBER}  51
 ${FLAG2_SYMBOL}  R_TEST_FUZZY_WHITE
+${FUZZY_ENCRYPTED_ONLY}  false
+${FUZZY_ENCRYPTION_KEY}  null
+${FUZZY_KEY}  null
+${FUZZY_INCLUDE}  ${TESTDIR}/configs/empty.conf
+${FUZZY_SHINGLES_KEY}  null
 @{MESSAGES}      ${TESTDIR}/messages/spam_message.eml  ${TESTDIR}/messages/zip.eml
 @{MESSAGES_SKIP}  ${TESTDIR}/messages/priority.eml
 @{RANDOM_MESSAGES}  ${TESTDIR}/messages/bad_message.eml  ${TESTDIR}/messages/zip-doublebad.eml
@@ -86,34 +91,41 @@ Fuzzy Overwrite Test
 
 Fuzzy Setup Encrypted
   [Arguments]  ${algorithm}
-  ${worker_settings} =  Set Variable  "keypair": {"pubkey": "${KEY_PUB1}", "privkey": "${KEY_PVT1}"}; "encrypted_only": true;
-  ${check_settings} =  Set Variable  encryption_key = "${KEY_PUB1}";
-  Fuzzy Setup Generic  ${algorithm}  ${worker_settings}  ${check_settings}
+  Set Suite Variable  ${FUZZY_ALGORITHM}  ${algorithm}
+  Set Suite Variable  ${FUZZY_ENCRYPTED_ONLY}  true
+  Set Suite Variable  ${FUZZY_ENCRYPTION_KEY}  ${KEY_PUB1}
+  Set Suite Variable  ${FUZZY_INCLUDE}  ${TESTDIR}/configs/fuzzy-encryption-key.conf
+  Fuzzy Setup Generic
 
 Fuzzy Setup Encrypted Keyed
   [Arguments]  ${algorithm}
-  ${worker_settings} =  Set Variable  "keypair": {"pubkey": "${KEY_PUB1}", "privkey": "${KEY_PVT1}"}; "encrypted_only": true;
-  ${check_settings} =  Set Variable  fuzzy_key = "mYN888sydwLTfE32g2hN"; fuzzy_shingles_key = "hXUCgul9yYY3Zlk1QIT2"; encryption_key = "${KEY_PUB1}";
-  Fuzzy Setup Generic  ${algorithm}  ${worker_settings}  ${check_settings}
+  Set Suite Variable  ${FUZZY_ALGORITHM}  ${algorithm}
+  Set Suite Variable  ${FUZZY_ENCRYPTED_ONLY}  true
+  Set Suite Variable  ${FUZZY_ENCRYPTION_KEY}  ${KEY_PUB1} 
+
+  Set Suite Variable  ${FUZZY_KEY}  mYN888sydwLTfE32g2hN
+  Set Suite Variable  ${FUZZY_SHINGLES_KEY}  hXUCgul9yYY3Zlk1QIT2
+  Fuzzy Setup Generic
 
 Fuzzy Setup Plain
   [Arguments]  ${algorithm}
-  Fuzzy Setup Generic  ${algorithm}  ${EMPTY}  ${EMPTY}
+  Set Suite Variable  ${FUZZY_ALGORITHM}  ${algorithm}
+  Fuzzy Setup Generic
 
 Fuzzy Setup Keyed
   [Arguments]  ${algorithm}
-  ${check_settings} =  Set Variable  fuzzy_key = "mYN888sydwLTfE32g2hN"; fuzzy_shingles_key = "hXUCgul9yYY3Zlk1QIT2";
-  Fuzzy Setup Generic  ${algorithm}  ${EMPTY}  ${check_settings}
+  Set Suite Variable  ${FUZZY_ALGORITHM}  ${algorithm}
+  Set Suite Variable  ${FUZZY_KEY}  mYN888sydwLTfE32g2hN
+  Set Suite Variable  ${FUZZY_SHINGLES_KEY}  hXUCgul9yYY3Zlk1QIT2
+  Fuzzy Setup Generic
 
 Fuzzy Setup Generic
-  [Arguments]  ${algorithm}  ${worker_settings}  ${check_settings}  &{kwargs}
-  ${worker_settings} =  Set Variable  backend \= "redis"; ${worker_settings}
-  ${tmpdir} =  Make Temporary Directory
-  Set Suite Variable  ${TMPDIR}  ${tmpdir}
-  Set Suite Variable  ${SETTINGS_FUZZY_WORKER}  ${worker_settings}
-  Set Suite Variable  ${SETTINGS_FUZZY_CHECK}  ${check_settings}
   Run Redis
-  Generic Setup  TMPDIR=${TMPDIR}
+  Generic Setup  FUZZY_ALGORITHM=${FUZZY_ALGORITHM}  FUZZY_ENCRYPTED_ONLY=${FUZZY_ENCRYPTED_ONLY}
+  ...  FUZZY_KEY=${FUZZY_KEY}  FUZZY_SHINGLES_KEY=${FUZZY_SHINGLES_KEY}
+  ...  FUZZY_ENCRYPTION_KEY=${FUZZY_ENCRYPTION_KEY}  FLAG1_NUMBER=${FLAG1_NUMBER}
+  ...  FLAG2_NUMBER=${FLAG2_NUMBER}  FUZZY_BACKEND=redis  PORT_FUZZY=${PORT_FUZZY}
+  ...  FUZZY_INCLUDE=${FUZZY_INCLUDE}
 
 Fuzzy Setup Plain Fasthash
   Fuzzy Setup Plain  fasthash
index aa25c02720128483190482de771f0ff6bd9ddf42..5122ae117edc184d1fcd9aa8e09aaa58112e604a 100644 (file)
@@ -1,5 +1,5 @@
 *** Settings ***
-Suite Setup     Generic Setup
+Suite Setup     JSON Setup
 Suite Teardown  Simple Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        lib.robot
index da5aa0f190cc05963bfc52b8d6b75217b1854d03..1c548ebe56ae9a644f632f2d1f0799e8b8612b39 100644 (file)
@@ -1,5 +1,5 @@
 *** Settings ***
-Suite Setup     Generic Setup
+Suite Setup     JSON Setup
 Suite Teardown  Simple Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        lib.robot
index 4d87485dc72b91ed2d5a6876f2e1e3ea76abfe78..b1ec0ac18be4ecf48792a7f250e017b7ebba1096 100644 (file)
@@ -2,6 +2,9 @@
 ${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
 
 *** Keywords ***
+JSON Setup
+  New Setup  LUA_SCRIPT=${LUA_SCRIPT}  URL_TLD=${URL_TLD}
+
 Stat Test
   @{result} =  HTTP  GET  ${LOCAL_ADDR}  ${PORT_CONTROLLER}  /stat
   Check JSON  ${result}[1]
index 6482793a3a8813c792e2a7b435cf5c48ad23b58e..67517877432bee95bc1d5324f01f790a463e6c68 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/whitelist.conf
 ${M_DMARC_OK}   ${TESTDIR}/messages/dmarc/pass_none.eml
 ${M_DMARC_BAD}  ${TESTDIR}/messages/dmarc/fail_none.eml
 
@@ -79,6 +79,4 @@ VALID SPF and NO DKIM
 
 *** Keywords ***
 Whitelist Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/whitelist.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup
index be7e0a722adb1a684e3d762d8e5d7c2966eb9f5a..33ca264b5fa4ffaef4d19123fba1b21dd9891d66 100644 (file)
@@ -39,7 +39,7 @@ Map Reload Setup
   ${lua} =  Replace Variables  ${lua}
   Create File  ${LUA_SCRIPT}  ${lua}
   Create File  ${MAP_FILE}  ${MAP1}
-  Generic Setup
+  New Setup  LUA_SCRIPT=${LUA_SCRIPT}  URL_TLD=${URL_TLD}
 
 Map Reload Teardown
   Remove File  ${MAP_FILE}
index 2bcd53f3698c9a59183113c85b679f096aab2560..6185ec2e464b112908b220e511ba7eda787d604c 100644 (file)
@@ -1,12 +1,12 @@
 *** Settings ***
-Suite Setup     DKIM Signing Setup
-Suite Teardown  DKIM Signing Teardown
+Suite Setup     New Setup
+Suite Teardown  Normal Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/dkim_signing/simple.conf
 ${MESSAGE}      ${TESTDIR}/messages/dmarc/fail_none.eml
 ${MESSAGE_FAIL}      ${TESTDIR}/messages/dmarc/fail_none1.eml
 ${REDIS_SCOPE}  Suite
@@ -33,12 +33,3 @@ TEST NOT SIGNED - USERNAME WRONG PUBKEY
   ${result} =  Scan Message With Rspamc  ${MESSAGE_FAIL}  -u  bob@invalid.za.org
   Check Rspamc  ${result}  DKIM-Signature:  inverse=1
   Should Not Contain  ${result.stdout}  DKIM_SIGNED
-
-*** Keywords ***
-DKIM Signing Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/dkim_signing/simple.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
-
-DKIM Signing Teardown
-  Normal Teardown
index e87749a0a3816faf646b1b8704890250856f92f2..45611c2bc27c40b8c2680465fa4fde21853b6a0a 100644 (file)
@@ -1,12 +1,12 @@
 *** Settings ***
 Suite Setup     DKIM Signing Setup
-Suite Teardown  DKIM Signing Teardown
+Suite Teardown  Normal Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/dkim_signing/redis.conf
 ${MESSAGE}      ${TESTDIR}/messages/dmarc/fail_none.eml
 ${REDIS_SCOPE}  Suite
 ${RSPAMD_SCOPE}  Suite
@@ -25,14 +25,8 @@ TEST NOT SIGNED - USERNAME WRONG DOMAIN
 
 *** Keywords ***
 DKIM Signing Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/dkim_signing/redis.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
   Run Redis
   Redis HSET  TEST_DKIM_SELECTORS  cacophony.za.org  dkim
   ${key} =  Get File  ${TESTDIR}/configs/dkim.key
   Redis HSET  TEST_DKIM_KEYS  dkim.cacophony.za.org  ${key}
-
-DKIM Signing Teardown
-  Normal Teardown
-  Shutdown Process With Children  ${REDIS_PID}
+  New Setup
index ea2fe03bef22470b6fe2b286bb6a3eb3ae89b221..37c01893d99c2db8b4850e8c5ee9847f508a1fe6 100644 (file)
@@ -1,12 +1,12 @@
 *** Settings ***
-Suite Setup     DKIM Signing Setup
-Suite Teardown  DKIM Signing Teardown
+Suite Setup     New Setup
+Suite Teardown  Normal Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/dkim_signing/eddsa.conf
 ${MESSAGE}      ${TESTDIR}/messages/dmarc/fail_none.eml
 ${MESSAGE_FAIL}      ${TESTDIR}/messages/dmarc/fail_none1.eml
 ${REDIS_SCOPE}  Suite
@@ -28,12 +28,3 @@ TEST NOT SIGNED - USERNAME WRONG PUBKEY
   ${result} =  Scan Message With Rspamc  ${MESSAGE_FAIL}  -u  bob@invalid.za.org
   Check Rspamc  ${result}  DKIM-Signature:  inverse=1
   Should Not Contain  ${result.stdout}  DKIM_SIGNED
-
-*** Keywords ***
-DKIM Signing Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/dkim_signing/eddsa.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
-
-DKIM Signing Teardown
-  Normal Teardown
index 2cf34e30538729cf082fb4640153128c611a50da..812a77e001a60c9e8475934d07986aa03c1eede0 100644 (file)
@@ -7,7 +7,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/dkim_signing/invalidate.conf
 ${MESSAGE}      ${TESTDIR}/messages/dmarc/fail_none.eml
 ${REDIS_SCOPE}  Suite
 ${RSPAMD_SCOPE}  Suite
@@ -36,9 +36,7 @@ Key Invalidation Setup
   ${key_dir}  Make Temporary Directory
   Set Suite Variable  ${KEY_DIR}  ${key_dir}
   Copy File  ${TESTDIR}/configs/dkim-eddsa.key  ${KEY_DIR}/dkim-eddsa.key
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/dkim_signing/invalidate.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup
 
 Delete Key
   Remove File  ${KEY_DIR}/dkim-eddsa.key
index 72222f460d7e97d5f1c3d566c4c8c3a2b740782c..2d35380a3b38340f2d3bd65918469fb3ba073bfd 100644 (file)
@@ -1,12 +1,12 @@
 *** Settings ***
-Suite Setup     DKIM Signing Setup
-Suite Teardown  DKIM Signing Teardown
+Suite Setup     New Setup
+Suite Teardown  Normal Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/dkim_signing/multiple.conf
 ${MESSAGE}      ${TESTDIR}/messages/dmarc/fail_none.eml
 ${MESSAGE_FAIL}      ${TESTDIR}/messages/dmarc/fail_none1.eml
 ${REDIS_SCOPE}  Suite
@@ -18,12 +18,3 @@ TEST DOUBLE SIGNED
   ${result} =  Scan Message With Rspamc  ${MESSAGE}  -u  bob@cacophony.za.org
   Check Rspamc  ${result}  (?s)DKIM-Signature.+DKIM-Signature  re=1
   Should Contain  ${result.stdout}  DKIM_SIGNED
-
-*** Keywords ***
-DKIM Signing Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/dkim_signing/multiple.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
-
-DKIM Signing Teardown
-  Normal Teardown
index cd48a62b7d31dd52d689b0fb18efc6b2ff5c9e6d..9e327b1165d685b52685575c718888f6edbd5f38 100644 (file)
@@ -1,5 +1,5 @@
 *** Settings ***
-Suite Setup     DKIM Milter Setup
+Suite Setup     New Setup
 Suite Teardown  Generic Teardown
 Library         Process
 Library         ${TESTDIR}/lib/rspamd.py
@@ -7,8 +7,9 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
+${CONFIG}        ${TESTDIR}/configs/dkim_signing/milter.conf
 ${RSPAMD_SCOPE}  Suite
-${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
+${URL_TLD}       ${TESTDIR}/../lua/unit/test_tld.dat
 
 *** Test Cases ***
 SINGLE SIGNATURE
@@ -18,9 +19,6 @@ MULTIPLE SIGNATURES
   Milter Test  dkim_many.lua
 
 *** Keywords ***
-DKIM Milter Setup
-  Generic Setup  CONFIG=${TESTDIR}/configs/dkim_signing/milter.conf
-
 Milter Test
   [Arguments]  ${mtlua}
   ${result} =  Run Process  miltertest  -Dport\=${PORT_PROXY}  -Dhost\=${LOCAL_ADDR}  -s  ${TESTDIR}/lua/miltertest/${mtlua}
index 69d4c9a922089e9dc1c9dbd19e0ec3b0dbdc05fe..13dfb077e86c57ef404129dca3e4af053d500a23 100644 (file)
@@ -1,12 +1,12 @@
 *** Settings ***
-Suite Setup     DKIM Signing Setup
-Suite Teardown  DKIM Signing Teardown
+Suite Setup     New Setup
+Suite Teardown  Normal Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/dkim_signing/sign_maps.conf
 ${MESSAGE}      ${TESTDIR}/messages/dmarc/fail_none.eml
 ${MESSAGE_FAIL}      ${TESTDIR}/messages/dmarc/fail_none1.eml
 ${REDIS_SCOPE}  Suite
@@ -23,12 +23,3 @@ TEST NOT SIGNED - FROM WRONG DOMAIN
   ${result} =  Scan Message With Rspamc  ${MESSAGE_FAIL}  -u  bob@cacophony.za.org
   Check Rspamc  ${result}  DKIM-Signature:  inverse=1
   Should Not Contain  ${result.stdout}  DKIM_SIGNED
-
-*** Keywords ***
-DKIM Signing Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/dkim_signing/sign_maps.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
-
-DKIM Signing Teardown
-  Normal Teardown
index d8d075b006e13d1a45d9d9f1082ba0a8ba8591e4..09fdb1bcb062c41cfce9e912b0cd4684d1bd786d 100644 (file)
@@ -1,12 +1,12 @@
 *** Settings ***
-Suite Setup     SpamAssassin Setup
+Suite Setup     New Setup
 Suite Teardown  Simple Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/spamassassin.conf
 ${RSPAMD_SCOPE}  Suite
 ${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
 
@@ -32,9 +32,3 @@ WLBL BLACKLIST
   Expect Symbol  USER_IN_BLACKLIST_TO
   Do Not Expect Symbol  USER_IN_WHITELIST_TO
   Do Not Expect Symbol  USER_IN_WHITELIST
-
-*** Keywords ***
-SpamAssassin Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/spamassassin.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
index 39b3faf8786f7ca92f8223e4e67fe42b28763271..bd6a23b68581fd296c0fa81bee38296dfb107559 100644 (file)
@@ -6,9 +6,10 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${LUA_SCRIPT}   ${TESTDIR}/lua/simple.lua
-${MESSAGE}      ${TESTDIR}/messages/spam_message.eml
-${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
+${LUA_SCRIPT}    ${TESTDIR}/lua/simple.lua
+${MESSAGE}       ${TESTDIR}/messages/spam_message.eml
+${RSPAMD_SCOPE}  Suite
+${URL_TLD}       ${TESTDIR}/../lua/unit/test_tld.dat
 
 *** Test Cases ***
 HTTP PROTOCOL
@@ -26,15 +27,24 @@ RSPAMC Legacy Protocol
 
 *** Keywords ***
 Proxy Setup
-  &{d} =  Run Rspamd  CONFIG=${TESTDIR}/configs/lua_test.conf
-  Set Suite Variable  ${SLAVE_PID}  ${d}[RSPAMD_PID]
-  Set Suite Variable  ${SLAVE_TMPDIR}  ${d}[TMPDIR]
-  &{d} =  Run Rspamd  CONFIG=${TESTDIR}/configs/proxy.conf
-  Set Suite Variable  ${PROXY_PID}  ${d}[RSPAMD_PID]
-  Set Suite Variable  ${PROXY_TMPDIR}  ${d}[TMPDIR]
+  # Run slave & copy variables
+  Set Suite Variable  ${CONFIG}  ${TESTDIR}/configs/lua_test.conf
+  New Setup  LUA_SCRIPT=${LUA_SCRIPT}  URL_TLD=${URL_TLD}
+  Set Suite Variable  ${SLAVE_PID}  ${RSPAMD_PID}
+  Set Suite Variable  ${SLAVE_TMPDIR}  ${TMPDIR}
+
+  # Run proxy & copy variables
+  Set Suite Variable  ${CONFIG}  ${TESTDIR}/configs/proxy.conf
+  New Setup
+  Set Suite Variable  ${PROXY_PID}  ${RSPAMD_PID}
+  Set Suite Variable  ${PROXY_TMPDIR}  ${TMPDIR}
 
 Proxy Teardown
-  Shutdown Process With Children  ${PROXY_PID}
-  Shutdown Process With Children  ${SLAVE_PID}
-  Cleanup Temporary Directory  ${PROXY_TMPDIR}
-  Cleanup Temporary Directory  ${SLAVE_TMPDIR}
+  # Restore variables & run normal teardown
+  Set Suite Variable  ${RSPAMD_PID}  ${PROXY_PID}
+  Set Suite Variable  ${TMPDIR}  ${PROXY_TMPDIR}
+  Normal Teardown
+  # Do it again for slave
+  Set Suite Variable  ${RSPAMD_PID}  ${SLAVE_PID}
+  Set Suite Variable  ${TMPDIR}  ${SLAVE_TMPDIR}
+  Normal Teardown
index 8ad9d2bceb0761bb15dcf6043cc65b9f6193a3ae..2aab365383b016a290e3338019ef87c45203858f 100644 (file)
@@ -7,7 +7,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/antivirus.conf
 ${MESSAGE}      ${TESTDIR}/messages/spam_message.eml
 ${MESSAGE2}     ${TESTDIR}/messages/freemail.eml
 ${REDIS_SCOPE}  Suite
@@ -95,9 +95,8 @@ AVAST CACHE MISS
 
 *** Keywords ***
 Antivirus Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/antivirus.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  PORT_CLAM=${PORT_CLAM}  PORT_FPROT=${PORT_FPROT}  PORT_AVAST=${PORT_AVAST}
+  ...  PORT_FPROT2_DUPLICATE=${PORT_FPROT2_DUPLICATE}
   Run Redis
 
 Antivirus Teardown
index f3d7e7d8eb4b0374363c8bd3a44d2ecf19a6032c..1c8c07d58edf2a03c341a0d3a545cde028da83d4 100644 (file)
@@ -7,7 +7,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/p0f.conf
 ${MESSAGE}      ${TESTDIR}/messages/spam_message.eml
 ${MESSAGE2}     ${TESTDIR}/messages/freemail.eml
 ${REDIS_SCOPE}  Suite
@@ -80,14 +80,11 @@ p0f BAD RESPONSE
 
 *** Keywords ***
 p0f Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/p0f.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  P0F_SOCKET=${P0F_SOCKET}  URL_TLD=${URL_TLD}
   Run Redis
 
 p0f Teardown
   Normal Teardown
-  Shutdown Process With Children  ${REDIS_PID}
   Shutdown p0f
   Terminate All Processes    kill=True
 
index dd812b21e3a34b63755e5f5b326dbacfcdf4c306..afc7a83150a3e4151c56a1b380e05648cc7814f4 100644 (file)
@@ -7,7 +7,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/url_redirector.conf
 ${MESSAGE}      ${TESTDIR}/messages/redir.eml
 ${REDIS_SCOPE}  Suite
 ${RSPAMD_SCOPE}  Suite
@@ -31,16 +31,12 @@ Urlredirector Setup
   Set Suite Variable  ${REDIS_TMPDIR}  ${TMPDIR}
   Run Redis
   Run Dummy Http
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/url_redirector.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  URL_TLD=${URL_TLD}
 
 Urlredirector Teardown
   Normal Teardown
-  Shutdown Process With Children  ${REDIS_PID}
   #Stop Dummy Http
   Terminate All Processes    kill=True
-  Cleanup Temporary Directory  ${REDIS_TMPDIR}
 
 Stop Dummy Http
   ${http_pid} =  Get File  /tmp/dummy_http.pid
index ddbbf9799b35715ada3e01f51941f06b3d0a429c..4f1d6ea2b3893db7b0cf25a52699326712e2033d 100644 (file)
@@ -7,8 +7,9 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
+${CONFIG}        ${TESTDIR}/configs/milter.conf
 ${RSPAMD_SCOPE}  Suite
-${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
+${URL_TLD}       ${TESTDIR}/../lua/unit/test_tld.dat
 
 *** Test Cases ***
 ACCEPT
@@ -28,7 +29,7 @@ COMBINED TEST
 
 *** Keywords ***
 Milter Setup
-  Generic Setup  CONFIG=${TESTDIR}/configs/milter.conf
+  New Setup  URL_TLD=${URL_TLD}
 
 Milter Test
   [Arguments]  ${mtlua}
index d6573a3ebcab3ddc155ac70c8122fcedf2f9de5e..c8f7bf99bd3b767293ac94736cebec7791626d4d 100644 (file)
@@ -40,15 +40,10 @@ SSL Large HTTP request
   Expect Symbol  HTTP_SSL_LARGE
 
 *** Keywords ***
-Lua Setup
-  [Arguments]  ${LUA_SCRIPT}
-  Set Suite Variable  ${LUA_SCRIPT}
-  Generic Setup
-
 Http Setup
   Run Dummy Http
   Run Dummy Https
-  Lua Setup  ${TESTDIR}/lua/http.lua
+  New Setup  LUA_SCRIPT=${TESTDIR}/lua/http.lua  URL_TLD=${URL_TLD}
 
 Http Teardown
   ${http_pid} =  Get File  /tmp/dummy_http.pid
index 3d9aba126995041305d7cf972d95a8876a60dff2..d08a4c8e081e4fbaa0011cd8f1fbc9fdf3efa188 100644 (file)
@@ -52,7 +52,7 @@ Lua Setup
 Servers Setup
   Run Dummy Http
   Run Dummy Ssl
-  Lua Setup  ${TESTDIR}/lua/tcp.lua
+  New Setup  LUA_SCRIPT=${TESTDIR}/lua/tcp.lua  URL_TLD=${URL_TLD}
 
 Servers Teardown
   ${http_pid} =  Get File  /tmp/dummy_http.pid
index e68e2053ab2b53c72441029cce75dcef37c3a122..25a55dd2dc4b232f55a5aedd2cb6c84a64569305 100644 (file)
@@ -23,13 +23,8 @@ Sync API TCP get request when server is down
 
 
 *** Keywords ***
-Lua Setup
-  [Arguments]  ${LUA_SCRIPT}
-  Set Suite Variable  ${LUA_SCRIPT}
-  Generic Setup
-
 Http Setup
-  Lua Setup  ${TESTDIR}/lua/tcp.lua
+  New Setup  LUA_SCRIPT=${TESTDIR}/lua/tcp.lua  URL_TLD=${URL_TLD}
 
 Http Teardown
   Normal Teardown
index 169523330bffb3c1f7ea6e09f87ad0a844d159d5..307a6cdb03cc6a703b14ef71c8f769087858347c 100644 (file)
@@ -1,6 +1,6 @@
 *** Settings ***
 Test Setup      Redis Setup
-Test Teardown   Redis Teardown
+Test Teardown   Normal Teardown
 Library         Process
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
@@ -11,7 +11,7 @@ Suite Teardown  Terminate All Processes    kill=True
 *** Variables ***
 ${REDIS_SCOPE}  Test
 ${RSPAMD_SCOPE}  Test
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/redis.conf
 ${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
 ${MESSAGE}      ${TESTDIR}/messages/spam_message.eml
 
@@ -25,17 +25,6 @@ Redis client
   Expect Symbol With Exact Options  REDIS_ASYNC201809  test value
 
 *** Keywords ***
-Lua Setup
-  [Arguments]  ${LUA_SCRIPT}
-  Set Suite Variable  ${LUA_SCRIPT}
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/redis.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
-
 Redis Setup
-  Lua Setup  ${TESTDIR}/lua/redis.lua
+  New Setup  LUA_SCRIPT=${TESTDIR}/lua/redis.lua
   Run Redis
-
-Redis Teardown
-  Normal Teardown
-  Shutdown Process With Children  ${REDIS_PID}
index 223ada965c3694428960eed19eb960df67363738..9a67c61e6add10d742d33d68169d9f53860c66d6 100644 (file)
@@ -1,8 +1,8 @@
 *** Settings ***
 Documentation    Test the case when trying to connect to nowhere
 ...              (i.e. redis is not running)
-Test Setup      Redis Setup
-Test Teardown   Redis Teardown
+Test Setup      Dead Redis Setup
+Test Teardown   Normal Teardown
 Library         Process
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
@@ -13,7 +13,7 @@ Suite Teardown  Terminate All Processes    kill=True
 *** Variables ***
 ${REDIS_SCOPE}  Test
 ${RSPAMD_SCOPE}  Test
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/redis.conf
 ${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
 ${MESSAGE}      ${TESTDIR}/messages/spam_message.eml
 
@@ -26,16 +26,5 @@ Dead Redis client
   Expect Symbol With Exact Options  REDIS_ASYNC_ERROR  Connection refused
 
 *** Keywords ***
-Lua Setup
-  [Arguments]  ${LUA_SCRIPT}
-  Set Suite Variable  ${LUA_SCRIPT}
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/redis.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
-
-Redis Setup
-  Lua Setup  ${TESTDIR}/lua/redis.lua
-
-Redis Teardown
-  Normal Teardown
-#  Shutdown Process With Children  ${REDIS_PID}
+Dead Redis Setup
+  New Setup  LUA_SCRIPT=${TESTDIR}/lua/redis.lua
index fa13d6d1080cf4aa82a0cf74c92335dc61aef163..e08c1913e7a04a7bbde20f1c74a3e989f1cdfc4f 100644 (file)
@@ -30,7 +30,7 @@ Lua Setup
   Generic Setup
 
 Http Setup
-  Lua Setup  ${TESTDIR}/lua/dns.lua
+  New Setup  LUA_SCRIPT=${TESTDIR}/lua/dns.lua  URL_TLD=${URL_TLD}
 
 Http Teardown
   Normal Teardown
index f19e389a02604ad2f6be4e07616cde3644783e64..9e3b7f9be02bb2996ecfcce9efa31d07626f5300 100644 (file)
@@ -1,12 +1,12 @@
 *** Settings ***
-Test Setup      Regex Setup
-Test Teardown   Regex Teardown
+Test Setup      New Setup
+Test Teardown   Normal Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/regexp.conf
 ${MESSAGE}      ${TESTDIR}/messages/newlines.eml
 ${UTF_MESSAGE}  ${TESTDIR}/messages/utf.eml
 ${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
@@ -26,13 +26,3 @@ Newlines
   Expect Symbol With Option  FOUND_URL  https://google.com/maps/
   Expect Symbol With Option  FOUND_URL  https://www.google.com/search?q\=hello world&oq\=hello world&aqs\=chrome..69i57j0l5.3045j0j7&sourceid\=chrome&ie\=UTF-8
   Expect Symbol With Option  FOUND_URL  https://github.com/google/sanitizers/wiki/AddressSanitizer
-
-
-*** Keywords ***
-Regex Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/regexp.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
-
-Regex Teardown
-  Normal Teardown
index bf74a327e2a841e29279987b5aa097b4d0eedbfd..55bcc887afaf0d66493708a8ebe31e8895bc0f0a 100644 (file)
@@ -6,11 +6,11 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/selector.conf
 ${MESSAGE}      ${TESTDIR}/messages/subject1.eml
 ${UTF_MESSAGE}  ${TESTDIR}/messages/utf.eml
 ${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
-${RSPAMD_SCOPE}  Test
+${RSPAMD_SCOPE}  Suite
 
 
 *** Test Cases ***
@@ -22,9 +22,7 @@ Newlines
 
 *** Keywords ***
 Regex Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/selector.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  URL_TLD=${URL_TLD}
 
 Regex Teardown
   Normal Teardown
index ec8e12fb22841a0662d5163ed068af93704db510..a9323791ddce2d8f0450cbcbed9b041f7544700c 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}        ${TESTDIR}/configs/plugins.conf
+${CONFIG}        ${TESTDIR}/configs/regexp.conf
 ${MESSAGE}       ${TESTDIR}/messages/newlines.eml
 ${MESSAGE1}      ${TESTDIR}/messages/fws_fn.eml
 ${MESSAGE2}      ${TESTDIR}/messages/fws_fp.eml
@@ -117,9 +117,7 @@ REPLYTO_ADDR_EQ_FROM
 
 *** Keywords ***
 Rules Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/regexp.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  URL_TLD=${URL_TLD}
 
 Rules Teardown
   Normal Teardown
index b76544d975575428a9cff67e648a7a0e2c680002..9516e2c1a9467f1a8103f78fbe5ccb1fa4ef2246 100644 (file)
@@ -1,6 +1,6 @@
 *** Settings ***
-Suite Setup     Fnames Setup
-Suite Teardown  Fnames Teardown
+Suite Setup     FNames Setup
+Suite Teardown  Normal Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
@@ -18,13 +18,6 @@ FILE NAMES
   Expect Symbol With Option  TEST_FNAME  [삼성생명]2020.08.14 데일리 경제뉴스.pdf
   Expect Symbol With Option  TEST_FNAME  01029_402110_10620_RGT06902_PRT180ML_20200803_101820.pdf
 
-
-*** Keywords ***
-Fnames Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/regexp.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
-
-Fnames Teardown
-  Normal Teardown
-  Terminate All Processes    kill=True
+*** Keyword ***
+FNames Setup
+  New Setup  LUA_SCRIPT=${LUA_SCRIPT}
index 8b746bc0fa5218692fe6eaa8b911c199c9bddc0e..3ffbead4b9ac97b9bcfdccc53c4cd058a247fb8f 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/greylist.conf
 ${MESSAGE}      ${TESTDIR}/messages/spam_message.eml
 ${REDIS_SCOPE}  Suite
 ${RSPAMD_SCOPE}  Suite
@@ -28,9 +28,7 @@ GREYLIST PASS
 
 *** Keywords ***
 Greylist Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/greylist.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  URL_TLD=${URL_TLD}
   Run Redis
 
 Greylist Teardown
index 55f46e5fd072d306952bafc8de685586147aa14e..44c3268201b83fee76b2059b1006f965a1866ee8 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/rbl.conf
 ${MESSAGE}      ${TESTDIR}/messages/spam_message.eml
 ${RSPAMD_SCOPE}  Suite
 ${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
@@ -71,9 +71,7 @@ SELECTORS COMBINED
 
 *** Keywords ***
 Rbl Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/rbl.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  URL_TLD=${URL_TLD}
 
 Rbl Teardown
   Normal Teardown
index 3da02729b6112d5cf7ceafc0d6da93f244513da4..49f43117f7f239eda2710d38892a5d5863f422d7 100644 (file)
@@ -26,14 +26,9 @@ Errored UDP request
   Expect Symbol With Exact Options  UDP_FAIL  read timeout
 
 *** Keywords ***
-Lua Setup
-  [Arguments]  ${LUA_SCRIPT}
-  Set Suite Variable  ${LUA_SCRIPT}
-  Generic Setup
-
 UDP Setup
   Run Dummy UDP
-  Lua Setup  ${TESTDIR}/lua/udp.lua
+  New Setup  LUA_SCRIPT=${TESTDIR}/lua/udp.lua  URL_TLD=${URL_TLD}
 
 UDP Teardown
   ${udp_pid} =  Get File  /tmp/dummy_udp.pid
index 73623574b6a417afe875beccac4d207b469f47cc..ecfd02379ab9286e59cf3c615a53dfcc3d8dee30 100644 (file)
@@ -1,12 +1,12 @@
 *** Settings ***
-Suite Setup     ARC Signing Setup
-Suite Teardown  ARC Signing Teardown
+Suite Setup     New Setup
+Suite Teardown  Normal Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/arc_signing/simple.conf
 ${MESSAGE}      ${TESTDIR}/messages/dmarc/fail_none.eml
 ${MESSAGE_FAIL}      ${TESTDIR}/messages/dmarc/fail_none1.eml
 ${REDIS_SCOPE}  Suite
@@ -29,12 +29,3 @@ TEST NOT SIGNED - USERNAME WRONG DOMAIN
 TEST NOT SIGNED - USERNAME WRONG PUBKEY
   ${result} =  Scan Message With Rspamc  ${MESSAGE_FAIL}  -u  bob@invalid.za.org
   Should Not Contain  ${result.stdout}  ARC_SIGNED
-
-*** Keywords ***
-ARC Signing Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/arc_signing/simple.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
-
-ARC Signing Teardown
-  Normal Teardown
index 2fde59164e87a63cf54e606611b92c21e43741e4..b494a329864d1530f740f19c3c545767e3958d9d 100644 (file)
@@ -1,12 +1,12 @@
 *** Settings ***
 Suite Setup     ARC Signing Setup
-Suite Teardown  ARC Signing Teardown
+Suite Teardown  Normal Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/arc_signing/redis.conf
 ${MESSAGE}      ${TESTDIR}/messages/dmarc/fail_none.eml
 ${REDIS_SCOPE}  Suite
 ${RSPAMD_SCOPE}  Suite
@@ -23,14 +23,8 @@ TEST NOT SIGNED - USERNAME WRONG DOMAIN
 
 *** Keywords ***
 ARC Signing Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/arc_signing/redis.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
   Run Redis
   Redis HSET  TEST_DKIM_SELECTORS  cacophony.za.org  arc
   ${key} =  Get File  ${TESTDIR}/configs/dkim.key
   Redis HSET  TEST_DKIM_KEYS  arc.cacophony.za.org  ${key}
-
-ARC Signing Teardown
-  Normal Teardown
-  Shutdown Process With Children  ${REDIS_PID}
+  New Setup
index 6cbc00b44999ff17c425cd3ba911a0e1a44e2aa5..3f68034cec75201e349cad9a12fdcc057f898760 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}        ${TESTDIR}/configs/plugins.conf
+${CONFIG}        ${TESTDIR}/configs/arc.conf
 ${RSPAMD_SCOPE}  Suite
 ${URL_TLD}       ${TESTDIR}/../../contrib/publicsuffix/effective_tld_names.dat
 
@@ -22,6 +22,4 @@ ARC BAD CHECK
 
 *** Keywords ***
 ARC Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/arc.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  URL_TLD=${URL_TLD}
index 8ce3428381d64c8ec8f23da40d81b9b4c017b73c..b4851f7c31dbd5e244ef541a02ed23010b8abd1b 100644 (file)
@@ -1,6 +1,6 @@
 *** Settings ***
 Suite Setup      Neural Setup
-Suite Teardown   Neural Teardown
+Suite Teardown   Normal Teardown
 Library         Process
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
@@ -64,11 +64,5 @@ Check Neural SPAM INVERSE
 
 *** Keywords ***
 Neural Setup
-  ${TMPDIR} =    Make Temporary Directory
-  Set Suite Variable        ${TMPDIR}
   Run Redis
-  Generic Setup
-
-Neural Teardown
-  Shutdown Process With Children  ${REDIS_PID}
-  Normal Teardown
+  New Setup  URL_TLD=${URL_TLD}
index 22a42120eab5d5f1552f2eb2fc1e6b3f557b4d5b..21fc0093b9c7b494709b37838bf7fc2e68883c93 100644 (file)
@@ -1,6 +1,6 @@
 *** Settings ***
 Suite Setup      Neural Setup
-Suite Teardown   Neural Teardown
+Suite Teardown   Normal Teardown
 Library         Process
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
@@ -65,11 +65,5 @@ Check Neural SPAM - inverse
 
 *** Keywords ***
 Neural Setup
-  ${TMPDIR} =    Make Temporary Directory
-  Set Suite Variable        ${TMPDIR}
   Run Redis
-  Generic Setup
-
-Neural Teardown
-  Shutdown Process With Children  ${REDIS_PID}
-  Normal Teardown
+  New Setup  URL_TLD=${URL_TLD}
index 9045941260f2c03c7c236eb0d763d8ce882354f6..9174997d35a52c480e24c7a04d7ab2a9e00d7fe4 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/surbl.conf
 ${RSPAMD_SCOPE}  Suite
 ${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
 
@@ -163,9 +163,7 @@ SURBL url compose map 3
 
 *** Keywords ***
 Surbl Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/surbl.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup  URL_TLD=${URL_TLD}
 
 Surbl Teardown
   Normal Teardown
index 941d3c3441a4f85ab90517c533ec45669d8bd35d..e7d7810e8b4f3a36b0d6ff7a6b496de4f2aaaadc 100644 (file)
@@ -1,5 +1,5 @@
 *** Settings ***
-Suite Setup     Generic Setup
+Suite Setup     Magic Setup
 Suite Teardown  Simple Teardown
 Library         ${TESTDIR}/lib/rspamd.py
 Resource        ${TESTDIR}/lib/rspamd.robot
@@ -14,59 +14,62 @@ ${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
 *** Test Cases ***
 Magic detections bundle 1
   Scan File  ${TESTDIR}/messages/gargantua.eml
-  Expect Symbol  MAGIC_SYM_ZIP_2
-  Expect Symbol  MAGIC_SYM_RAR_3
-  Expect Symbol  MAGIC_SYM_EXE_4
-  Expect Symbol  MAGIC_SYM_ELF_5
-  Expect Symbol  MAGIC_SYM_LNK_6
-  Expect Symbol  MAGIC_SYM_CLASS_7
-  Expect Symbol  MAGIC_SYM_RTF_8
-  Expect Symbol  MAGIC_SYM_PDF_9
-  Expect Symbol  MAGIC_SYM_PS_10
-  Expect Symbol  MAGIC_SYM_CHM_11
-  Expect Symbol  MAGIC_SYM_DJVU_12
-  Expect Symbol  MAGIC_SYM_ARJ_13
-  Expect Symbol  MAGIC_SYM_CAB_14
-  Expect Symbol  MAGIC_SYM_ACE_15
-  Expect Symbol  MAGIC_SYM_TAR_16
-  Expect Symbol  MAGIC_SYM_BZ2_17
-  Expect Symbol  MAGIC_SYM_XZ_18
-  Expect Symbol  MAGIC_SYM_LZ4_19
-  Expect Symbol  MAGIC_SYM_ZST_20
-  Expect Symbol  MAGIC_SYM_DMG_21
-  Expect Symbol  MAGIC_SYM_ISO_22
-  Expect Symbol  MAGIC_SYM_ZOO_23
-  Expect Symbol  MAGIC_SYM_EPUB_24
-  Expect Symbol  MAGIC_SYM_XAR_25
-  Expect Symbol  MAGIC_SYM_PSD_26
-  Expect Symbol  MAGIC_SYM_PCX_27
-  Expect Symbol  MAGIC_SYM_TIFF_28
-  Expect Symbol  MAGIC_SYM_ICO_29
-  Expect Symbol  MAGIC_SYM_SWF_30
-  Expect Symbol  MAGIC_SYM_DOC_31
-  Expect Symbol  MAGIC_SYM_XLS_32
-  Expect Symbol  MAGIC_SYM_PPT_33
-  Expect Symbol  MAGIC_SYM_MSI_34
-  Expect Symbol  MAGIC_SYM_MSG_35
-  Expect Symbol  MAGIC_SYM_DOCX_36
-  Expect Symbol  MAGIC_SYM_XLSX_37
-  Expect Symbol  MAGIC_SYM_PPTX_38
-  Expect Symbol  MAGIC_SYM_ODT_39
-  Expect Symbol  MAGIC_SYM_ODS_40
-  Expect Symbol  MAGIC_SYM_ODP_41
-  Expect Symbol  MAGIC_SYM_7Z_42
-  Expect Symbol  MAGIC_SYM_VSD_43
-  Expect Symbol  MAGIC_SYM_PNG_44
-  Expect Symbol  MAGIC_SYM_JPG_45
-  Expect Symbol  MAGIC_SYM_GIF_46
-  Expect Symbol  MAGIC_SYM_BMP_47
-  Expect Symbol  MAGIC_SYM_TXT_48
-  Expect Symbol  MAGIC_SYM_HTML_49
-  Expect Symbol  MAGIC_SYM_CSV_50
-  Expect Symbol  MAGIC_SYM_DWG_51
-  Expect Symbol  MAGIC_SYM_JAR_52
-  Expect Symbol  MAGIC_SYM_APK_53
-  Expect Symbol  MAGIC_SYM_BAT_54
-  Expect Symbol  MAGIC_SYM_ICS_55
-  Expect Symbol  MAGIC_SYM_VCF_56
+  Expect Symbols  MAGIC_SYM_ZIP_2
+  ...  MAGIC_SYM_RAR_3
+  ...  MAGIC_SYM_EXE_4
+  ...  MAGIC_SYM_ELF_5
+  ...  MAGIC_SYM_LNK_6
+  ...  MAGIC_SYM_CLASS_7
+  ...  MAGIC_SYM_RTF_8
+  ...  MAGIC_SYM_PDF_9
+  ...  MAGIC_SYM_PS_10
+  ...  MAGIC_SYM_CHM_11
+  ...  MAGIC_SYM_DJVU_12
+  ...  MAGIC_SYM_ARJ_13
+  ...  MAGIC_SYM_CAB_14
+  ...  MAGIC_SYM_ACE_15
+  ...  MAGIC_SYM_TAR_16
+  ...  MAGIC_SYM_BZ2_17
+  ...  MAGIC_SYM_XZ_18
+  ...  MAGIC_SYM_LZ4_19
+  ...  MAGIC_SYM_ZST_20
+  ...  MAGIC_SYM_DMG_21
+  ...  MAGIC_SYM_ISO_22
+  ...  MAGIC_SYM_ZOO_23
+  ...  MAGIC_SYM_EPUB_24
+  ...  MAGIC_SYM_XAR_25
+  ...  MAGIC_SYM_PSD_26
+  ...  MAGIC_SYM_PCX_27
+  ...  MAGIC_SYM_TIFF_28
+  ...  MAGIC_SYM_ICO_29
+  ...  MAGIC_SYM_SWF_30
+  ...  MAGIC_SYM_DOC_31
+  ...  MAGIC_SYM_XLS_32
+  ...  MAGIC_SYM_PPT_33
+  ...  MAGIC_SYM_MSI_34
+  ...  MAGIC_SYM_MSG_35
+  ...  MAGIC_SYM_DOCX_36
+  ...  MAGIC_SYM_XLSX_37
+  ...  MAGIC_SYM_PPTX_38
+  ...  MAGIC_SYM_ODT_39
+  ...  MAGIC_SYM_ODS_40
+  ...  MAGIC_SYM_ODP_41
+  ...  MAGIC_SYM_7Z_42
+  ...  MAGIC_SYM_VSD_43
+  ...  MAGIC_SYM_PNG_44
+  ...  MAGIC_SYM_JPG_45
+  ...  MAGIC_SYM_GIF_46
+  ...  MAGIC_SYM_BMP_47
+  ...  MAGIC_SYM_TXT_48
+  ...  MAGIC_SYM_HTML_49
+  ...  MAGIC_SYM_CSV_50
+  ...  MAGIC_SYM_DWG_51
+  ...  MAGIC_SYM_JAR_52
+  ...  MAGIC_SYM_APK_53
+  ...  MAGIC_SYM_BAT_54
+  ...  MAGIC_SYM_ICS_55
+  ...  MAGIC_SYM_VCF_56
 
+*** Keywords ***
+Magic Setup
+  New Setup  LUA_SCRIPT=${LUA_SCRIPT}
index b095e78bf09bdbb2a9a38cb3007cb3b92d12c8c4..553a5936312bbfa194d8e4d43d1622b5ef7c45ad 100644 (file)
@@ -6,7 +6,7 @@ Resource        ${TESTDIR}/lib/rspamd.robot
 Variables       ${TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}       ${TESTDIR}/configs/plugins.conf
+${CONFIG}       ${TESTDIR}/configs/force_actions.conf
 ${URL_TLD}      ${TESTDIR}/../lua/unit/test_tld.dat
 ${MESSAGE}             ${TESTDIR}/messages/url7.eml
 ${RSPAMD_SCOPE}  Suite
@@ -45,9 +45,7 @@ FORCE ACTIONS from add header to reject
 
 *** Keywords ***
 Force Actions Setup
-  ${PLUGIN_CONFIG} =  Get File  ${TESTDIR}/configs/force_actions.conf
-  Set Suite Variable  ${PLUGIN_CONFIG}
-  Generic Setup  PLUGIN_CONFIG
+  New Setup
 
 Force Actions Teardown
   Normal Teardown
index d38c69a42710d150720322a962bca5456a9db617..8b971a58893e62f5da53dc027cc953dee3af7219 100644 (file)
@@ -1,18 +1,20 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 redis {
-  servers = "${REDIS_ADDR}:${REDIS_PORT}";
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
 }
 antivirus {
  clam {
     attachments_only = false;
     symbol = "CLAM_VIRUS";
     type = "clamav";
-    servers = "127.0.0.1:${PORT_CLAM}";
+    servers = "127.0.0.1:{= env.PORT_CLAM =}";
   }
   fprot {
     attachments_only = false;
     symbol = "FPROT_VIRUS";
     type = "fprot";
-    servers = "127.0.0.1:${PORT_FPROT}";
+    servers = "127.0.0.1:{= env.PORT_FPROT =}";
     patterns {
       FPROT_EICAR = "^EICAR_Test_File$";
     }
@@ -22,7 +24,7 @@ antivirus {
     attachments_only = false;
     symbol = "FPROT2_VIRUS_DUPLICATE_DEFAULT";
     type = "fprot";
-    servers = "127.0.0.1:${PORT_FPROT2_DUPLICATE}";
+    servers = "127.0.0.1:{= env.PORT_FPROT2_DUPLICATE =}";
     patterns = [
       {FPROT2_VIRUS_DUPLICATE_PATTERN = "^E"},
       {FPROT2_VIRUS_DUPLICATE_NOPE1 = "^EI",
@@ -36,6 +38,6 @@ antivirus {
       attachments_only = false;
       symbol = "AVAST_VIRUS";
       type = "avast";
-      servers = "127.0.0.1:${PORT_AVAST}";
+      servers = "127.0.0.1:{= env.PORT_AVAST =}";
   }
 }
index 5f8797fe8dea3796a6f96edf0255360834b9eae3..8a8a525c75cd71345f0b314ae8a3bf8f68e92e47 100644 (file)
@@ -1 +1,3 @@
-arc { }
\ No newline at end of file
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
+arc { }
index b2a9aa1341c8195d30b9c656b5dd68b91aacb0f3..0d049c372fd2961b15c6e4240288950f4e4084f9 100644 (file)
@@ -1,8 +1,10 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 arc {
   use_redis = true;
   key_prefix = "TEST_DKIM_KEYS";
   selector_prefix = "TEST_DKIM_SELECTORS";
 }
 redis {
-  servers = "${REDIS_ADDR}:${REDIS_PORT}";
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
 }
index 5807d73460bae616d508063af544265703613567..f559e61bda41934b8544a623d5fede0ef68a1935 100644 (file)
@@ -1,5 +1,7 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 arc {
-  path = "${TESTDIR}/configs/dkim.key";
+  path = "{= env.TESTDIR =}/configs/dkim.key";
   check_pubkey = true;
   allow_pubkey_mismatch = false;
   selector = "dkim";
index 71e453deff161b3663c9c301ef19810ff7d2f063..28b645e60d84e664c074069e7091f0b4c3736932 100644 (file)
@@ -1,27 +1,27 @@
 options = {
-    pidfile = "${TMPDIR}/rspamd.pid"
+    pidfile = "{= env.TMPDIR =}/rspamd.pid"
 }
 logging = {
     type = "file",
     level = "debug"
-    filename = "${TMPDIR}/rspamd.log"
+    filename = "{= env.TMPDIR =}/rspamd.log"
 }
 
 worker {
     type = normal
-    bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL}
+    bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}"
     count = 1
     task_timeout = 60s;
 }
 worker {
     type = controller
-    bind_socket = ${LOCAL_ADDR}:${PORT_CONTROLLER}
+    bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}"
     count = 1
     secure_ip = ["127.0.0.1", "::1"];
-    stats_path = "${TMPDIR}/stats.ucl"
+    stats_path = "{= env.TMPDIR =}/stats.ucl"
 }
-lua = "${TESTDIR}/lua/test_coverage.lua";
-lua = ${LUA_SCRIPT};
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
+lua = {= env.LUA_SCRIPT =};
 
 composites {
     EXPRESSIONS {
@@ -77,7 +77,7 @@ composites {
       score = 6.0;
     }
     SYMOPTS3 {
-      expression = 'OPTS[sym2,/FoO\\//i]';
+      expression = 'OPTS[sym2,/FoO\//i]';
       score = 6.0;
     }
     SYMOPTS4 {
index cc2f6f25073ae5e07ff9ee8d5c021e6d80b79a2a..50712d17b27807a2695036480e73b78ad9b73bf5 100644 (file)
@@ -1,35 +1,17 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 options = {
   filters = ["dkim"]
-  pidfile = "${TMPDIR}/rspamd.pid"
+  pidfile = "{= env.TMPDIR =}/rspamd.pid"
   dns {
     retransmits = 10;
     timeout = 2s;
-    fake_records = [{ # ed25519
-      name = "test._domainkey.example.com";
-      type = txt;
-      replies = ["k=ed25519; p=yi50DjK5O9pqbFpNHklsv9lqaS0ArSYu02qp1S0DW1Y="];
-    },
-    {
-      name = "brisbane._domainkey.football.example.com";
-      type = txt;
-      replies = ["v=DKIM1; k=ed25519; p=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="];
-    },
-    {
-      name = "test._domainkey.football.example.com";
-      type = txt;
-      replies = ["v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHlOQoBTzWRiGs5V6NpP3idY6Wk08a5qhdR6wy5bdOKb2jLQiY/J16JYi0Qvx/byYzCNb3W91y3FutACDfzwQ/BC/e/8uBsCR+yz1Lxj+PL6lHvqMKrM3rG4hstT5QjvHO9PzoxZyVYLzBfO2EeC3Ip3G+2kryOTIKT+l/K4w3QIDAQAB"],
-    },
-    {
-      name = "dkim._domainkey.cacophony.za.org",
-      type = "txt";
-      replies = ["v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXtxBE5IiNRMcq2/lc2zErfdCvDFyQNBnMjbOjBQrPST2k4fdGbtpe5Iu5uS01Met+dAEf94XL8I0hwmYw+n70PP834zfJGi2egwGqrakpaWsCDPvIJZLkxJCJKQRA/zrQ622uEXdvYixVbsEGVw7U4wAGSmT5rU2eU1y63AlOlQIDAQAB"];
-    }];
   }
 }
 logging = {
   type = "file",
   level = "debug"
-  filename = "${TMPDIR}/rspamd.log"
+  filename = "{= env.TMPDIR =}/rspamd.log"
 }
 metric = {
   name = "default",
@@ -41,21 +23,21 @@ metric = {
 
 worker {
   type = normal
-  bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL}
+  bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}"
   count = 1
   keypair {
-    pubkey = "${KEY_PUB1}";
-    privkey = "${KEY_PVT1}";
+    pubkey = "{= env.KEY_PUB1 =}";
+    privkey = "{= env.KEY_PVT1 =}";
   }
   task_timeout = 60s;
 }
 
 worker {
         type = controller
-        bind_socket = ${LOCAL_ADDR}:${PORT_CONTROLLER}
+        bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}"
         count = 1
         secure_ip = ["127.0.0.1", "::1"];
-        stats_path = "${TMPDIR}/stats.ucl"
+        stats_path = "{= env.TMPDIR =}/stats.ucl"
 }
 
 dkim {
@@ -65,7 +47,7 @@ return function(task)
   local dodkim = task:get_request_header('dodkim')
   if not dodkim then return end
   return {
-    key = "${TESTDIR}/configs/dkim.key",
+    key = "{= env.TESTDIR =}/configs/dkim.key",
     domain = "cacophony.za.org",
     selector = "dkim"
   }
@@ -79,6 +61,6 @@ EOD;
   skip_multi = false;
 }
 modules {
-    path = "${TESTDIR}/../../src/plugins/lua/"
+    path = "{= env.TESTDIR =}/../../src/plugins/lua/"
 }
-lua = "${TESTDIR}/lua/test_coverage.lua";
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
index 1a93c9e0b08fc686937ff5b4fe54b22bad49c885..a8cdfaa78ac4d43a7758cc2e295e3f8612562bf0 100644 (file)
@@ -1,5 +1,7 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 dkim_signing {
-  path = "${TESTDIR}/configs/dkim-eddsa.key";
+  path = "{= env.TESTDIR =}/configs/dkim-eddsa.key";
   selector = "eddsa";
   check_pubkey = true;
   allow_pubkey_mismatch = false;
index 48b1cec16dc40357c937da533bcdff27b7a02ff0..b7913cd0a3e904b350368dc9aa704f5e959d98cb 100644 (file)
@@ -1,5 +1,7 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 dkim_signing {
-  path = "${KEY_DIR}/dkim-eddsa.key";
+  path = "{= env.KEY_DIR =}/dkim-eddsa.key";
   selector = "eddsa";
   check_pubkey = true;
   allow_pubkey_mismatch = false;
index 263ed0b4e9e90d4cebbc60f3293c983b2fa02abf..a373e16b07de1d5e08470a0ccc37837535aae669 100644 (file)
@@ -1,8 +1,8 @@
 options = {
        filters = ["dkim"]
-       url_tld = "${URL_TLD}"
-       pidfile = "${TMPDIR}/rspamd.pid"
-       lua_path = "${INSTALLROOT}/share/rspamd/lib/?.lua"
+       url_tld = "{= env.URL_TLD =}"
+       pidfile = "{= env.TMPDIR =}/rspamd.pid"
+       lua_path = "{= env.INSTALLROOT =}/share/rspamd/lib/?.lua"
        dns {
                nameserver = ["8.8.8.8", "8.8.4.4"];
                retransmits = 10;
@@ -12,7 +12,7 @@ options = {
 logging = {
        type = "file",
        level = "debug"
-       filename = "${TMPDIR}/rspamd.log"
+       filename = "{= env.TMPDIR =}/rspamd.log"
 }
 metric = {
        name = "default",
@@ -23,16 +23,16 @@ metric = {
 }
 worker {
        type = normal
-       bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL}
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}"
        count = 1
        task_timeout = 60s;
 }
 worker {
         type = controller
-        bind_socket = ${LOCAL_ADDR}:${PORT_CONTROLLER}
+        bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}"
         count = 1
         secure_ip = ["127.0.0.1", "::1"];
-        stats_path = "${TMPDIR}/stats.ucl"
+        stats_path = "{= env.TMPDIR =}/stats.ucl"
 }
 worker {
        type = "rspamd_proxy";
@@ -40,28 +40,28 @@ worker {
        timeout = 120;
        upstream {
                local {
-                       hosts = "${LOCAL_ADDR}:${PORT_NORMAL}";
+                       hosts = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}";
                        default = true;
                }
        }
-       bind_socket = "${LOCAL_ADDR}:${PORT_PROXY}";
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_PROXY =}";
        milter = true;
 }
 dkim_signing {
   domain {
     cacophony.za.org {
       selectors = {
-        path: "${TESTDIR}/configs/dkim.key";
+        path: "{= env.TESTDIR =}/configs/dkim.key";
         selector: "dkim";
       }
       selectors = {
-        path: "${TESTDIR}/configs/dkim-eddsa.key";
+        path: "{= env.TESTDIR =}/configs/dkim-eddsa.key";
         selector: "eddsa";
      }
    }
     invalid.za.org {
       selectors = [ 
-        { path: "${TESTDIR}/configs/dkim-eddsa.key";
+        { path: "{= env.TESTDIR =}/configs/dkim-eddsa.key";
           selector: "eddsa"; }
       ]
    }
@@ -69,8 +69,8 @@ dkim_signing {
   allow_pubkey_mismatch: true;
 }
 modules {
-    path = "${TESTDIR}/../../src/plugins/lua/dkim_signing.lua"
+    path = "{= env.TESTDIR =}/../../src/plugins/lua/dkim_signing.lua"
 }
-lua = "${TESTDIR}/lua/test_coverage.lua";
-lua = "${INSTALLROOT}/share/rspamd/rules/rspamd.lua"
-lua = "${TESTDIR}/lua/params.lua"
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
+lua = "{= env.INSTALLROOT =}/share/rspamd/rules/rspamd.lua"
+lua = "{= env.TESTDIR =}/lua/params.lua"
index 0728421837e43569283c5a46997b157a187fc04e..029c2b5e993ad9358f94146b00b99214a8485ebb 100644 (file)
@@ -1,12 +1,14 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 dkim_signing {
   domain {
     cacophony.za.org {
       selectors = {
-        path: "${TESTDIR}/configs/dkim.key";
+        path: "{= env.TESTDIR =}/configs/dkim.key";
         selector: "dkim";
       }
       selectors = {
-        path: "${TESTDIR}/configs/dkim-eddsa.key";
+        path: "{= env.TESTDIR =}/configs/dkim-eddsa.key";
         selector: "eddsa";
      }
    }
index 903a13cf46d688449482acaa7122ac9f6049d0c9..02dc2eacde41d9d6686287eb15c07de68f7dac34 100644 (file)
@@ -1,8 +1,10 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 dkim_signing {
   use_redis = true;
   key_prefix = "TEST_DKIM_KEYS";
   selector_prefix = "TEST_DKIM_SELECTORS";
 }
 redis {
-  servers = "${REDIS_ADDR}:${REDIS_PORT}";
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
 }
index 9e63b7fc470ee77e97a706eef192859ede2dcf41..6993f1f21cb6bd38cfb71e5c122bdcc57a5e73bb 100644 (file)
@@ -1,3 +1,5 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 dkim_signing {
   signing_table = [
     "*@cacophony.za.org cacophony.za.org",
@@ -6,4 +8,4 @@ dkim_signing {
   key_table = [
     "cacophony.za.org %:eddsa:m5kGxtckRfsNe5EuYTe7bvkDjSh7LXaX3aXyIMPGLR0=",
   ];
-}
\ No newline at end of file
+}
index 14b8d5ec69b70b3778cbe219544527fae58a08ca..9b812ec7e29ca5004aaeda4e5ac5eb30a744e748 100644 (file)
@@ -1,5 +1,7 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 dkim_signing {
-  path = "${TESTDIR}/configs/dkim.key";
+  path = "{= env.TESTDIR =}/configs/dkim.key";
   check_pubkey = true;
   allow_pubkey_mismatch = false;
   use_http_headers = true;
index b6164f9d212accdb09154222bf0e20fb8a0ed135..130e5612c678180ed848c60c3251ba3e76f2cd5a 100644 (file)
@@ -1,6 +1,8 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 dmarc { }
 spf {
   external_relay = [
-       "${TESTDIR}/configs/maps/external_relay_ip.list",
+       "{= env.TESTDIR =}/configs/maps/external_relay_ip.list",
   ];
-}
\ No newline at end of file
+}
diff --git a/test/functional/configs/empty.conf b/test/functional/configs/empty.conf
new file mode 100644 (file)
index 0000000..e69de29
index 61732c4aca3b1e28ed5eff77f90c5e5afb80b250..aed3d05fac92c6af2503b356fb3e506cf3b79d91 100644 (file)
@@ -1,3 +1,5 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 force_actions {
        rules {
        FORCE_REJECT_TO_ADD_HEADER {
@@ -83,4 +85,4 @@ settings {
                }
        }
        }
-}
\ No newline at end of file
+}
diff --git a/test/functional/configs/fuzzy-encryption-key.conf b/test/functional/configs/fuzzy-encryption-key.conf
new file mode 100644 (file)
index 0000000..522081b
--- /dev/null
@@ -0,0 +1,2 @@
+# Setting this to null does not work out so it's hidden in an include
+encryption_key = {= env.FUZZY_ENCRYPTION_KEY =};
index bc4e72e7b5709b9dd6c28ed5967dd60cfa709ed4..8af1cfa3fa422459dfd98dd6b3f63381c8b8458d 100644 (file)
@@ -1,12 +1,12 @@
 redis {
-  servers = "${REDIS_ADDR}:${REDIS_PORT}";
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
 }
-lua = "${TESTDIR}/lua/test_coverage.lua";
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
 options = {
        filters = "fuzzy_check";
-       pidfile = "${TMPDIR}/rspamd.pid";
-       control_socket = "${TMPDIR}/rspamd.sock mode=0600";
-       url_tld = "${TESTDIR}/../lua/unit/test_tld.dat";
+       pidfile = "{= env.TMPDIR =}/rspamd.pid";
+       control_socket = "{= env.TMPDIR =}/rspamd.sock mode=0600";
+       url_tld = "{= env.TESTDIR =}/../lua/unit/test_tld.dat";
        dns {
                retransmits = 10;
                timeout = 2s;
@@ -15,7 +15,7 @@ options = {
 logging = {
        type = "file",
        level = "debug"
-       filename = "${TMPDIR}/rspamd.log"
+       filename = "{= env.TMPDIR =}/rspamd.log"
 }
 metric = {
        name = "default",
@@ -25,36 +25,41 @@ metric = {
        unknown_weight = 1
         symbol {
             weight = 10.0;
-            name = "${FLAG1_SYMBOL}";
+            name = "{= env.FLAG1_SYMBOL =}";
         }
         symbol {
             weight = -1.0;
-            name = "${FLAG2_SYMBOL}";
+            name = "{= env.FLAG2_SYMBOL =}";
         }
 }
 
 worker {
        type = normal
-       bind_socket = "${LOCAL_ADDR}:${PORT_NORMAL}";
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}";
        count = 1
        task_timeout = 60s;
 }
 
 worker {
         type = controller
-        bind_socket = "${LOCAL_ADDR}:${PORT_CONTROLLER}";
+        bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}";
         count = 1
-        secure_ip = ["${LOCAL_ADDR}"];
-       stats_path = "${TMPDIR}/stats.ucl";
+        secure_ip = ["{= env.LOCAL_ADDR =}"];
+        stats_path = "{= env.TMPDIR =}/stats.ucl";
 }
 
 worker {
        count = 1;
-       bind_socket = "${LOCAL_ADDR}:${PORT_FUZZY}";
+        backend = "{= env.FUZZY_BACKEND =}";
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_FUZZY =}";
        type = "fuzzy";
-       hashfile = "${TMPDIR}/fuzzy.db";
-       allow_update = ["${LOCAL_ADDR}"];
-${SETTINGS_FUZZY_WORKER}
+       hashfile = "{= env.TMPDIR =}/fuzzy.db";
+       allow_update = ["{= env.LOCAL_ADDR =}"];
+       encrypted_only = {= env.FUZZY_ENCRYPTED_ONLY =};
+       keypair {
+               privkey = "{= env.KEY_PVT1 =}";
+               pubkey = "{= env.KEY_PUB1 =}";
+       }
 }
 
 fuzzy_check {
@@ -65,23 +70,25 @@ fuzzy_check {
        rule {
          min_bytes = 0;
          min_length = 0;
-               algorithm = "${ALGORITHM}";
-               servers = "${LOCAL_ADDR}:${PORT_FUZZY}";
+               algorithm = "{= env.FUZZY_ALGORITHM =}";
+               servers = "{= env.LOCAL_ADDR =}:{= env.PORT_FUZZY =}";
                symbol = "R_TEST_FUZZY";
                max_score = 10.0;
                mime_types = ["application/*"];
                read_only = false;
                skip_unknown = true;
-               skip_hashes = "${TMPDIR}/skip_hash.map";
-${SETTINGS_FUZZY_CHECK}
+               skip_hashes = "{= env.TMPDIR =}/skip_hash.map";
+               fuzzy_key = {= env.FUZZY_KEY =};
+               fuzzy_shingles_key = {= env.FUZZY_SHINGLES_KEY =};
+.include "{= env.FUZZY_INCLUDE =}";
                fuzzy_map = {
-                       ${FLAG1_SYMBOL} {
+                       R_TEST_FUZZY_DENIED {
                                max_score = 10.0;
-                               flag = ${FLAG1_NUMBER};
+                               flag = {= env.FLAG1_NUMBER =};
                        }
-                       ${FLAG2_SYMBOL} {
+                       R_TEST_FUZZY_WHITE {
                                max_score = 1.0;
-                               flag = ${FLAG2_NUMBER};
+                               flag = {= env.FLAG2_NUMBER =};
                        }
                }
        }
index 5e12accf9c133ef13c8ba2a0f9fa445e60de6306..d47500ce80f4a1e607de871e5e4a4be342ff373e 100644 (file)
@@ -1,5 +1,7 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 redis {
-  servers = "${REDIS_ADDR}:${REDIS_PORT}";
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
 }
 greylist {
   check_local = true;
index 2bde672fe38b54bd49a91583dd8221c38d3d8ba7..8798bff37ef4cd689b7baf1dd878c4a7dbf18a7c 100644 (file)
@@ -1,25 +1,25 @@
 options = {
-    pidfile = "${TMPDIR}/rspamd.pid"
+    pidfile = "{= env.TMPDIR =}/rspamd.pid"
 }
 logging = {
     type = "file",
     level = "debug"
-    filename = "${TMPDIR}/rspamd.log"
+    filename = "{= env.TMPDIR =}/rspamd.log"
 }
 
 worker {
     type = normal
-    bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL}
+    bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}"
     count = 1
     task_timeout = 60s;
 }
 worker {
     type = controller
-    bind_socket = ${LOCAL_ADDR}:${PORT_CONTROLLER}
+    bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}"
     count = 1
     secure_ip = ["127.0.0.1", "::1"];
-    stats_path = "${TMPDIR}/stats.ucl"
+    stats_path = "{= env.TMPDIR =}/stats.ucl"
 }
 
-lua = "${TESTDIR}/lua/test_coverage.lua";
-lua = ${LUA_SCRIPT};
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
+lua = "{= env.LUA_SCRIPT =}";
index ebdcff860fa73a40846ca2421b6bf4d47951884f..1d36536dd8271c0139ab487a925aeaf9b09319f0 100644 (file)
@@ -1,8 +1,8 @@
 options = {
        filters = ["spf", "dkim", "regexp"]
-       url_tld = "${URL_TLD}"
-       pidfile = "${TMPDIR}/rspamd.pid"
-       map_watch_interval = ${MAP_WATCH_INTERVAL};
+       url_tld = "{= env.URL_TLD =}"
+       pidfile = "{= env.TMPDIR =}/rspamd.pid"
+       map_watch_interval = {= env.MAP_WATCH_INTERVAL =};
        dns {
                retransmits = 10;
                timeout = 2s;
@@ -24,7 +24,7 @@ options = {
 logging = {
        type = "file",
        level = "debug"
-       filename = "${TMPDIR}/rspamd.log"
+       filename = "{= env.TMPDIR =}/rspamd.log"
        log_usec = true;
 }
 metric = {
@@ -37,16 +37,16 @@ metric = {
 
 worker {
        type = normal
-       bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL}
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}"
        count = 1
        task_timeout = 10s;
 }
 worker {
        type = controller
-       bind_socket = ${LOCAL_ADDR}:${PORT_CONTROLLER}
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}"
        count = 1
        secure_ip = ["127.0.0.1", "::1"];
-       stats_path = "${TMPDIR}/stats.ucl"
+       stats_path = "{= env.TMPDIR =}/stats.ucl"
 }
-lua = "${TESTDIR}/lua/test_coverage.lua";
-lua = ${LUA_SCRIPT};
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
+lua = "{= env.LUA_SCRIPT =}";
index 49f5cb568ca87ec72d3cbda48cb3e234351ee343..ce024299a9974ca8ae9a034f60c36ab97bd58672 100644 (file)
@@ -1,9 +1,11 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 mid = {
     source = {
         url = [
             "https://maps.rspamd.com/rspamd/mid.inc.zst",
-            "fallback+file://${TESTDIR}/../../../conf/mid.inc",
-            "file://${TESTDIR}/configs/maps/mid.list"
+            "fallback+file://{= env.TESTDIR =}/../../../conf/mid.inc",
+            "file://{= env.TESTDIR =}/configs/maps/mid.list"
         ];
     }
 }
index e09ee48d85c21327a7989355aa3638361ad5fb50..aaf148c12c763fff09c76d0d1011f999077a5130 100644 (file)
@@ -1,8 +1,8 @@
 options = {
        filters = ["spf", "dkim", "regexp"]
-       url_tld = "${URL_TLD}"
-       pidfile = "${TMPDIR}/rspamd.pid"
-       lua_path = "${INSTALLROOT}/share/rspamd/lib/?.lua";
+       url_tld = "{= env.URL_TLD =}"
+       pidfile = "{= env.TMPDIR =}/rspamd.pid"
+       lua_path = "{= env.INSTALLROOT =}/share/rspamd/lib/?.lua";
        enable_test_patterns = true;
        dns {
                nameserver = ["8.8.8.8", "8.8.4.4"];
@@ -13,7 +13,7 @@ options = {
 logging = {
        type = "file",
        level = "debug"
-       filename = "${TMPDIR}/rspamd.log"
+       filename = "{= env.TMPDIR =}/rspamd.log"
 }
 metric = {
        name = "default",
@@ -24,16 +24,16 @@ metric = {
 }
 worker {
        type = normal
-       bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL}
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}"
        count = 1
        task_timeout = 60s;
 }
 worker {
         type = controller
-        bind_socket = ${LOCAL_ADDR}:${PORT_CONTROLLER}
+        bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}"
         count = 1
         secure_ip = ["127.0.0.1", "::1"];
-        stats_path = "${TMPDIR}/stats.ucl"
+        stats_path = "{= env.TMPDIR =}/stats.ucl"
 }
 worker {
        type = "rspamd_proxy";
@@ -41,19 +41,19 @@ worker {
        timeout = 120;
        upstream {
                local {
-                       hosts = "${LOCAL_ADDR}:${PORT_NORMAL}";
+                       hosts = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}";
                        default = true;
                }
        }
-       bind_socket = "${LOCAL_ADDR}:${PORT_PROXY}";
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_PROXY =}";
        milter = true;
 }
 modules {
-    path = "${TESTDIR}/../../src/plugins/lua/"
+    path = "{= env.TESTDIR =}/../../src/plugins/lua/"
 }
-lua = "${TESTDIR}/lua/test_coverage.lua";
-lua = "${INSTALLROOT}/share/rspamd/rules/rspamd.lua"
-lua = "${TESTDIR}/lua/params.lua"
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
+lua = "{= env.INSTALLROOT =}/share/rspamd/rules/rspamd.lua"
+lua = "{= env.TESTDIR =}/lua/params.lua"
 milter_headers {
        extended_spam_headers = true;
        skip_local = false;
index e28feba985ed3bd9ef59444db92ef2d48ee0a481..82bd4187c9b7537015745f7490ae0b0db9d702b4 100644 (file)
@@ -1,7 +1,9 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 mime_types {
     file = [
       "https://maps.rspamd.com/rspamd/mime_types.inc.zst",
-      "fallback+file://${TESTDIR}/../../../conf/mime_types.inc"
+      "fallback+file://{= env.TESTDIR =}/../../../conf/mime_types.inc"
      ];
     extension_map {
         html = "text/html";
@@ -15,5 +17,5 @@ mime_types {
             "application/pdf",
         ]
     }
-    filename_whitelist = "${TESTDIR}/configs/maps/mime_types.wl";
+    filename_whitelist = "{= env.TESTDIR =}/configs/maps/mime_types.wl";
 }
index 9158f657c891ebeb9bf18d934ddad9cda2111f3c..c59c1ac57e9576e23f0d2a19769e61ab7d7d3676 100644 (file)
@@ -1,8 +1,10 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 asn {
 }
 spf {}
 redis {
-  servers = "${REDIS_ADDR}:${REDIS_PORT}";
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
   expand_keys = true;
 }
 multimap {
@@ -12,76 +14,76 @@ multimap {
   }
   IP_MAP {
     type = "ip";
-    map = "${TESTDIR}/configs/maps/ip.list";
+    map = "{= env.TESTDIR =}/configs/maps/ip.list";
   }
   FROM_MAP {
     type = "from";
     filter = "email:domain";
-    map = "${TESTDIR}/configs/maps/domains.list";
+    map = "{= env.TESTDIR =}/configs/maps/domains.list";
   }
   FREEMAIL_CC {
     type = "header";
     header = "Cc";
     filter = "email:domain";
-    map = "${TESTDIR}/configs/maps/domains.list.2";
+    map = "{= env.TESTDIR =}/configs/maps/domains.list.2";
     score = 1.0;
   }
   REGEXP_MAP {
     type = "from";
     filter = "email:addr";
     regexp = true;
-    map = "${TESTDIR}/configs/maps/regexp.list";
+    map = "{= env.TESTDIR =}/configs/maps/regexp.list";
   }
   DEPS_MAP {
     type = "from";
     filter = "email:addr";
     regexp = true;
-    map = "${TESTDIR}/configs/maps/regexp.list";
+    map = "{= env.TESTDIR =}/configs/maps/regexp.list";
     require_symbols = "(R_SPF_ALLOW|R_SPF_DNSFAIL) & REGEXP_MAP & !FROM_MAP";
   }
   RCPT_DOMAIN {
     type = "rcpt";
     filter = "email:domain";
-    map = "${TESTDIR}/configs/maps/domains.list";
+    map = "{= env.TESTDIR =}/configs/maps/domains.list";
   }
   RCPT_USER {
     type = "rcpt";
     filter = "email:user";
-    map = "${TESTDIR}/configs/maps/users.list";
+    map = "{= env.TESTDIR =}/configs/maps/users.list";
   }
   RCPT_MAP {
     type = "rcpt";
     filter = "email:addr";
     symbols = ["SYM1"];
-    map = "${TESTDIR}/configs/maps/multiple.list";
+    map = "{= env.TESTDIR =}/configs/maps/multiple.list";
     score = 1.0;
   }
   RCPT_MAP_NOMULTISYM {
     type = "rcpt";
     filter = "email:addr";
     disable_multisymbol = true;
-    map = "${TESTDIR}/configs/maps/multiple.list";
+    map = "{= env.TESTDIR =}/configs/maps/multiple.list";
     score = 1.0;
   }
   HEADER_MAP {
     type = "header";
     header = "To";
     filter = "email:name";
-    map = "${TESTDIR}/configs/maps/utf.list";
+    map = "{= env.TESTDIR =}/configs/maps/utf.list";
     regexp = true;
   }
   HOSTNAME_MAP {
     type = "hostname";
-    map = "${TESTDIR}/configs/maps/domains.list";
+    map = "{= env.TESTDIR =}/configs/maps/domains.list";
   }
   HOSTNAME_TOP_MAP {
     type = "hostname";
     filter = "top";
-    map = "${TESTDIR}/configs/maps/top.list";
+    map = "{= env.TESTDIR =}/configs/maps/top.list";
   }
   CDB_HOSTNAME {
     type = "hostname";
-    map = "cdb://${TESTDIR}/configs/maps/domains.cdb";
+    map = "cdb://{= env.TESTDIR =}/configs/maps/domains.cdb";
   }
   REDIS_HOSTNAME {
     type = "hostname";
@@ -89,7 +91,7 @@ multimap {
   }
   REDIS_HOSTNAME_EXPANSION {
     type = "hostname";
-    map = "redis://\${ip}.\${principal_recipient_domain}";
+    map = "redis://${ip}.${principal_recipient_domain}";
   }
   REDIS_IPADDR {
     type = "ip";
@@ -151,12 +153,12 @@ multimap {
   RCVD_TEST_01 {
     type = "received";
     max_pos = 1;
-    map = "${TESTDIR}/configs/maps/rcvd.list";
+    map = "{= env.TESTDIR =}/configs/maps/rcvd.list";
   }
   RCVD_TEST_02 {
     type = "received";
     min_pos = -1;
-    map = "${TESTDIR}/configs/maps/rcvd.list";
+    map = "{= env.TESTDIR =}/configs/maps/rcvd.list";
   }
   RCVD_TEST_REDIS_01 {
     type = "received";
@@ -164,13 +166,13 @@ multimap {
   }
   RCVD_AUTHED_ONE {
     type = "received";
-    map = "${TESTDIR}/configs/maps/rcvd2.list";
+    map = "{= env.TESTDIR =}/configs/maps/rcvd2.list";
     flags = ["authenticated"];
     nflags = ["ssl"];
   }
   RCVD_AUTHED_TWO {
     type = "received";
-    map = "${TESTDIR}/configs/maps/rcvd2.list";
+    map = "{= env.TESTDIR =}/configs/maps/rcvd2.list";
     flags = ["authenticated", "ssl"];
   }
   COMBINED_MAP_AND {
@@ -178,11 +180,11 @@ multimap {
     rules {
       ip = {
         type = "radix";
-        map = "${TESTDIR}/configs/maps/ip.list";
+        map = "{= env.TESTDIR =}/configs/maps/ip.list";
         selector = "ip";
       }
       from {
-        map = "${TESTDIR}/configs/maps/domains.list";
+        map = "{= env.TESTDIR =}/configs/maps/domains.list";
         selector = "from:domain";
       }
     }
@@ -195,11 +197,11 @@ multimap {
     rules {
       ip = {
         type = "radix";
-        map = "${TESTDIR}/configs/maps/ip.list";
+        map = "{= env.TESTDIR =}/configs/maps/ip.list";
         selector = "ip";
       }
       from {
-        map = "${TESTDIR}/configs/maps/domains.list";
+        map = "{= env.TESTDIR =}/configs/maps/domains.list";
         selector = "from:domain";
       }
     }
index 871a549fe551642f51114e35745fa3a337aaf258..7a7f36ffce60cb80bfe72a722b09dfd4673b783a 100644 (file)
@@ -1,7 +1,7 @@
 options = {
-  url_tld = "${URL_TLD}"
-  pidfile = "${TMPDIR}/rspamd.pid"
-  lua_path = "${INSTALLROOT}/share/rspamd/lib/?.lua"
+  url_tld = "{= env.URL_TLD =}"
+  pidfile = "{= env.TMPDIR =}/rspamd.pid"
+  lua_path = "{= env.INSTALLROOT =}/share/rspamd/lib/?.lua"
   filters = [];
   explicit_modules = ["settings"];
 }
@@ -9,7 +9,7 @@ options = {
 logging = {
   type = "file",
   level = "debug"
-  filename = "${TMPDIR}/rspamd.log"
+  filename = "{= env.TMPDIR =}/rspamd.log"
   log_usec = true;
 }
 metric = {
@@ -22,23 +22,23 @@ metric = {
 }
 worker {
   type = normal
-  bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL}
+  bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}"
   count = 1
   task_timeout = 10s;
 }
 worker {
   type = controller
-  bind_socket = ${LOCAL_ADDR}:${PORT_CONTROLLER}
+  bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}"
   count = 1
   secure_ip = ["127.0.0.1", "::1"];
-  stats_path = "${TMPDIR}/stats.ucl"
+  stats_path = "{= env.TMPDIR =}/stats.ucl"
 }
 
 modules {
-  path = "${TESTDIR}/../../src/plugins/lua/"
+  path = "{= env.TESTDIR =}/../../src/plugins/lua/"
 }
 
-lua = "${TESTDIR}/lua/test_coverage.lua";
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
 
 neural {
   rules {
@@ -76,8 +76,8 @@ neural {
 
 }
 redis {
-  servers = "${REDIS_ADDR}:${REDIS_PORT}";
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
   expand_keys = true;
 }
 
-lua = "${TESTDIR}/lua/neural.lua";
\ No newline at end of file
+lua = "{= env.TESTDIR =}/lua/neural.lua";
index 55f0a42831fbe5da34823dff597422169b2fb033..e228da850598d61d27f676f53b09b0c40e71cad2 100644 (file)
@@ -1,7 +1,7 @@
 options = {
-  url_tld = "${URL_TLD}"
-  pidfile = "${TMPDIR}/rspamd.pid"
-  lua_path = "${INSTALLROOT}/share/rspamd/lib/?.lua"
+  url_tld = "{= env.URL_TLD =}"
+  pidfile = "{= env.TMPDIR =}/rspamd.pid"
+  lua_path = "{= env.INSTALLROOT =}/share/rspamd/lib/?.lua"
   filters = [];
   explicit_modules = ["settings"];
 }
@@ -9,7 +9,7 @@ options = {
 logging = {
   type = "file",
   level = "debug"
-  filename = "${TMPDIR}/rspamd.log"
+  filename = "{= env.TMPDIR =}/rspamd.log"
   log_usec = true;
 }
 metric = {
@@ -22,23 +22,23 @@ metric = {
 }
 worker {
   type = normal
-  bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL}
+  bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}"
   count = 1
   task_timeout = 10s;
 }
 worker {
   type = controller
-  bind_socket = ${LOCAL_ADDR}:${PORT_CONTROLLER}
+  bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}"
   count = 1
   secure_ip = ["127.0.0.1", "::1"];
-  stats_path = "${TMPDIR}/stats.ucl"
+  stats_path = "{= env.TMPDIR =}/stats.ucl"
 }
 
 modules {
-  path = "${TESTDIR}/../../src/plugins/lua/"
+  path = "{= env.TESTDIR =}/../../src/plugins/lua/"
 }
 
-lua = "${TESTDIR}/lua/test_coverage.lua";
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
 
 neural {
   rules {
@@ -78,8 +78,8 @@ neural {
 
 }
 redis {
-  servers = "${REDIS_ADDR}:${REDIS_PORT}";
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
   expand_keys = true;
 }
 
-lua = "${TESTDIR}/lua/neural.lua";
+lua = "{= env.TESTDIR =}/lua/neural.lua";
index 69303772a8402bf456b5e34d13097d8211991031..cb492f9b7158cbb0604d6f011abe05f5c24327c9 100644 (file)
@@ -1,8 +1,10 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 redis {
-  servers = "${REDIS_ADDR}:${REDIS_PORT}";
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
 }
 p0f {
-  socket = "${P0F_SOCKET}";
+  socket = "{= env.P0F_SOCKET =}";
   patterns {
     WINDOWS = '^Windows.*';
     ETHER = '^Ethernet.*';
index 922301844d0946ddb0f7fd5f6a80e33dd8c4068f..27b88eec3637b8bf9eede7a6e2470933fb947081 100644 (file)
@@ -1,7 +1,7 @@
 options = {
        filters = ["spf", "dkim", "regexp"]
-       url_tld = "${TESTDIR}/../lua/unit/test_tld.dat"
-       pidfile = "${TMPDIR}/rspamd.pid"
+       url_tld = "{= env.TESTDIR =}/../lua/unit/test_tld.dat"
+       pidfile = "{= env.TMPDIR =}/rspamd.pid"
        dns {
                retransmits = 10;
                timeout = 2s;
@@ -10,7 +10,7 @@ options = {
 logging = {
        type = "file",
        level = "debug"
-       filename = "${TMPDIR}/rspamd.log"
+       filename = "{= env.TMPDIR =}/rspamd.log"
 }
 metric = {
        name = "default",
@@ -22,24 +22,24 @@ metric = {
 
 worker {
        type = normal
-       bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL}
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}"
        count = 1
        keypair {
-               pubkey = "${KEY_PUB1}";
-               privkey = "${KEY_PVT1}";
+               pubkey = "{= env.KEY_PUB1 =}";
+               privkey = "{= env.KEY_PVT1 =}";
        }
        task_timeout = 60s;
 }
 worker {
        type = controller
-       bind_socket = ${LOCAL_ADDR}:${PORT_CONTROLLER}
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}"
        count = 1
        keypair {
-               pubkey = "${KEY_PUB1}";
-               privkey = "${KEY_PVT1}";
+               pubkey = "{= env.KEY_PUB1 =}";
+               privkey = "{= env.KEY_PVT1 =}";
        }
-       password = ${PASSWORD};
-       enable_password = ${ENABLE_PASSWORD};
-       stats_path = "${TMPDIR}/stats.ucl";
+       password = {= env.PASSWORD =};
+       enable_password = {= env.ENABLE_PASSWORD =};
+       stats_path = "{= env.TMPDIR =}/stats.ucl";
 }
-lua = "${TESTDIR}/lua/test_coverage.lua";
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
index 2b029f687469adb525fce8269a838624c58a8f78..aa6eb8fe941bece06f117e5cebd391866b99c524 100644 (file)
@@ -1,11 +1,13 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 phishing {
   symbol = "PHISHING";
   strict_domains = {
     STRICT_PHISHING = [
-      "${TESTDIR}/configs/maps/strict.phishing",
+      "{= env.TESTDIR =}/configs/maps/strict.phishing",
     ];
     STRICTER_PHISHING = [
-      "${TESTDIR}/configs/maps/stricter.phishing"
+      "{= env.TESTDIR =}/configs/maps/stricter.phishing"
     ]
   }
 }
index 35a2ce3470411011143804dc899c285af5d51681..803eccefe6cc75b86c7179049c3558700d162f4b 100644 (file)
@@ -1,8 +1,8 @@
 options = {
   filters = [ "dkim", "regexp"]
-  url_tld = "${URL_TLD}"
-  pidfile = "${TMPDIR}/rspamd.pid"
-  lua_path = "${INSTALLROOT}/share/rspamd/lib/?.lua"
+  url_tld = "{= env.URL_TLD =}"
+  pidfile = "{= env.TMPDIR =}/rspamd.pid"
+  lua_path = "{= env.INSTALLROOT =}/share/rspamd/lib/?.lua"
   explicit_modules = ["settings", "bayes_expiry"];
   dns {
     nameserver = ["8.8.8.8", "8.8.4.4"];
@@ -732,7 +732,7 @@ options = {
 logging = {
   type = "file",
   level = "debug"
-  filename = "${TMPDIR}/rspamd.log"
+  filename = "{= env.TMPDIR =}/rspamd.log"
   log_usec = true;
 }
 metric = {
@@ -745,21 +745,20 @@ metric = {
 }
 worker {
   type = normal
-  bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL}
+  bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}"
   count = 1
   task_timeout = 10s;
 }
 worker {
         type = controller
-        bind_socket = ${LOCAL_ADDR}:${PORT_CONTROLLER}
+        bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}"
         count = 1
         secure_ip = ["127.0.0.1", "::1"];
-        stats_path = "${TMPDIR}/stats.ucl"
+        stats_path = "{= env.TMPDIR =}/stats.ucl"
 }
 modules {
-    path = "${TESTDIR}/../../src/plugins/lua/"
+    path = "{= env.TESTDIR =}/../../src/plugins/lua/"
 }
 spf {}
-lua = "${TESTDIR}/lua/test_coverage.lua";
-lua = "${INSTALLROOT}/share/rspamd/rules/rspamd.lua"
-${PLUGIN_CONFIG}
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
+lua = "{= env.INSTALLROOT =}/share/rspamd/rules/rspamd.lua";
index c2bb3902d97eacde3a6759532f262804b6754003..ff31eaea0fa9614db8020eba6a5a1a36629bd045 100644 (file)
@@ -1,8 +1,8 @@
 options = {
        filters = ["spf", "dkim", "regexp"]
-       url_tld = "${URL_TLD}"
-       pidfile = "${TMPDIR}/rspamd.pid"
-       lua_path = "${INSTALLROOT}/share/rspamd/lib/?.lua"
+       url_tld = "{= env.URL_TLD =}"
+       pidfile = "{= env.TMPDIR =}/rspamd.pid"
+       lua_path = "{= env.INSTALLROOT =}/share/rspamd/lib/?.lua"
        dns {
                nameserver = ["8.8.8.8", "8.8.4.4"];
                retransmits = 10;
@@ -12,15 +12,15 @@ options = {
 logging = {
        type = "file",
        level = "debug"
-       filename = "${TMPDIR}/rspamd.log"
+       filename = "{= env.TMPDIR =}/rspamd.log"
 }
 worker "rspamd_proxy" {
-    bind_socket = "${LOCAL_ADDR}:${PORT_PROXY}";
+    bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_PROXY =}";
     upstream {
-        name = "${LOCAL_ADDR}";
+        name = "{= env.LOCAL_ADDR =}";
         default = yes;
-        hosts = "${LOCAL_ADDR}:${PORT_NORMAL}";
+        hosts = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}";
     }
     count = 1;
 }
-lua = "${TESTDIR}/lua/test_coverage.lua";
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
index 4999e60d757c2caeda4b058e81df746a14ce47d1..c5caa2e5014fc07baa72a6a5995d65b7e54a7078 100644 (file)
@@ -1,3 +1,5 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 rbl {
   rbls {
     fake {
@@ -33,7 +35,7 @@ rbl {
     }
     RSPAMD_EMAILBL {
       rbl = "test8.uribl";
-      url_compose_map = "${TESTDIR}/configs/maps/url_compose_map_for_mails.list";
+      url_compose_map = "{= env.TESTDIR =}/configs/maps/url_compose_map_for_mails.list";
       ignore_defaults = true;
       emails = true;
       emails_domainonly = true
index 2da10faf7456a249eee2506ca91f61f2c29fe1d1..8b3f0c484acc969410a5b49fbc54ba858f1eb5c5 100644 (file)
@@ -1,5 +1,7 @@
-lua = ${LUA_SCRIPT};
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
+lua = "{= env.LUA_SCRIPT =}";
 redis {
-  servers = "${REDIS_ADDR}:${REDIS_PORT}";
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
   expand_keys = true;
 }
index 5b4047b5b740a47f1ba9b3ad77716a6c43fd87ae..06f22c99820ed01a25de2fc19353021e3dd0ca33 100644 (file)
@@ -1,6 +1,8 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 regexp {
   SA_BODY_WORD_BOUNDARY_ON_NEWLINE {
-    re =  '/\\bhello\\s/{sa_body}',
+    re =  '/\bhello\s/{sa_body}',
     score = 0.0,
     description = 'Test if word boundary works correctly on sa_body regexes',
     group = 'body',
@@ -24,25 +26,25 @@ regexp {
     group = 'body',
   }
   SA_BODY_WORD_WITH_SPACE_BOUNDARIES {
-    re =  '/\\bhello world\\b/{sa_body}',
+    re =  '/\bhello world\b/{sa_body}',
     score = 0.0,
     description = 'Test if regex matches word separated with newline (should work - newline is replaced with space)',
     group = 'body',
   }
   SA_BODY_WORD_WITH_SPACE_BOUNDARIES_2 {
-    re =  '/\\shello\\sworld\\s/{sa_body}',
+    re =  '/\shello\sworld\s/{sa_body}',
     score = 0.0,
     description = 'Test if regex matches word separated with newline (should work - newline is replaced with space)',
     group = 'body',
   }
   SA_BODY_WORD_WITH_SPACE_BOUNDARIES_3 {
-    re =  '/\\shello\\sworld\\sthis\\s/{sa_body}',
+    re =  '/\shello\sworld\sthis\s/{sa_body}',
     score = 0.0,
     description = 'Test if regex matches word separated with newline (should work - newline is replaced with space)',
     group = 'body',
   }
   SA_BODY_WORD_WITH_SPACE_AND_DOT {
-    re =  '/\\bword\\.\\sagain\\b/{sa_body}',
+    re =  '/\bword\.\sagain\b/{sa_body}',
     score = 0.0,
     description = 'Test if regex matches word separated with newline (should work - newline is replaced with space)',
     group = 'body',
@@ -50,13 +52,13 @@ regexp {
 }
 
 options {
-  dynamic_conf = "${TESTDIR}/configs/dynamic.conf";
+  dynamic_conf = "{= env.TESTDIR =}/configs/dynamic.conf";
 }
 dmarc { }
 spf { }
 dkim { }
 modules {
-    path = "${TESTDIR}/../../src/plugins/lua/"
+    path = "{= env.TESTDIR =}/../../src/plugins/lua/"
 }
 
-lua = "${TESTDIR}/lua/regex_test.lua"
+lua = "{= env.TESTDIR =}/lua/regex_test.lua"
index d4e872d36b34a3c5bc403f45bd47f269281d1575..b99ae5639d1264f1dcfc73c8e9e0c3c03aa09a35 100644 (file)
@@ -1,3 +1,5 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 regexp {
   CONFIG_SELECTOR_RE_RCPT_SUBJECT {
     re =  'test=/test@user.com some subject/$',
@@ -5,4 +7,4 @@ regexp {
   }
 }
 
-lua = "${TESTDIR}/lua/selector_test.lua"
+lua = "{= env.TESTDIR =}/lua/selector_test.lua"
index 8155ded91989b88b68764b29ca1ffb43d4c50c40..db7c3ca5e7b215da8023db11a7962e2e5af05f96 100644 (file)
@@ -1,4 +1,6 @@
-lua = ${LUA_SCRIPT};
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
+lua = "{= env.LUA_SCRIPT =}";
 
 settings {
   id_test {
index 53aa89ec786abe575b5d3175108256ed411c85d7..0b669512a861fda69c53e62c7cae1dbd3f23c7eb 100644 (file)
@@ -1,5 +1,7 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 spamassassin {
-       rules = "${TESTDIR}/configs/spamassassin.rules"
+       rules = "{= env.TESTDIR =}/configs/spamassassin.rules"
 }
-lua = "${TESTDIR}/lua/test_coverage.lua";
-lua = "${TESTDIR}/lua/simple.lua"
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
+lua = "{= env.TESTDIR =}/lua/simple.lua"
index f79729f39bb19259c99534c01495c24d1d3536a0..bfa39b4268bb57cc0838df79babad72604d8c71f 100644 (file)
@@ -1,7 +1,7 @@
 options = {
        filters = ["spf", "dkim", "regexp"]
-       url_tld = "${TESTDIR}/../lua/unit/test_tld.dat"
-       pidfile = "${TMPDIR}/rspamd.pid"
+       url_tld = "{= env.TESTDIR =}/../lua/unit/test_tld.dat"
+       pidfile = "{= env.TMPDIR =}/rspamd.pid"
        dns {
                retransmits = 10;
                timeout = 2s;
@@ -15,7 +15,7 @@ options = {
 logging = {
        type = "file",
        level = "debug"
-       filename = "${TMPDIR}/rspamd.log"
+       filename = "{= env.TMPDIR =}/rspamd.log"
 }
 metric = {
        name = "default",
@@ -27,51 +27,51 @@ metric = {
 
 worker {
        type = normal
-       bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL}
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}"
        count = 1
        keypair {
-               pubkey = "${KEY_PUB1}";
-               privkey = "${KEY_PVT1}";
+               pubkey = "{= env.KEY_PUB1 =}";
+               privkey = "{= env.KEY_PVT1 =}";
        }
        task_timeout = 60s;
 }
 worker {
        type = controller
-       bind_socket = ${LOCAL_ADDR}:${PORT_CONTROLLER}
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}"
        count = 1
        keypair {
-               pubkey = "${KEY_PUB1}";
-               privkey = "${KEY_PVT1}";
+               pubkey = "{= env.KEY_PUB1 =}";
+               privkey = "{= env.KEY_PVT1 =}";
        }
        secure_ip = ["127.0.0.1", "::1"];
-       stats_path = "${TMPDIR}/stats.ucl";
+       stats_path = "{= env.TMPDIR =}/stats.ucl";
 }
 
 classifier {
        languages_enabled = true;
        tokenizer {
                name = "osb";
-               ${STATS_HASH}
-               ${STATS_KEY}
+               hash = {= env.STATS_HASH =};
+               key = {= env.STATS_KEY =};
        }
-       backend = ${STATS_BACKEND}
+       backend = "{= env.STATS_BACKEND =}";
        statfile {
                spam = true;
                symbol = BAYES_SPAM;
                size = 1M;
-               ${REDIS_SERVER}
+               server = {= env.REDIS_SERVER =}
        }
        statfile {
                spam = false;
                symbol = BAYES_HAM;
                size = 1M;
-               ${REDIS_SERVER}
+               server = {= env.REDIS_SERVER =}
        }
 
        cache {
-               ${REDIS_SERVER}
+               server = {= env.REDIS_SERVER =}
        }
 }
-lua = "${TESTDIR}/lua/test_coverage.lua";
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua";
 
 settings {}
index 6e3a40e1801123e5afc852233937ed303ee6dad0..fe636827732b8bd9f46baeeb4f0d6db61c0900dd 100644 (file)
@@ -1,3 +1,5 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 surbl {
     "whitelist" = [
     "rspamd-test.com"
@@ -66,7 +68,7 @@ EOD;
     }
     "BAD_SUBDOMAIN" {
       suffix = "test7.uribl";
-      url_compose_map = "${TESTDIR}/configs/maps/url_compose_map.list";
+      url_compose_map = "{= env.TESTDIR =}/configs/maps/url_compose_map.list";
       check_dkim = true;
       check_emails = false;
     }
@@ -88,4 +90,4 @@ emails {
         replyto = true;
       }
   }
-}
\ No newline at end of file
+}
index 5d4aa0af6e557f9289bd760c4171485efc29473a..97e3a301eab2d9fe12210713d2fe73402b129d78 100644 (file)
@@ -1,8 +1,8 @@
 options = {
        filters = ["spf", "dkim", "regexp"]
-       url_tld = "${TESTDIR}/../lua/unit/test_tld.dat"
-       pidfile = "${TMPDIR}/rspamd.pid";
-       lua_path = "${INSTALLROOT}/share/rspamd/lib/?.lua";
+       url_tld = "{= env.TESTDIR =}/../lua/unit/test_tld.dat"
+       pidfile = "{= env.TMPDIR =}/rspamd.pid";
+       lua_path = "{= env.INSTALLROOT =}/share/rspamd/lib/?.lua";
        dns {
        nameserver = ["8.8.8.8", "8.8.4.4"];
       retransmits = 10;
@@ -13,7 +13,7 @@ logging = {
        log_urls = true;
        type = "file",
        level = "debug"
-       filename = "${TMPDIR}/rspamd.log";
+       filename = "{= env.TMPDIR =}/rspamd.log";
        log_usec = true;
 }
 metric = {
@@ -26,25 +26,25 @@ metric = {
 
 worker {
        type = normal
-       bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL}
+       bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}"
        count = 1
        keypair {
-               pubkey = "${KEY_PUB1}";
-               privkey = "${KEY_PVT1}";
+               pubkey = "{= env.KEY_PUB1 =}";
+               privkey = "{= env.KEY_PVT1 =}";
        }
        task_timeout = 10s;
 }
 
 worker {
         type = controller
-        bind_socket = ${LOCAL_ADDR}:${PORT_CONTROLLER}
+        bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}"
         count = 1
         secure_ip = ["127.0.0.1", "::1"];
-        stats_path = "${TMPDIR}/stats.ucl"
+        stats_path = "{= env.TMPDIR =}/stats.ucl"
 }
 
 modules {
-    path = "${TESTDIR}/../../src/plugins/lua/"
+    path = "{= env.TESTDIR =}/../../src/plugins/lua/"
 }
-lua = "${INSTALLROOT}/share/rspamd/rules/rspamd.lua"
+lua = "{= env.INSTALLROOT =}/share/rspamd/rules/rspamd.lua"
 
index f61fa3086b4d5b3c70b75646e710e9d1a4228c0f..e6009ba665a573d14ab92070e78ad01a374a1361 100644 (file)
@@ -1,6 +1,8 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 redis {
-  servers = "${REDIS_ADDR}:${REDIS_PORT}";
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
 }
 url_redirector {
-  redirector_hosts_map = "${TESTDIR}/configs/maps/redir.map";
+  redirector_hosts_map = "{= env.TESTDIR =}/configs/maps/redir.map";
 }
index d7592fc357c20586eadffbd20eac6b24b32e7000..db264aa42ef36440d1d08190ab6de81ce5fc5a12 100644 (file)
@@ -1,3 +1,5 @@
+.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
+
 dmarc {}
 spf {}
 whitelist {
@@ -9,7 +11,7 @@ whitelist {
             valid_dmarc = true;
             valid_spf = true;
             domains = [
-                "${TESTDIR}/configs/maps/domains.list",
+                "{= env.TESTDIR =}/configs/maps/domains.list",
             ];
             score = -3.0;
             inverse_symbol = "BLACKLIST_DDS";
@@ -18,7 +20,7 @@ whitelist {
         "WHITELIST_DKIM" = {
             valid_dkim = true;
             domains = [
-                "${TESTDIR}/configs/maps/domains.list",
+                "{= env.TESTDIR =}/configs/maps/domains.list",
             ];
             description = "Mail comes from the whitelisted domain and has a valid DKIM signature";
             score = -1.0;
@@ -28,7 +30,7 @@ whitelist {
         "WHITELIST_SPF" = {
             valid_spf = true;
             domains = [
-                "${TESTDIR}/configs/maps/domains.list",
+                "{= env.TESTDIR =}/configs/maps/domains.list",
             ];
             score = -1.0
             inverse_multiplier = 3.0
@@ -40,7 +42,7 @@ whitelist {
             valid_spf = true;
             valid_dkim = true;
             domains = [
-                "${TESTDIR}/configs/maps/domains.list"
+                "{= env.TESTDIR =}/configs/maps/domains.list"
             ];
             score = -3.0;
             description = "Mail comes from the whitelisted domain and has a valid SPF policy and valid DKIM signature";
@@ -51,7 +53,7 @@ whitelist {
             valid_dmarc = true;
             valid_dkim = true;
             domains = [
-                "${TESTDIR}/configs/maps/domains.list",
+                "{= env.TESTDIR =}/configs/maps/domains.list",
             ];
             score = -2.0;
             description = "Mail comes from the whitelisted domain and has valid DMARC and DKIM policies";
@@ -61,7 +63,7 @@ whitelist {
         "WHITELIST_DMARC" = {
             valid_dmarc = true;
             domains = [
-                "${TESTDIR}/configs/maps/domains.list",
+                "{= env.TESTDIR =}/configs/maps/domains.list",
             ];
             score = -2.0;
             description = "Mail comes from the whitelisted domain and has valid DMARC policy";
@@ -72,7 +74,7 @@ whitelist {
             strict = true;
             valid_dmarc = true;
             domains = [
-                "${TESTDIR}/configs/maps/domains.list",
+                "{= env.TESTDIR =}/configs/maps/domains.list",
             ];
             score = -3.0;
         }
index c52bcc51aec50fc41baa2d072641dce06804f3c7..04471d5c0738a934e3f7c1e93daf50d6ac2f35aa 100644 (file)
@@ -57,14 +57,8 @@ Do Not Expect Symbols
   END
 
 Generic Setup
-  [Arguments]  @{vargs}  &{kwargs}
-  &{d} =  Run Rspamd  @{vargs}  &{kwargs}
-  ${keys} =  Get Dictionary Keys  ${d}
-  FOR  ${i}  IN  @{keys}
-    Run Keyword If  '${RSPAMD_SCOPE}' == 'Suite'  Set Suite Variable  ${${i}}  ${d}[${i}]
-    ...  ELSE IF  '${RSPAMD_SCOPE}' == 'Test'  Set Test Variable  ${${i}}  ${d}[${i}]
-    ...  ELSE  Fail  'RSPAMD_SCOPE must be Test or Suite'
-  END
+  [Arguments]  &{kw}
+  New Setup  &{kw}
 
 Expect Action
   [Arguments]  ${action}
@@ -126,6 +120,13 @@ Expect Symbol With Score
   Should Be Equal As Numbers  ${SCAN_RESULT}[symbols][${symbol}][score]  ${score}
   ...  msg="Symbol ${symbol} has score of ${SCAN_RESULT}[symbols][${symbol}][score] but expected ${score}"
 
+Expect Symbols
+  [Arguments]  @{symbols}
+  FOR  ${symbol}  IN  @{symbols}
+    Dictionary Should Contain Key  ${SCAN_RESULT}[symbols]  ${symbol}
+    ...  msg=Symbol ${symbol} wasn't found in result
+  END
+
 Expect Symbols With Scores
   [Arguments]  &{symscores}
   FOR  ${key}  ${value}  IN  &{symscores}
@@ -140,7 +141,18 @@ Expect Symbol With Score And Exact Options
   Expect Symbol With Exact Options  ${symbol}  @{options}
   Expect Symbol With Score  ${symbol}  ${score}
 
+Export Scoped Variables
+  [Arguments]  ${scope}  &{vars}
+  FOR  ${k}  ${v}  IN  &{vars}
+    Run Keyword If  '${scope}' == 'Test'  Set Test Variable  ${${k}}  ${v}
+    ...  ELSE IF  '${scope}' == 'Suite'  Set Suite Variable  ${${k}}  ${v}
+    ...  ELSE IF  '${scope}' == 'Global'  Set Global Variable  ${${k}}  ${v}
+    ...  ELSE  Fail  message="Don't know what to do with scope: ${scope}"
+  END
+
 Generic Teardown
+  # Robot Framework 4.0
+  #Run Keyword If  '${CONTROLLER_ERRORS}' == 'True'  Run Keyword And Warn On Failure  Check Controller Errors
   Run Keyword If  '${CONTROLLER_ERRORS}' == 'True'  Check Controller Errors
   Shutdown Process With Children  ${RSPAMD_PID}
   Save Run Results  ${TMPDIR}  rspamd.conf rspamd.log redis.log clickhouse-config.xml
@@ -148,10 +160,35 @@ Generic Teardown
   Collect Lua Coverage
   Cleanup Temporary Directory  ${TMPDIR}
 
+  # Possibly deal with Redis
+  ${redis_tmpdir} =  Get Variable Value  ${REDIS_TMPDIR}
+  Run Keyword If  '${redis_tmpdir}' != 'None'  Cleanup Temporary Directory  ${REDIS_TMPDIR}
+  ${redis_pid} =  Get Variable Value  ${REDIS_PID}
+  Run Keyword If  '${redis_pid}' == 'None'  Return From Keyword
+  Shutdown Process With Children  ${redis_pid}
+
 Log does not contain segfault record
   ${log} =  Get File  ${TMPDIR}/rspamd.log  encoding_errors=ignore
   Should not contain  ${log}  Segmentation fault:  msg=Segmentation fault detected
 
+New Setup
+  [Arguments]  &{kw}
+
+  # Create and chown temporary directory
+  ${TMPDIR} =  Make Temporary Directory
+  Set Directory Ownership  ${TMPDIR}  ${RSPAMD_USER}  ${RSPAMD_GROUP}
+
+  # Export ${TMPDIR} to appropriate scope according to ${RSPAMD_SCOPE}
+  Export Scoped Variables  ${RSPAMD_SCOPE}  TMPDIR=${TMPDIR}
+
+  # Set additional values to ${kw} that are expected to be available everywhere
+  Set To Dictionary  ${kw}  LOCAL_ADDR=${LOCAL_ADDR}  PORT_NORMAL=${PORT_NORMAL}
+  ...  KEY_PUB1=${KEY_PUB1}  KEY_PVT1=${KEY_PVT1}  PORT_CONTROLLER=${PORT_CONTROLLER}
+  ...  TESTDIR=${TESTDIR}  INSTALLROOT=${INSTALLROOT}  TMPDIR=${TMPDIR}
+  ...  MAP_WATCH_INTERVAL=${MAP_WATCH_INTERVAL}  PORT_PROXY=${PORT_PROXY}
+
+  New Run Rspamd  &{kw}
+
 Normal Teardown
   Generic Teardown
 
@@ -172,6 +209,7 @@ Redis SET
   Should Be Equal As Integers  ${result.rc}  0
 
 Run Redis
+  ${TMPDIR} =  Make Temporary Directory
   ${template} =  Get File  ${TESTDIR}/configs/redis-server.conf
   ${config} =  Replace Variables  ${template}
   Create File  ${TMPDIR}/redis-server.conf  ${config}
@@ -182,11 +220,15 @@ Run Redis
   Wait Until Keyword Succeeds  5x  1 sec  Check Pidfile  ${TMPDIR}/redis.pid  timeout=0.5s
   Wait Until Keyword Succeeds  5x  1 sec  Redis Check  ${REDIS_ADDR}  ${REDIS_PORT}
   ${REDIS_PID} =  Get File  ${TMPDIR}/redis.pid
-  Run Keyword If  '${REDIS_SCOPE}' == 'Test'  Set Test Variable  ${REDIS_PID}
-  ...  ELSE IF  '${REDIS_SCOPE}' == 'Suite'  Set Suite Variable  ${REDIS_PID}
+  ${REDIS_PID} =  Convert To Number  ${REDIS_PID}
+  Export Scoped Variables  ${REDIS_SCOPE}  REDIS_PID=${REDIS_PID}  REDIS_TMPDIR=${TMPDIR}
   ${redis_log} =  Get File  ${TMPDIR}/redis.log
   Log  ${redis_log}
 
+Run Rspamd
+  [Arguments]  &{kwargs}
+  New Run Rspamd  &{kwargs}
+
 Run Nginx
   ${template} =  Get File  ${TESTDIR}/configs/nginx.conf
   ${config} =  Replace Variables  ${template}
@@ -210,35 +252,44 @@ Run Rspamc
   Log  ${result.stdout}
   [Return]  ${result}
 
-Run Rspamd
-  [Arguments]  @{vargs}  &{kwargs}
-  ${has_CONFIG} =  Evaluate  'CONFIG' in $kwargs
-  ${has_TMPDIR} =  Evaluate  'TMPDIR' in $kwargs
-  ${CONFIG} =  Set Variable If  '${has_CONFIG}' == 'True'  ${kwargs}[CONFIG]  ${CONFIG}
-  &{d} =  Create Dictionary
-  ${tmpdir} =  Run Keyword If  '${has_TMPDIR}' == 'True'  Set Variable  ${kwargs}[TMPDIR]
-  ...  ELSE  Make Temporary Directory
-  Set Directory Ownership  ${tmpdir}  ${RSPAMD_USER}  ${RSPAMD_GROUP}
-  ${template} =  Get File  ${CONFIG}
-  # TODO: stop using this; we have Lupa now
-  FOR  ${i}  IN  @{vargs}
-    ${newvalue} =  Replace Variables  ${${i}}
-    Set To Dictionary  ${d}  ${i}=${newvalue}
+New Run Rspamd
+  [Arguments]  &{kwargs}
+
+  # Set each kwarg to environment variable prefixed with RSPAMD_
+  FOR  ${k}  ${v}  IN  &{kwargs}
+    Set Environment Variable  RSPAMD_${k}  ${v}
   END
-  ${config} =  Replace Variables  ${template}
-  ${config} =  Replace Variables  ${config}
-  Log  ${config}
-  Create File  ${tmpdir}/rspamd.conf  ${config}
+
+  # Dump templated config or errors to log
+  ${result} =  Run Process  ${RSPAMADM}  configdump  -c  ${CONFIG}
+  # We need to send output to files (or discard output) to avoid hanging Robot
+  ...  stdout=${TMPDIR}/configdump.stdout  stderr=${TMPDIR}/configdump.stderr
+  ${configdump} =  Run Keyword If  ${result.rc} == 0  Get File  ${TMPDIR}/configdump.stdout
+  ...  ELSE  Get File  ${TMPDIR}/configdump.stderr
+  Log  ${configdump}
+
+  # Fix directory ownership (maybe do this somewhere else)
+  Set Directory Ownership  ${TMPDIR}  ${RSPAMD_USER}  ${RSPAMD_GROUP}
+
+  # Run Rspamd
   ${result} =  Run Process  ${RSPAMD}  -u  ${RSPAMD_USER}  -g  ${RSPAMD_GROUP}
-  ...  -c  ${tmpdir}/rspamd.conf  env:TMPDIR=${tmpdir}  env:DBDIR=${tmpdir}  env:LD_LIBRARY_PATH=${TESTDIR}/../../contrib/aho-corasick
-  ...  env:RSPAMD_INSTALLROOT=${INSTALLROOT}  stdout=DEVNULL  stderr=DEVNULL
-  Run Keyword If  ${result.rc} != 0  Log  ${result.stderr}
+  ...  -c  ${CONFIG}  env:TMPDIR=${TMPDIR}  env:DBDIR=${TMPDIR}  env:LD_LIBRARY_PATH=${TESTDIR}/../../contrib/aho-corasick
+  ...  env:RSPAMD_INSTALLROOT=${INSTALLROOT}  env:RSPAMD_TMPDIR=${TMPDIR}  env:RSPAMD_TESTDIR=${TESTDIR}
+  # We need to send output to files (or discard output) to avoid hanging Robot
+  ...  stdout=${TMPDIR}/rspamd.stdout  stderr=${TMPDIR}/rspamd.stderr
+
+  # Abort if it failed
   Should Be Equal As Integers  ${result.rc}  0
-  Wait Until Keyword Succeeds  10x  1 sec  Check Pidfile  ${tmpdir}/rspamd.pid  timeout=0.5s
+
+  # Wait for pid file to be written
+  Wait Until Keyword Succeeds  10x  1 sec  Check Pidfile  ${TMPDIR}/rspamd.pid  timeout=0.5s
+
+  # Confirm worker is reachable
   Wait Until Keyword Succeeds  5x  1 sec  Ping Rspamd  ${LOCAL_ADDR}  ${PORT_NORMAL}
-  ${rspamd_pid} =  Get File  ${tmpdir}/rspamd.pid
-  Set To Dictionary  ${d}  RSPAMD_PID=${rspamd_pid}  TMPDIR=${tmpdir}
-  [Return]  &{d}
+
+  # Read PID from PIDfile and export it to appropriate scope as ${RSPAMD_PID}
+  ${RSPAMD_PID} =  Get File  ${TMPDIR}/rspamd.pid
+  Export Scoped Variables  ${RSPAMD_SCOPE}  RSPAMD_PID=${RSPAMD_PID}
 
 Simple Teardown
   Generic Teardown