Browse Source

[Test] Use lupa for templating rspamd configs

pull/3734/head
Andrew Lewis 5 years ago
parent
commit
db4da2c22d
  1. 2
      test/functional/cases/100_general.robot
  2. 2
      test/functional/cases/101_lua.robot
  3. 6
      test/functional/cases/102_multimap.robot
  4. 2
      test/functional/cases/103_password.robot
  5. 6
      test/functional/cases/104_get_from.robot
  6. 6
      test/functional/cases/105_mimetypes.robot
  7. 10
      test/functional/cases/106_mid.robot
  8. 7
      test/functional/cases/108_settings.robot
  9. 10
      test/functional/cases/109_composites.robot
  10. 12
      test/functional/cases/110_statistics/lib.robot
  11. 7
      test/functional/cases/110_statistics/redis-keyed-siphash.robot
  12. 7
      test/functional/cases/110_statistics/redis-keyed-xxhash.robot
  13. 5
      test/functional/cases/110_statistics/redis-plain-siphash.robot
  14. 5
      test/functional/cases/110_statistics/redis-plain-xxhash.robot
  15. 6
      test/functional/cases/114_phishing.robot
  16. 6
      test/functional/cases/115_dmarc.robot
  17. 6
      test/functional/cases/116_dkim.robot
  18. 6
      test/functional/cases/117_spf.robot
  19. 44
      test/functional/cases/120_fuzzy/lib.robot
  20. 2
      test/functional/cases/121_json/100_preresult.robot
  21. 2
      test/functional/cases/121_json/101_simple.robot
  22. 3
      test/functional/cases/121_json/lib.robot
  23. 6
      test/functional/cases/123_whitelist.robot
  24. 2
      test/functional/cases/125_map_reload.robot
  25. 15
      test/functional/cases/131_dkim_signing/001_simple.robot
  26. 12
      test/functional/cases/131_dkim_signing/002_redis.robot
  27. 15
      test/functional/cases/131_dkim_signing/003_eddsa.robot
  28. 6
      test/functional/cases/131_dkim_signing/004_invalidate_key.robot
  29. 15
      test/functional/cases/131_dkim_signing/005_multiple.robot
  30. 8
      test/functional/cases/131_dkim_signing/006_milter.robot
  31. 15
      test/functional/cases/131_dkim_signing/007_sign_maps.robot
  32. 10
      test/functional/cases/135_spamassassin.robot
  33. 36
      test/functional/cases/140_proxy.robot
  34. 7
      test/functional/cases/160_antivirus.robot
  35. 7
      test/functional/cases/161_p0f.robot
  36. 8
      test/functional/cases/162_url_redirector.robot
  37. 5
      test/functional/cases/180_milter.robot
  38. 7
      test/functional/cases/220_http.robot
  39. 2
      test/functional/cases/230_tcp.robot
  40. 7
      test/functional/cases/231_tcp_down.robot
  41. 17
      test/functional/cases/240_redis.robot
  42. 21
      test/functional/cases/241_redis_is_dead.robot
  43. 2
      test/functional/cases/250_dns.robot
  44. 16
      test/functional/cases/260_regex.robot
  45. 8
      test/functional/cases/270_selector.robot
  46. 6
      test/functional/cases/280_rules.robot
  47. 17
      test/functional/cases/281_fnames.robot
  48. 6
      test/functional/cases/290_greylist.robot
  49. 6
      test/functional/cases/300_rbl.robot
  50. 7
      test/functional/cases/310_udp.robot
  51. 15
      test/functional/cases/320_arc_signing/001_simple.robot
  52. 12
      test/functional/cases/320_arc_signing/002_redis.robot
  53. 6
      test/functional/cases/321_arc_check.robot
  54. 10
      test/functional/cases/330_neural/001_autotrain.robot
  55. 10
      test/functional/cases/330_neural/002_manualtrain.robot
  56. 6
      test/functional/cases/340_surbl.robot
  57. 115
      test/functional/cases/350_magic.robot
  58. 6
      test/functional/cases/360_force_actions.robot
  59. 12
      test/functional/configs/antivirus.conf
  60. 4
      test/functional/configs/arc.conf
  61. 4
      test/functional/configs/arc_signing/redis.conf
  62. 4
      test/functional/configs/arc_signing/simple.conf
  63. 16
      test/functional/configs/composites.conf
  64. 42
      test/functional/configs/dkim.conf
  65. 4
      test/functional/configs/dkim_signing/eddsa.conf
  66. 4
      test/functional/configs/dkim_signing/invalidate.conf
  67. 32
      test/functional/configs/dkim_signing/milter.conf
  68. 6
      test/functional/configs/dkim_signing/multiple.conf
  69. 4
      test/functional/configs/dkim_signing/redis.conf
  70. 4
      test/functional/configs/dkim_signing/sign_maps.conf
  71. 4
      test/functional/configs/dkim_signing/simple.conf
  72. 6
      test/functional/configs/dmarc.conf
  73. 0
      test/functional/configs/empty.conf
  74. 4
      test/functional/configs/force_actions.conf
  75. 2
      test/functional/configs/fuzzy-encryption-key.conf
  76. 55
      test/functional/configs/fuzzy.conf
  77. 4
      test/functional/configs/greylist.conf
  78. 14
      test/functional/configs/lua_script.conf
  79. 18
      test/functional/configs/lua_test.conf
  80. 6
      test/functional/configs/mid.conf
  81. 26
      test/functional/configs/milter.conf
  82. 6
      test/functional/configs/mime_types.conf
  83. 48
      test/functional/configs/multimap.conf
  84. 22
      test/functional/configs/neural.conf
  85. 22
      test/functional/configs/neural_noauto.conf
  86. 6
      test/functional/configs/p0f.conf
  87. 26
      test/functional/configs/password.conf
  88. 6
      test/functional/configs/phishing.conf
  89. 21
      test/functional/configs/plugins.conf
  90. 16
      test/functional/configs/proxy.conf
  91. 4
      test/functional/configs/rbl.conf
  92. 6
      test/functional/configs/redis.conf
  93. 18
      test/functional/configs/regexp.conf
  94. 4
      test/functional/configs/selector.conf
  95. 4
      test/functional/configs/settings.conf
  96. 8
      test/functional/configs/spamassassin.conf
  97. 34
      test/functional/configs/stats.conf
  98. 6
      test/functional/configs/surbl.conf
  99. 22
      test/functional/configs/trivial.conf
  100. 6
      test/functional/configs/url_redirector.conf

