From db4da2c22d159d1a6450b9447ad90e1795e5c535 Mon Sep 17 00:00:00 2001 From: Andrew Lewis Date: Tue, 4 May 2021 13:48:37 +0200 Subject: [Test] Use lupa for templating rspamd configs --- test/functional/cases/100_general.robot | 2 +- test/functional/cases/101_lua.robot | 2 +- test/functional/cases/102_multimap.robot | 6 +- test/functional/cases/103_password.robot | 2 +- test/functional/cases/104_get_from.robot | 6 +- test/functional/cases/105_mimetypes.robot | 6 +- test/functional/cases/106_mid.robot | 10 +- test/functional/cases/108_settings.robot | 7 +- test/functional/cases/109_composites.robot | 10 +- test/functional/cases/110_statistics/lib.robot | 12 +- .../cases/110_statistics/redis-keyed-siphash.robot | 7 +- .../cases/110_statistics/redis-keyed-xxhash.robot | 7 +- .../cases/110_statistics/redis-plain-siphash.robot | 5 +- .../cases/110_statistics/redis-plain-xxhash.robot | 5 +- test/functional/cases/114_phishing.robot | 6 +- test/functional/cases/115_dmarc.robot | 6 +- test/functional/cases/116_dkim.robot | 6 +- test/functional/cases/117_spf.robot | 6 +- test/functional/cases/120_fuzzy/lib.robot | 44 +++++--- test/functional/cases/121_json/100_preresult.robot | 2 +- test/functional/cases/121_json/101_simple.robot | 2 +- test/functional/cases/121_json/lib.robot | 3 + test/functional/cases/123_whitelist.robot | 6 +- test/functional/cases/125_map_reload.robot | 2 +- .../cases/131_dkim_signing/001_simple.robot | 15 +-- .../cases/131_dkim_signing/002_redis.robot | 12 +- .../cases/131_dkim_signing/003_eddsa.robot | 15 +-- .../131_dkim_signing/004_invalidate_key.robot | 6 +- .../cases/131_dkim_signing/005_multiple.robot | 15 +-- .../cases/131_dkim_signing/006_milter.robot | 8 +- .../cases/131_dkim_signing/007_sign_maps.robot | 15 +-- test/functional/cases/135_spamassassin.robot | 10 +- test/functional/cases/140_proxy.robot | 36 +++--- test/functional/cases/160_antivirus.robot | 7 +- test/functional/cases/161_p0f.robot | 7 +- test/functional/cases/162_url_redirector.robot | 8 +- test/functional/cases/180_milter.robot | 5 +- test/functional/cases/220_http.robot | 7 +- test/functional/cases/230_tcp.robot | 2 +- test/functional/cases/231_tcp_down.robot | 7 +- test/functional/cases/240_redis.robot | 17 +-- test/functional/cases/241_redis_is_dead.robot | 21 +--- test/functional/cases/250_dns.robot | 2 +- test/functional/cases/260_regex.robot | 16 +-- test/functional/cases/270_selector.robot | 8 +- test/functional/cases/280_rules.robot | 6 +- test/functional/cases/281_fnames.robot | 17 +-- test/functional/cases/290_greylist.robot | 6 +- test/functional/cases/300_rbl.robot | 6 +- test/functional/cases/310_udp.robot | 7 +- .../cases/320_arc_signing/001_simple.robot | 15 +-- .../cases/320_arc_signing/002_redis.robot | 12 +- test/functional/cases/321_arc_check.robot | 6 +- .../cases/330_neural/001_autotrain.robot | 10 +- .../cases/330_neural/002_manualtrain.robot | 10 +- test/functional/cases/340_surbl.robot | 6 +- test/functional/cases/350_magic.robot | 115 ++++++++++---------- test/functional/cases/360_force_actions.robot | 6 +- test/functional/configs/antivirus.conf | 12 +- test/functional/configs/arc.conf | 4 +- test/functional/configs/arc_signing/redis.conf | 4 +- test/functional/configs/arc_signing/simple.conf | 4 +- test/functional/configs/composites.conf | 16 +-- test/functional/configs/dkim.conf | 42 ++----- test/functional/configs/dkim_signing/eddsa.conf | 4 +- .../configs/dkim_signing/invalidate.conf | 4 +- test/functional/configs/dkim_signing/milter.conf | 32 +++--- test/functional/configs/dkim_signing/multiple.conf | 6 +- test/functional/configs/dkim_signing/redis.conf | 4 +- .../functional/configs/dkim_signing/sign_maps.conf | 4 +- test/functional/configs/dkim_signing/simple.conf | 4 +- test/functional/configs/dmarc.conf | 6 +- test/functional/configs/empty.conf | 0 test/functional/configs/force_actions.conf | 4 +- test/functional/configs/fuzzy-encryption-key.conf | 2 + test/functional/configs/fuzzy.conf | 55 ++++++---- test/functional/configs/greylist.conf | 4 +- test/functional/configs/lua_script.conf | 14 +-- test/functional/configs/lua_test.conf | 18 +-- test/functional/configs/mid.conf | 6 +- test/functional/configs/milter.conf | 26 ++--- test/functional/configs/mime_types.conf | 6 +- test/functional/configs/multimap.conf | 48 ++++---- test/functional/configs/neural.conf | 22 ++-- test/functional/configs/neural_noauto.conf | 22 ++-- test/functional/configs/p0f.conf | 6 +- test/functional/configs/password.conf | 26 ++--- test/functional/configs/phishing.conf | 6 +- test/functional/configs/plugins.conf | 21 ++-- test/functional/configs/proxy.conf | 16 +-- test/functional/configs/rbl.conf | 4 +- test/functional/configs/redis.conf | 6 +- test/functional/configs/regexp.conf | 18 +-- test/functional/configs/selector.conf | 4 +- test/functional/configs/settings.conf | 4 +- test/functional/configs/spamassassin.conf | 8 +- test/functional/configs/stats.conf | 34 +++--- test/functional/configs/surbl.conf | 6 +- test/functional/configs/trivial.conf | 22 ++-- test/functional/configs/url_redirector.conf | 6 +- test/functional/configs/whitelist.conf | 16 +-- test/functional/lib/rspamd.robot | 121 +++++++++++++++------ 102 files changed, 639 insertions(+), 689 deletions(-) create mode 100644 test/functional/configs/empty.conf create mode 100644 test/functional/configs/fuzzy-encryption-key.conf diff --git a/test/functional/cases/100_general.robot b/test/functional/cases/100_general.robot index 0a754a973..d2b3f24f5 100644 --- a/test/functional/cases/100_general.robot +++ b/test/functional/cases/100_general.robot @@ -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 diff --git a/test/functional/cases/101_lua.robot b/test/functional/cases/101_lua.robot index 215ecd086..034ce756f 100644 --- a/test/functional/cases/101_lua.robot +++ b/test/functional/cases/101_lua.robot @@ -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} diff --git a/test/functional/cases/102_multimap.robot b/test/functional/cases/102_multimap.robot index fc93d7565..7ab72c761 100644 --- a/test/functional/cases/102_multimap.robot +++ b/test/functional/cases/102_multimap.robot @@ -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 diff --git a/test/functional/cases/103_password.robot b/test/functional/cases/103_password.robot index c750369bf..090bcaa6a 100644 --- a/test/functional/cases/103_password.robot +++ b/test/functional/cases/103_password.robot @@ -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} diff --git a/test/functional/cases/104_get_from.robot b/test/functional/cases/104_get_from.robot index c15e0cdba..e1fcbc259 100644 --- a/test/functional/cases/104_get_from.robot +++ b/test/functional/cases/104_get_from.robot @@ -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} diff --git a/test/functional/cases/105_mimetypes.robot b/test/functional/cases/105_mimetypes.robot index a29ffcb6d..219846698 100644 --- a/test/functional/cases/105_mimetypes.robot +++ b/test/functional/cases/105_mimetypes.robot @@ -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} diff --git a/test/functional/cases/106_mid.robot b/test/functional/cases/106_mid.robot index d220abc22..f014940ca 100644 --- a/test/functional/cases/106_mid.robot +++ b/test/functional/cases/106_mid.robot @@ -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 diff --git a/test/functional/cases/108_settings.robot b/test/functional/cases/108_settings.robot index 6e02e57a3..3409c84ff 100644 --- a/test/functional/cases/108_settings.robot +++ b/test/functional/cases/108_settings.robot @@ -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 diff --git a/test/functional/cases/109_composites.robot b/test/functional/cases/109_composites.robot index 3aeb009ed..8c93642dc 100644 --- a/test/functional/cases/109_composites.robot +++ b/test/functional/cases/109_composites.robot @@ -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} diff --git a/test/functional/cases/110_statistics/lib.robot b/test/functional/cases/110_statistics/lib.robot index 9dd313cd3..808580a11 100644 --- a/test/functional/cases/110_statistics/lib.robot +++ b/test/functional/cases/110_statistics/lib.robot @@ -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} diff --git a/test/functional/cases/110_statistics/redis-keyed-siphash.robot b/test/functional/cases/110_statistics/redis-keyed-siphash.robot index 09d369d54..cc4320102 100644 --- a/test/functional/cases/110_statistics/redis-keyed-siphash.robot +++ b/test/functional/cases/110_statistics/redis-keyed-siphash.robot @@ -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 diff --git a/test/functional/cases/110_statistics/redis-keyed-xxhash.robot b/test/functional/cases/110_statistics/redis-keyed-xxhash.robot index e95b4cebc..ba550df20 100644 --- a/test/functional/cases/110_statistics/redis-keyed-xxhash.robot +++ b/test/functional/cases/110_statistics/redis-keyed-xxhash.robot @@ -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 diff --git a/test/functional/cases/110_statistics/redis-plain-siphash.robot b/test/functional/cases/110_statistics/redis-plain-siphash.robot index deb0c9559..10e28a26b 100644 --- a/test/functional/cases/110_statistics/redis-plain-siphash.robot +++ b/test/functional/cases/110_statistics/redis-plain-siphash.robot @@ -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 diff --git a/test/functional/cases/110_statistics/redis-plain-xxhash.robot b/test/functional/cases/110_statistics/redis-plain-xxhash.robot index 379f39767..47533d9be 100644 --- a/test/functional/cases/110_statistics/redis-plain-xxhash.robot +++ b/test/functional/cases/110_statistics/redis-plain-xxhash.robot @@ -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 diff --git a/test/functional/cases/114_phishing.robot b/test/functional/cases/114_phishing.robot index 67e6f9aca..d0c5cab78 100644 --- a/test/functional/cases/114_phishing.robot +++ b/test/functional/cases/114_phishing.robot @@ -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} diff --git a/test/functional/cases/115_dmarc.robot b/test/functional/cases/115_dmarc.robot index 120e4461c..4b3fe92da 100644 --- a/test/functional/cases/115_dmarc.robot +++ b/test/functional/cases/115_dmarc.robot @@ -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} diff --git a/test/functional/cases/116_dkim.robot b/test/functional/cases/116_dkim.robot index 45f5ad314..f1a906569 100644 --- a/test/functional/cases/116_dkim.robot +++ b/test/functional/cases/116_dkim.robot @@ -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 diff --git a/test/functional/cases/117_spf.robot b/test/functional/cases/117_spf.robot index 245c9c593..210efd42a 100644 --- a/test/functional/cases/117_spf.robot +++ b/test/functional/cases/117_spf.robot @@ -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} diff --git a/test/functional/cases/120_fuzzy/lib.robot b/test/functional/cases/120_fuzzy/lib.robot index ca6143253..6af0245d2 100644 --- a/test/functional/cases/120_fuzzy/lib.robot +++ b/test/functional/cases/120_fuzzy/lib.robot @@ -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 diff --git a/test/functional/cases/121_json/100_preresult.robot b/test/functional/cases/121_json/100_preresult.robot index aa25c0272..5122ae117 100644 --- a/test/functional/cases/121_json/100_preresult.robot +++ b/test/functional/cases/121_json/100_preresult.robot @@ -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 diff --git a/test/functional/cases/121_json/101_simple.robot b/test/functional/cases/121_json/101_simple.robot index da5aa0f19..1c548ebe5 100644 --- a/test/functional/cases/121_json/101_simple.robot +++ b/test/functional/cases/121_json/101_simple.robot @@ -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 diff --git a/test/functional/cases/121_json/lib.robot b/test/functional/cases/121_json/lib.robot index 4d87485dc..b1ec0ac18 100644 --- a/test/functional/cases/121_json/lib.robot +++ b/test/functional/cases/121_json/lib.robot @@ -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] diff --git a/test/functional/cases/123_whitelist.robot b/test/functional/cases/123_whitelist.robot index 6482793a3..675178774 100644 --- a/test/functional/cases/123_whitelist.robot +++ b/test/functional/cases/123_whitelist.robot @@ -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 diff --git a/test/functional/cases/125_map_reload.robot b/test/functional/cases/125_map_reload.robot index be7e0a722..33ca264b5 100644 --- a/test/functional/cases/125_map_reload.robot +++ b/test/functional/cases/125_map_reload.robot @@ -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} diff --git a/test/functional/cases/131_dkim_signing/001_simple.robot b/test/functional/cases/131_dkim_signing/001_simple.robot index 2bcd53f36..6185ec2e4 100644 --- a/test/functional/cases/131_dkim_signing/001_simple.robot +++ b/test/functional/cases/131_dkim_signing/001_simple.robot @@ -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 diff --git a/test/functional/cases/131_dkim_signing/002_redis.robot b/test/functional/cases/131_dkim_signing/002_redis.robot index e87749a0a..45611c2bc 100644 --- a/test/functional/cases/131_dkim_signing/002_redis.robot +++ b/test/functional/cases/131_dkim_signing/002_redis.robot @@ -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 diff --git a/test/functional/cases/131_dkim_signing/003_eddsa.robot b/test/functional/cases/131_dkim_signing/003_eddsa.robot index ea2fe03be..37c01893d 100644 --- a/test/functional/cases/131_dkim_signing/003_eddsa.robot +++ b/test/functional/cases/131_dkim_signing/003_eddsa.robot @@ -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 diff --git a/test/functional/cases/131_dkim_signing/004_invalidate_key.robot b/test/functional/cases/131_dkim_signing/004_invalidate_key.robot index 2cf34e305..812a77e00 100644 --- a/test/functional/cases/131_dkim_signing/004_invalidate_key.robot +++ b/test/functional/cases/131_dkim_signing/004_invalidate_key.robot @@ -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 diff --git a/test/functional/cases/131_dkim_signing/005_multiple.robot b/test/functional/cases/131_dkim_signing/005_multiple.robot index 72222f460..2d35380a3 100644 --- a/test/functional/cases/131_dkim_signing/005_multiple.robot +++ b/test/functional/cases/131_dkim_signing/005_multiple.robot @@ -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 diff --git a/test/functional/cases/131_dkim_signing/006_milter.robot b/test/functional/cases/131_dkim_signing/006_milter.robot index cd48a62b7..9e327b116 100644 --- a/test/functional/cases/131_dkim_signing/006_milter.robot +++ b/test/functional/cases/131_dkim_signing/006_milter.robot @@ -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} diff --git a/test/functional/cases/131_dkim_signing/007_sign_maps.robot b/test/functional/cases/131_dkim_signing/007_sign_maps.robot index 69d4c9a92..13dfb077e 100644 --- a/test/functional/cases/131_dkim_signing/007_sign_maps.robot +++ b/test/functional/cases/131_dkim_signing/007_sign_maps.robot @@ -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 diff --git a/test/functional/cases/135_spamassassin.robot b/test/functional/cases/135_spamassassin.robot index d8d075b00..09fdb1bcb 100644 --- a/test/functional/cases/135_spamassassin.robot +++ b/test/functional/cases/135_spamassassin.robot @@ -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 diff --git a/test/functional/cases/140_proxy.robot b/test/functional/cases/140_proxy.robot index 39b3faf87..bd6a23b68 100644 --- a/test/functional/cases/140_proxy.robot +++ b/test/functional/cases/140_proxy.robot @@ -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 diff --git a/test/functional/cases/160_antivirus.robot b/test/functional/cases/160_antivirus.robot index 8ad9d2bce..2aab36538 100644 --- a/test/functional/cases/160_antivirus.robot +++ b/test/functional/cases/160_antivirus.robot @@ -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 diff --git a/test/functional/cases/161_p0f.robot b/test/functional/cases/161_p0f.robot index f3d7e7d8e..1c8c07d58 100644 --- a/test/functional/cases/161_p0f.robot +++ b/test/functional/cases/161_p0f.robot @@ -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 diff --git a/test/functional/cases/162_url_redirector.robot b/test/functional/cases/162_url_redirector.robot index dd812b21e..afc7a8315 100644 --- a/test/functional/cases/162_url_redirector.robot +++ b/test/functional/cases/162_url_redirector.robot @@ -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 diff --git a/test/functional/cases/180_milter.robot b/test/functional/cases/180_milter.robot index ddbbf9799..4f1d6ea2b 100644 --- a/test/functional/cases/180_milter.robot +++ b/test/functional/cases/180_milter.robot @@ -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} diff --git a/test/functional/cases/220_http.robot b/test/functional/cases/220_http.robot index d6573a3eb..c8f7bf99b 100644 --- a/test/functional/cases/220_http.robot +++ b/test/functional/cases/220_http.robot @@ -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 diff --git a/test/functional/cases/230_tcp.robot b/test/functional/cases/230_tcp.robot index 3d9aba126..d08a4c8e0 100644 --- a/test/functional/cases/230_tcp.robot +++ b/test/functional/cases/230_tcp.robot @@ -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 diff --git a/test/functional/cases/231_tcp_down.robot b/test/functional/cases/231_tcp_down.robot index e68e2053a..25a55dd2d 100644 --- a/test/functional/cases/231_tcp_down.robot +++ b/test/functional/cases/231_tcp_down.robot @@ -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 diff --git a/test/functional/cases/240_redis.robot b/test/functional/cases/240_redis.robot index 169523330..307a6cdb0 100644 --- a/test/functional/cases/240_redis.robot +++ b/test/functional/cases/240_redis.robot @@ -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} diff --git a/test/functional/cases/241_redis_is_dead.robot b/test/functional/cases/241_redis_is_dead.robot index 223ada965..9a67c61e6 100644 --- a/test/functional/cases/241_redis_is_dead.robot +++ b/test/functional/cases/241_redis_is_dead.robot @@ -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 diff --git a/test/functional/cases/250_dns.robot b/test/functional/cases/250_dns.robot index fa13d6d10..e08c1913e 100644 --- a/test/functional/cases/250_dns.robot +++ b/test/functional/cases/250_dns.robot @@ -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 diff --git a/test/functional/cases/260_regex.robot b/test/functional/cases/260_regex.robot index f19e389a0..9e3b7f9be 100644 --- a/test/functional/cases/260_regex.robot +++ b/test/functional/cases/260_regex.robot @@ -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 diff --git a/test/functional/cases/270_selector.robot b/test/functional/cases/270_selector.robot index bf74a327e..55bcc887a 100644 --- a/test/functional/cases/270_selector.robot +++ b/test/functional/cases/270_selector.robot @@ -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 diff --git a/test/functional/cases/280_rules.robot b/test/functional/cases/280_rules.robot index ec8e12fb2..a9323791d 100644 --- a/test/functional/cases/280_rules.robot +++ b/test/functional/cases/280_rules.robot @@ -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 diff --git a/test/functional/cases/281_fnames.robot b/test/functional/cases/281_fnames.robot index b76544d97..9516e2c1a 100644 --- a/test/functional/cases/281_fnames.robot +++ b/test/functional/cases/281_fnames.robot @@ -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} diff --git a/test/functional/cases/290_greylist.robot b/test/functional/cases/290_greylist.robot index 8b746bc0f..3ffbead4b 100644 --- a/test/functional/cases/290_greylist.robot +++ b/test/functional/cases/290_greylist.robot @@ -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 diff --git a/test/functional/cases/300_rbl.robot b/test/functional/cases/300_rbl.robot index 55f46e5fd..44c326820 100644 --- a/test/functional/cases/300_rbl.robot +++ b/test/functional/cases/300_rbl.robot @@ -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 diff --git a/test/functional/cases/310_udp.robot b/test/functional/cases/310_udp.robot index 3da02729b..49f43117f 100644 --- a/test/functional/cases/310_udp.robot +++ b/test/functional/cases/310_udp.robot @@ -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 diff --git a/test/functional/cases/320_arc_signing/001_simple.robot b/test/functional/cases/320_arc_signing/001_simple.robot index 73623574b..ecfd02379 100644 --- a/test/functional/cases/320_arc_signing/001_simple.robot +++ b/test/functional/cases/320_arc_signing/001_simple.robot @@ -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 diff --git a/test/functional/cases/320_arc_signing/002_redis.robot b/test/functional/cases/320_arc_signing/002_redis.robot index 2fde59164..b494a3298 100644 --- a/test/functional/cases/320_arc_signing/002_redis.robot +++ b/test/functional/cases/320_arc_signing/002_redis.robot @@ -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 diff --git a/test/functional/cases/321_arc_check.robot b/test/functional/cases/321_arc_check.robot index 6cbc00b44..3f68034ce 100644 --- a/test/functional/cases/321_arc_check.robot +++ b/test/functional/cases/321_arc_check.robot @@ -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} diff --git a/test/functional/cases/330_neural/001_autotrain.robot b/test/functional/cases/330_neural/001_autotrain.robot index 8ce342838..b4851f7c3 100644 --- a/test/functional/cases/330_neural/001_autotrain.robot +++ b/test/functional/cases/330_neural/001_autotrain.robot @@ -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} diff --git a/test/functional/cases/330_neural/002_manualtrain.robot b/test/functional/cases/330_neural/002_manualtrain.robot index 22a42120e..21fc0093b 100644 --- a/test/functional/cases/330_neural/002_manualtrain.robot +++ b/test/functional/cases/330_neural/002_manualtrain.robot @@ -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} diff --git a/test/functional/cases/340_surbl.robot b/test/functional/cases/340_surbl.robot index 904594126..9174997d3 100644 --- a/test/functional/cases/340_surbl.robot +++ b/test/functional/cases/340_surbl.robot @@ -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 diff --git a/test/functional/cases/350_magic.robot b/test/functional/cases/350_magic.robot index 941d3c344..e7d7810e8 100644 --- a/test/functional/cases/350_magic.robot +++ b/test/functional/cases/350_magic.robot @@ -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} diff --git a/test/functional/cases/360_force_actions.robot b/test/functional/cases/360_force_actions.robot index b095e78bf..553a59363 100644 --- a/test/functional/cases/360_force_actions.robot +++ b/test/functional/cases/360_force_actions.robot @@ -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 diff --git a/test/functional/configs/antivirus.conf b/test/functional/configs/antivirus.conf index d38c69a42..8b971a588 100644 --- a/test/functional/configs/antivirus.conf +++ b/test/functional/configs/antivirus.conf @@ -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 =}"; } } diff --git a/test/functional/configs/arc.conf b/test/functional/configs/arc.conf index 5f8797fe8..8a8a525c7 100644 --- a/test/functional/configs/arc.conf +++ b/test/functional/configs/arc.conf @@ -1 +1,3 @@ -arc { } \ No newline at end of file +.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf" + +arc { } diff --git a/test/functional/configs/arc_signing/redis.conf b/test/functional/configs/arc_signing/redis.conf index b2a9aa134..0d049c372 100644 --- a/test/functional/configs/arc_signing/redis.conf +++ b/test/functional/configs/arc_signing/redis.conf @@ -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 =}"; } diff --git a/test/functional/configs/arc_signing/simple.conf b/test/functional/configs/arc_signing/simple.conf index 5807d7346..f559e61bd 100644 --- a/test/functional/configs/arc_signing/simple.conf +++ b/test/functional/configs/arc_signing/simple.conf @@ -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"; diff --git a/test/functional/configs/composites.conf b/test/functional/configs/composites.conf index 71e453def..28b645e60 100644 --- a/test/functional/configs/composites.conf +++ b/test/functional/configs/composites.conf @@ -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 { diff --git a/test/functional/configs/dkim.conf b/test/functional/configs/dkim.conf index cc2f6f250..50712d17b 100644 --- a/test/functional/configs/dkim.conf +++ b/test/functional/configs/dkim.conf @@ -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"; diff --git a/test/functional/configs/dkim_signing/eddsa.conf b/test/functional/configs/dkim_signing/eddsa.conf index 1a93c9e0b..a8cdfaa78 100644 --- a/test/functional/configs/dkim_signing/eddsa.conf +++ b/test/functional/configs/dkim_signing/eddsa.conf @@ -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; diff --git a/test/functional/configs/dkim_signing/invalidate.conf b/test/functional/configs/dkim_signing/invalidate.conf index 48b1cec16..b7913cd0a 100644 --- a/test/functional/configs/dkim_signing/invalidate.conf +++ b/test/functional/configs/dkim_signing/invalidate.conf @@ -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; diff --git a/test/functional/configs/dkim_signing/milter.conf b/test/functional/configs/dkim_signing/milter.conf index 263ed0b4e..a373e16b0 100644 --- a/test/functional/configs/dkim_signing/milter.conf +++ b/test/functional/configs/dkim_signing/milter.conf @@ -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" diff --git a/test/functional/configs/dkim_signing/multiple.conf b/test/functional/configs/dkim_signing/multiple.conf index 072842183..029c2b5e9 100644 --- a/test/functional/configs/dkim_signing/multiple.conf +++ b/test/functional/configs/dkim_signing/multiple.conf @@ -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"; } } diff --git a/test/functional/configs/dkim_signing/redis.conf b/test/functional/configs/dkim_signing/redis.conf index 903a13cf4..02dc2eacd 100644 --- a/test/functional/configs/dkim_signing/redis.conf +++ b/test/functional/configs/dkim_signing/redis.conf @@ -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 =}"; } diff --git a/test/functional/configs/dkim_signing/sign_maps.conf b/test/functional/configs/dkim_signing/sign_maps.conf index 9e63b7fc4..6993f1f21 100644 --- a/test/functional/configs/dkim_signing/sign_maps.conf +++ b/test/functional/configs/dkim_signing/sign_maps.conf @@ -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 +} diff --git a/test/functional/configs/dkim_signing/simple.conf b/test/functional/configs/dkim_signing/simple.conf index 14b8d5ec6..9b812ec7e 100644 --- a/test/functional/configs/dkim_signing/simple.conf +++ b/test/functional/configs/dkim_signing/simple.conf @@ -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; diff --git a/test/functional/configs/dmarc.conf b/test/functional/configs/dmarc.conf index b6164f9d2..130e5612c 100644 --- a/test/functional/configs/dmarc.conf +++ b/test/functional/configs/dmarc.conf @@ -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 index 000000000..e69de29bb diff --git a/test/functional/configs/force_actions.conf b/test/functional/configs/force_actions.conf index 61732c4ac..aed3d05fa 100644 --- a/test/functional/configs/force_actions.conf +++ b/test/functional/configs/force_actions.conf @@ -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 index 000000000..522081b08 --- /dev/null +++ b/test/functional/configs/fuzzy-encryption-key.conf @@ -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 =}; diff --git a/test/functional/configs/fuzzy.conf b/test/functional/configs/fuzzy.conf index bc4e72e7b..8af1cfa3f 100644 --- a/test/functional/configs/fuzzy.conf +++ b/test/functional/configs/fuzzy.conf @@ -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 =}; } } } diff --git a/test/functional/configs/greylist.conf b/test/functional/configs/greylist.conf index 5e12accf9..d47500ce8 100644 --- a/test/functional/configs/greylist.conf +++ b/test/functional/configs/greylist.conf @@ -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; diff --git a/test/functional/configs/lua_script.conf b/test/functional/configs/lua_script.conf index 2bde672fe..8798bff37 100644 --- a/test/functional/configs/lua_script.conf +++ b/test/functional/configs/lua_script.conf @@ -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 =}"; diff --git a/test/functional/configs/lua_test.conf b/test/functional/configs/lua_test.conf index ebdcff860..1d36536dd 100644 --- a/test/functional/configs/lua_test.conf +++ b/test/functional/configs/lua_test.conf @@ -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 =}"; diff --git a/test/functional/configs/mid.conf b/test/functional/configs/mid.conf index 49f5cb568..ce024299a 100644 --- a/test/functional/configs/mid.conf +++ b/test/functional/configs/mid.conf @@ -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" ]; } } diff --git a/test/functional/configs/milter.conf b/test/functional/configs/milter.conf index e09ee48d8..aaf148c12 100644 --- a/test/functional/configs/milter.conf +++ b/test/functional/configs/milter.conf @@ -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; diff --git a/test/functional/configs/mime_types.conf b/test/functional/configs/mime_types.conf index e28feba98..82bd4187c 100644 --- a/test/functional/configs/mime_types.conf +++ b/test/functional/configs/mime_types.conf @@ -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"; } diff --git a/test/functional/configs/multimap.conf b/test/functional/configs/multimap.conf index 9158f657c..c59c1ac57 100644 --- a/test/functional/configs/multimap.conf +++ b/test/functional/configs/multimap.conf @@ -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"; } } diff --git a/test/functional/configs/neural.conf b/test/functional/configs/neural.conf index 871a549fe..7a7f36ffc 100644 --- a/test/functional/configs/neural.conf +++ b/test/functional/configs/neural.conf @@ -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"; diff --git a/test/functional/configs/neural_noauto.conf b/test/functional/configs/neural_noauto.conf index 55f0a4283..e228da850 100644 --- a/test/functional/configs/neural_noauto.conf +++ b/test/functional/configs/neural_noauto.conf @@ -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"; diff --git a/test/functional/configs/p0f.conf b/test/functional/configs/p0f.conf index 69303772a..cb492f9b7 100644 --- a/test/functional/configs/p0f.conf +++ b/test/functional/configs/p0f.conf @@ -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.*'; diff --git a/test/functional/configs/password.conf b/test/functional/configs/password.conf index 922301844..27b88eec3 100644 --- a/test/functional/configs/password.conf +++ b/test/functional/configs/password.conf @@ -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"; diff --git a/test/functional/configs/phishing.conf b/test/functional/configs/phishing.conf index 2b029f687..aa6eb8fe9 100644 --- a/test/functional/configs/phishing.conf +++ b/test/functional/configs/phishing.conf @@ -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" ] } } diff --git a/test/functional/configs/plugins.conf b/test/functional/configs/plugins.conf index 35a2ce347..803eccefe 100644 --- a/test/functional/configs/plugins.conf +++ b/test/functional/configs/plugins.conf @@ -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"; diff --git a/test/functional/configs/proxy.conf b/test/functional/configs/proxy.conf index c2bb3902d..ff31eaea0 100644 --- a/test/functional/configs/proxy.conf +++ b/test/functional/configs/proxy.conf @@ -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"; diff --git a/test/functional/configs/rbl.conf b/test/functional/configs/rbl.conf index 4999e60d7..c5caa2e50 100644 --- a/test/functional/configs/rbl.conf +++ b/test/functional/configs/rbl.conf @@ -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 diff --git a/test/functional/configs/redis.conf b/test/functional/configs/redis.conf index 2da10faf7..8b3f0c484 100644 --- a/test/functional/configs/redis.conf +++ b/test/functional/configs/redis.conf @@ -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; } diff --git a/test/functional/configs/regexp.conf b/test/functional/configs/regexp.conf index 5b4047b5b..06f22c998 100644 --- a/test/functional/configs/regexp.conf +++ b/test/functional/configs/regexp.conf @@ -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" diff --git a/test/functional/configs/selector.conf b/test/functional/configs/selector.conf index d4e872d36..b99ae5639 100644 --- a/test/functional/configs/selector.conf +++ b/test/functional/configs/selector.conf @@ -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" diff --git a/test/functional/configs/settings.conf b/test/functional/configs/settings.conf index 8155ded91..db7c3ca5e 100644 --- a/test/functional/configs/settings.conf +++ b/test/functional/configs/settings.conf @@ -1,4 +1,6 @@ -lua = ${LUA_SCRIPT}; +.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf" + +lua = "{= env.LUA_SCRIPT =}"; settings { id_test { diff --git a/test/functional/configs/spamassassin.conf b/test/functional/configs/spamassassin.conf index 53aa89ec7..0b669512a 100644 --- a/test/functional/configs/spamassassin.conf +++ b/test/functional/configs/spamassassin.conf @@ -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" diff --git a/test/functional/configs/stats.conf b/test/functional/configs/stats.conf index f79729f39..bfa39b426 100644 --- a/test/functional/configs/stats.conf +++ b/test/functional/configs/stats.conf @@ -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 {} diff --git a/test/functional/configs/surbl.conf b/test/functional/configs/surbl.conf index 6e3a40e18..fe6368277 100644 --- a/test/functional/configs/surbl.conf +++ b/test/functional/configs/surbl.conf @@ -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 +} diff --git a/test/functional/configs/trivial.conf b/test/functional/configs/trivial.conf index 5d4aa0af6..97e3a301e 100644 --- a/test/functional/configs/trivial.conf +++ b/test/functional/configs/trivial.conf @@ -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" diff --git a/test/functional/configs/url_redirector.conf b/test/functional/configs/url_redirector.conf index f61fa3086..e6009ba66 100644 --- a/test/functional/configs/url_redirector.conf +++ b/test/functional/configs/url_redirector.conf @@ -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"; } diff --git a/test/functional/configs/whitelist.conf b/test/functional/configs/whitelist.conf index d7592fc35..db264aa42 100644 --- a/test/functional/configs/whitelist.conf +++ b/test/functional/configs/whitelist.conf @@ -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; } diff --git a/test/functional/lib/rspamd.robot b/test/functional/lib/rspamd.robot index c52bcc51a..04471d5c0 100644 --- a/test/functional/lib/rspamd.robot +++ b/test/functional/lib/rspamd.robot @@ -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 -- cgit v1.2.3