2
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

2
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}

6
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

2
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}

6
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}

6
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}

10
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

7
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

10
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
Do Not Expect Symbol SYMOPTS1
*** Keywords ***
Composites Setup
New Setup LUA_SCRIPT=${LUA_SCRIPT}

12
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}

7
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

7
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

5
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

5
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

6
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}

6
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}

6
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

6
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}

44
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

2
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

2
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

3
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]

6
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

2
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}

15
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

12
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

15
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

6
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

15
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

8
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}

15
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

10
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

36
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

7
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

7
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

8
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

5
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}

7
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

2
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

7
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

17
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}

21
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

2
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

16
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

8
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

6
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

17
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}

6
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

6
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

7
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

15
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

12
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

6
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}

10
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}

10
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}

6
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

115
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}

6
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

12
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 =}";
}
}

4
test/functional/configs/arc.conf

@ -1 +1,3 @@
arc { }
.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
arc { }

4
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 =}";
}

4
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";

16
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 {

42
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";

4
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;

4
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;

32
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"

6
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";
}
}

4
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 =}";
}

4
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=",
];
}
}

4
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;

6
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",
];
}
}

0
test/functional/configs/empty.conf

4
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 {
}
}
}
}
}

2
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 =};

55
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 =};
}
}
}

4
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;

14
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 =}";

18
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 =}";

6
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"
];
}
}

26
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;

6
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";
}

48
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";
}
}

22
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";
lua = "{= env.TESTDIR =}/lua/neural.lua";

22
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";

6
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.*';

26
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";

6
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"
]
}
}

21
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";

16
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";

4
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

6
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;
}

18
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"

4
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"

4
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 {

8
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"

34
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 {}

6
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;
}
}
}
}

22
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"

6
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";
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save