]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Test] Merge test suites; use settings 3747/head
authorAndrew Lewis <nerf@judo.za.org>
Tue, 11 May 2021 11:50:29 +0000 (13:50 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Tue, 18 May 2021 09:41:13 +0000 (11:41 +0200)
47 files changed:
test/functional/cases/001_merged/100_general.robot [moved from test/functional/cases/100_general.robot with 71% similarity]
test/functional/cases/001_merged/101_lua.robot [new file with mode: 0644]
test/functional/cases/001_merged/102_multimap.robot [moved from test/functional/cases/102_multimap.robot with 70% similarity]
test/functional/cases/001_merged/104_get_from.robot [moved from test/functional/cases/104_get_from.robot with 84% similarity]
test/functional/cases/001_merged/105_mimetypes.robot [moved from test/functional/cases/105_mimetypes.robot with 81% similarity]
test/functional/cases/001_merged/106_mid.robot [moved from test/functional/cases/106_mid.robot with 71% similarity]
test/functional/cases/001_merged/114_phishing.robot [moved from test/functional/cases/114_phishing.robot with 51% similarity]
test/functional/cases/001_merged/115_dmarc.robot [moved from test/functional/cases/115_dmarc.robot with 80% similarity]
test/functional/cases/001_merged/117_spf.robot [moved from test/functional/cases/117_spf.robot with 81% similarity]
test/functional/cases/001_merged/160_antivirus.robot [moved from test/functional/cases/160_antivirus.robot with 84% similarity]
test/functional/cases/001_merged/220_http.robot [new file with mode: 0644]
test/functional/cases/001_merged/230_tcp.robot [moved from test/functional/cases/230_tcp.robot with 78% similarity]
test/functional/cases/001_merged/231_tcp_down.robot [new file with mode: 0644]
test/functional/cases/001_merged/240_redis.robot [moved from test/functional/cases/240_redis.robot with 58% similarity]
test/functional/cases/001_merged/250_dns.robot [moved from test/functional/cases/250_dns.robot with 70% similarity]
test/functional/cases/001_merged/270_selector.robot [moved from test/functional/cases/270_selector.robot with 60% similarity]
test/functional/cases/001_merged/280_rules.robot [moved from test/functional/cases/280_rules.robot with 70% similarity]
test/functional/cases/001_merged/281_fnames.robot [moved from test/functional/cases/281_fnames.robot with 55% similarity]
test/functional/cases/001_merged/290_greylist.robot [moved from test/functional/cases/290_greylist.robot with 61% similarity]
test/functional/cases/001_merged/300_rbl.robot [moved from test/functional/cases/300_rbl.robot with 74% similarity]
test/functional/cases/001_merged/310_udp.robot [moved from test/functional/cases/310_udp.robot with 79% similarity]
test/functional/cases/001_merged/321_arc_check.robot [moved from test/functional/cases/321_arc_check.robot with 63% similarity]
test/functional/cases/001_merged/340_surbl.robot [moved from test/functional/cases/340_surbl.robot with 83% similarity]
test/functional/cases/001_merged/350_magic.robot [moved from test/functional/cases/350_magic.robot with 82% similarity]
test/functional/cases/001_merged/__init__.robot [new file with mode: 0644]
test/functional/cases/101_lua.robot
test/functional/cases/220_http.robot [deleted file]
test/functional/cases/231_tcp_down.robot [deleted file]
test/functional/cases/241_redis_is_dead.robot
test/functional/cases/260_regex.robot
test/functional/configs/antivirus.conf [deleted file]
test/functional/configs/arc.conf [deleted file]
test/functional/configs/dmarc.conf [deleted file]
test/functional/configs/greylist.conf [deleted file]
test/functional/configs/merged-local.conf [new file with mode: 0644]
test/functional/configs/merged-override.conf [moved from test/functional/configs/multimap.conf with 50% similarity]
test/functional/configs/merged.conf [new file with mode: 0644]
test/functional/configs/mid.conf [deleted file]
test/functional/configs/mime_types.conf [deleted file]
test/functional/configs/phishing.conf [deleted file]
test/functional/configs/rbl.conf [deleted file]
test/functional/configs/selector.conf [deleted file]
test/functional/configs/surbl.conf [deleted file]
test/functional/lib/rspamd.robot
test/functional/lua/get_from.lua
test/functional/lua/http.lua
test/functional/lua/maps_kv.lua

similarity index 71%
rename from test/functional/cases/100_general.robot
rename to test/functional/cases/001_merged/100_general.robot
index e76b07c5426cffe4fea1bb305629949069e4bd69..b06dd14927eee308bb1c978ba3836f16bf50c7a8 100644 (file)
@@ -1,33 +1,32 @@
 *** Settings ***
-Suite Setup     Rspamd Setup
-Suite Teardown  Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/trivial.conf
-${GTUBE}           ${RSPAMD_TESTDIR}/messages/gtube.eml
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
+${GTUBE}               ${RSPAMD_TESTDIR}/messages/gtube.eml
+${SETTINGS_NOSYMBOLS}  {symbols_enabled = []}
 
 *** Test Cases ***
 GTUBE
   Scan File  ${GTUBE}
+  ...  Settings=${SETTINGS_NOSYMBOLS}
   Expect Symbol  GTUBE
 
 GTUBE - Encrypted
   ${result} =  Run Rspamc  -p  -h  ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_NORMAL}  --key  ${RSPAMD_KEY_PUB1}
-  ...  ${GTUBE}
+  ...  ${GTUBE}  --header=Settings=${SETTINGS_NOSYMBOLS}
   Check Rspamc  ${result}  GTUBE (
 
 GTUBE - Scan File feature
   Scan File By Reference  ${GTUBE}
+  ...  Settings=${SETTINGS_NOSYMBOLS}
   Expect Symbol  GTUBE
 
 GTUBE - Scan File feature (encoded)
   ${encoded} =  Encode Filename  ${GTUBE}
   Scan File By Reference  ${encoded}
+  ...  Settings=${SETTINGS_NOSYMBOLS}
   Expect Symbol  GTUBE
 
 GTUBE - SPAMC
@@ -39,12 +38,14 @@ GTUBE - RSPAMC
   Should Contain  ${result}  GTUBE
 
 EMAILS DETECTION 1
-  Scan File  ${RSPAMD_TESTDIR}/messages/emails1.eml  URL-Format=Extended
+  Scan File  ${RSPAMD_TESTDIR}/messages/emails1.eml
+  ...  URL-Format=Extended  Settings=${SETTINGS_NOSYMBOLS}
   Expect Email  jim@example.net
   Expect Email  bob@example.net
   Expect Email  rupert@example.net
 
 EMAILS DETECTION ZEROFONT
   Scan File  ${RSPAMD_TESTDIR}/messages/zerofont.eml
+  ...  Settings={symbols_enabled = [MANY_INVISIBLE_PARTS, ZERO_FONT]}
   Expect Symbol  MANY_INVISIBLE_PARTS
   Expect Symbol  ZERO_FONT
diff --git a/test/functional/cases/001_merged/101_lua.robot b/test/functional/cases/001_merged/101_lua.robot
new file mode 100644 (file)
index 0000000..2363739
--- /dev/null
@@ -0,0 +1,41 @@
+*** Settings ***
+Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
+Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
+Variables       ${RSPAMD_TESTDIR}/lib/vars.py
+
+*** Variables ***
+${MESSAGE}            ${RSPAMD_TESTDIR}/messages/spam_message.eml
+${RSPAMD_MAP_MAP}     ${RSPAMD_TESTDIR}/configs/maps/map.list
+${RSPAMD_RADIX_MAP}   ${RSPAMD_TESTDIR}/configs/maps/ip2.list
+${RSPAMD_REGEXP_MAP}  ${RSPAMD_TESTDIR}/configs/maps/regexp.list
+
+*** Test Cases ***
+Recipient Parsing Sanity
+  Scan File  ${MESSAGE}  Rcpt=rcpt1@foobar,rcpt2@foobar,rcpt3@foobar,rcpt4@foobar
+  ...  Settings={symbols_enabled = [TEST_RCPT]}
+  Expect Symbol With Exact Options  TEST_RCPT  rcpt1@foobar,rcpt2@foobar,rcpt3@foobar,rcpt4@foobar
+
+TLD parts
+  Scan File  ${MESSAGE}  Settings={symbols_enabled = [TEST_TLD]}
+  Expect Symbol With Exact Options  TEST_TLD  no worry
+
+Hashes
+  Scan File  ${MESSAGE}  Settings={symbols_enabled = [TEST_HASHES]}
+  Expect Symbol With Exact Options  TEST_HASHES  no worry
+
+Maps Key Values
+  Scan File  ${MESSAGE}  Settings={symbols_enabled = [RADIX_KV, REGEXP_KV, MAP_KV]}
+  Expect Symbol With Exact Options  RADIX_KV  no worry
+  Expect Symbol With Exact Options  REGEXP_KV  no worry
+  Expect Symbol With Exact Options  MAP_KV  no worry
+
+Option Order
+  Scan File  ${MESSAGE}  Settings={symbols_enabled = [OPTION_ORDER, TBL_OPTION_ORDER]}
+  Expect Symbol With Exact Options  OPTION_ORDER  one  two  three  4  5  a
+  Expect Symbol With Exact Options  TBL_OPTION_ORDER  one  two  three  4  5  a
+
+Rule conditions
+  Scan File  ${MESSAGE}  Settings={symbols_enabled = [ANY_A]}
+  Expect Symbol With Option  ANY_A  hello3
+  Expect Symbol With Option  ANY_A  hello1
+  Expect Symbol With Option  ANY_A  hello2
similarity index 70%
rename from test/functional/cases/102_multimap.robot
rename to test/functional/cases/001_merged/102_multimap.robot
index 8085ad748abca0829e2597b5782ccedd86a30730..fcd75a8bcd29c76b5869885c8ae0af622e928d09 100644 (file)
@@ -1,21 +1,15 @@
 *** Settings ***
-Suite Setup     Rspamd Redis Setup
-Suite Teardown  Rspamd Redis Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/multimap.conf
 ${FREEMAIL_CC}     ${RSPAMD_TESTDIR}/messages/freemailcc.eml
 ${MESSAGE}         ${RSPAMD_TESTDIR}/messages/spam_message.eml
 ${RCVD1}           ${RSPAMD_TESTDIR}/messages/received1.eml
 ${RCVD2}           ${RSPAMD_TESTDIR}/messages/received2.eml
 ${RCVD3}           ${RSPAMD_TESTDIR}/messages/received3.eml
 ${RCVD4}           ${RSPAMD_TESTDIR}/messages/received4.eml
-${REDIS_SCOPE}     Suite
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
 ${URL1}            ${RSPAMD_TESTDIR}/messages/url1.eml
 ${URL2}            ${RSPAMD_TESTDIR}/messages/url2.eml
 ${URL3}            ${RSPAMD_TESTDIR}/messages/url3.eml
@@ -27,282 +21,348 @@ ${UTF_MESSAGE}     ${RSPAMD_TESTDIR}/messages/utf.eml
 *** Test Cases ***
 URL_ICS
   Scan File  ${URL_ICS}
+  ...   Settings={symbols_enabled = []}
   Expect URL  test.com
 
 MAP - DNSBL HIT
   Scan File  ${MESSAGE}  IP=127.0.0.2
+  ...   Settings={symbols_enabled = [DNSBL_MAP]}
   Expect Symbol  DNSBL_MAP
 
 MAP - DNSBL MISS
   Scan File  ${MESSAGE}  IP=127.0.0.1
+  ...   Settings={symbols_enabled = [DNSBL_MAP]}
   Do Not Expect Symbol  DNSBL_MAP
 
 MAP - IP HIT
   Scan File  ${MESSAGE}  IP=127.0.0.1
+  ...   Settings={symbols_enabled = [IP_MAP]}
   Expect Symbol  IP_MAP
 
 MAP - IP MISS
   Scan File  ${MESSAGE}  IP=127.0.0.2
+  ...   Settings={symbols_enabled = [IP_MAP]}
   Do Not Expect Symbol  IP_MAP
 
 MAP - IP MASK
   Scan File  ${MESSAGE}  IP=10.1.0.10
+  ...   Settings={symbols_enabled = [IP_MAP]}
   Expect Symbol  IP_MAP
 
 MAP - IP MASK MISS
   Scan File  ${MESSAGE}  IP=11.1.0.10
+  ...   Settings={symbols_enabled = [IP_MAP]}
   Do Not Expect Symbol  IP_MAP
 
 MAP - IP V6
   Scan File  ${MESSAGE}  IP=::1
+  ...   Settings={symbols_enabled = [IP_MAP]}
   Expect Symbol  IP_MAP
 
 MAP - IP V6 MISS
   Scan File  ${MESSAGE}  IP=fe80::1
+  ...   Settings={symbols_enabled = [IP_MAP]}
   Do Not Expect Symbol  IP_MAP
 
 MAP - FROM
   Scan File  ${MESSAGE}  From=user@example.com
+  ...   Settings={symbols_enabled = [FROM_MAP]}
   Expect Symbol  FROM_MAP
 
 MAP - COMBINED IP MASK FROM
   Scan File  ${MESSAGE}  IP=10.1.0.10  From=user@example.com
+  ...   Settings={symbols_enabled = [COMBINED_MAP_AND, COMBINED_MAP_OR]}
   Expect Symbol With Score  COMBINED_MAP_AND  10
   Expect Symbol  COMBINED_MAP_OR
 
 MAP - COMBINED IP MASK ONLY
   Scan File  ${MESSAGE}  IP=10.1.0.10
+  ...   Settings={symbols_enabled = [COMBINED_MAP_AND, COMBINED_MAP_OR]}
   Do Not Expect Symbol  COMBINED_MAP_AND
   Expect Symbol  COMBINED_MAP_OR
 
 MAP - COMBINED FROM ONLY
   Scan File  ${MESSAGE}  From=user@example.com
+  ...   Settings={symbols_enabled = [COMBINED_MAP_AND, COMBINED_MAP_OR]}
   Do Not Expect Symbol  COMBINED_MAP_AND
   Expect Symbol  COMBINED_MAP_OR
 
 MAP - COMBINED MISS
   Scan File  ${MESSAGE}  IP=11.1.0.10  From=user@other.com
+  ...   Settings={symbols_enabled = [COMBINED_MAP_AND, COMBINED_MAP_OR]}
   Do Not Expect Symbol  COMBINED_MAP_AND
   Do Not Expect Symbol  COMBINED_MAP_OR
 
 MAP - FROM MISS
   Scan File  ${MESSAGE}  From=user@other.com
+  ...   Settings={symbols_enabled = [FROM_MAP]}
   Do Not Expect Symbol  FROM_MAP
 
 MAP - FROM REGEXP
   Scan File  ${MESSAGE}  From=user123@test.com
+  ...   Settings={symbols_enabled = [REGEXP_MAP]}
   Expect Symbol  REGEXP_MAP
   Scan File  ${MESSAGE}  From=somebody@example.com
+  ...   Settings={symbols_enabled = [REGEXP_MAP]}
   Expect Symbol  REGEXP_MAP
 
 MAP - FROM REGEXP MISS
   Scan File  ${MESSAGE}  From=user@other.org
+  ...   Settings={symbols_enabled = [REGEXP_MAP]}
   Do Not Expect Symbol  REGEXP_MAP
 
 MAP - RCPT DOMAIN HIT
   Scan File  ${MESSAGE}  Rcpt=user@example.com
+  ...   Settings={symbols_enabled = [RCPT_DOMAIN]}
   Expect Symbol  RCPT_DOMAIN
 
 MAP - RCPT DOMAIN MISS
   Scan File  ${MESSAGE}  Rcpt=example.com@user
+  ...   Settings={symbols_enabled = [RCPT_DOMAIN]}
   Do Not Expect Symbol  RCPT_DOMAIN
 
 MAP - RCPT USER HIT
   Scan File  ${MESSAGE}  Rcpt=bob@example.com
+  ...   Settings={symbols_enabled = [RCPT_USER]}
   Expect Symbol  RCPT_USER
 
 MAP - RCPT USER MISS
   Scan File  ${MESSAGE}  From=example.com@bob
+  ...   Settings={symbols_enabled = [RCPT_USER]}
   Do Not Expect Symbol  RCPT_USER
 
 MAP - DEPENDS HIT
   Scan File  ${MESSAGE}  IP=88.99.142.95  From=user123@rspamd.com
+  ...   Settings={symbols_enabled = [DEPS_MAP,REGEXP_MAP,FROM_MAP,SPF_CHECK]}
   Expect Symbol  DEPS_MAP
 
 MAP - DEPENDS MISS
   Scan File  ${MESSAGE}  IP=1.2.3.4  From=user123@rspamd.com
+  ...   Settings={symbols_enabled = [DEPS_MAP,REGEXP_MAP,FROM_MAP,SPF_CHECK]}
   Do Not Expect Symbol  DEPS_MAP
 
 MAP - MULSYM PLAIN
   Scan File  ${MESSAGE}  Rcpt=user1@example.com
+  ...   Settings={symbols_enabled = [RCPT_MAP, SYM1]}
   Expect Symbol  RCPT_MAP
 
 MAP - MULSYM SCORE
   Scan File  ${MESSAGE}  Rcpt=user2@example.com
+  ...   Settings={symbols_enabled = [RCPT_MAP, SYM1]}
   Expect Symbol With Score  RCPT_MAP  10.0
 
 MAP - MULSYM SYMBOL
   Scan File  ${MESSAGE}  Rcpt=user3@example.com
+  ...   Settings={symbols_enabled = [RCPT_MAP, SYM1]}
   Expect Symbol With Score  SYM1  1.0
 
 MAP - MULSYM SYMBOL MISS
   Scan File  ${MESSAGE}  Rcpt=user4@example.com
+  ...   Settings={symbols_enabled = [RCPT_MAP, SYM1]}
   Expect Symbol With Score  RCPT_MAP  1.0
 
 MAP - MULSYM SYMBOL + SCORE
   Scan File  ${MESSAGE}  Rcpt=user5@example.com
+  ...   Settings={symbols_enabled = [RCPT_MAP, SYM1]}
   Expect Symbol With Score  SYM1  -10.1
 
 MAP - UTF
   Scan File  ${UTF_MESSAGE}
+  ...   Settings={symbols_enabled = [HEADER_MAP]}
   Expect Symbol  HEADER_MAP
 
 MAP - UTF MISS
   Scan File  ${MESSAGE}
+  ...   Settings={symbols_enabled = [HEADER_MAP]}
   Do Not Expect Symbol  HEADER_MAP
 
 MAP - HOSTNAME
   Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=example.com
+  ...   Settings={symbols_enabled = [HOSTNAME_MAP]}
   Expect Symbol  HOSTNAME_MAP
 
 MAP - HOSTNAME MISS
   Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=rspamd.com
+  ...   Settings={symbols_enabled = [HOSTNAME_MAP]}
   Do Not Expect Symbol  HOSTNAME_MAP
 
 MAP - TOP
   Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=example.com.au
+  ...   Settings={symbols_enabled = [HOSTNAME_TOP_MAP]}
   Expect Symbol  HOSTNAME_TOP_MAP
 
 MAP - TOP MISS
   Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=example.com.bg
+  ...   Settings={symbols_enabled = [HOSTNAME_TOP_MAP]}
   Do Not Expect Symbol  HOSTNAME_TOP_MAP
 
 MAP - CDB - HOSTNAME
   Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=example.com
+  ...   Settings={symbols_enabled = [CDB_HOSTNAME]}
   Expect Symbol  CDB_HOSTNAME
 
 MAP - CDB - HOSTNAME MISS
   Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=rspamd.com
+  ...   Settings={symbols_enabled = [CDB_HOSTNAME]}
   Do Not Expect Symbol  CDB_HOSTNAME
 
 MAP - REDIS - HOSTNAME
   Redis HSET  hostname  redistest.example.net  ${EMPTY}
   Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=redistest.example.net
+  ...   Settings={symbols_enabled = [REDIS_HOSTNAME]}
   Expect Symbol  REDIS_HOSTNAME
 
 MAP - REDIS - HOSTNAME MISS
   Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=rspamd.com
+  ...   Settings={symbols_enabled = [REDIS_HOSTNAME]}
   Do Not Expect Symbol  REDIS_HOSTNAME
 
 MAP - REDIS - HOSTNAME - EXPANSION - HIT
   Redis HSET  127.0.0.1.foo.com  redistest.example.net  ${EMPTY}
   Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=redistest.example.net  Rcpt=bob@foo.com
+  ...   Settings={symbols_enabled = [REDIS_HOSTNAME_EXPANSION]}
   Expect Symbol  REDIS_HOSTNAME_EXPANSION
 
 MAP - REDIS - HOSTNAME - EXPANSION - MISS
   Scan File  ${MESSAGE}  IP=127.0.0.1  Hostname=redistest.example.net  Rcpt=bob@bar.com
+  ...   Settings={symbols_enabled = [REDIS_HOSTNAME_EXPANSION]}
   Do Not Expect Symbol  REDIS_HOSTNAME_EXPANSION
 
 MAP - REDIS - IP
   Redis HSET  ipaddr  127.0.0.1  ${EMPTY}
   Scan File  ${MESSAGE}  IP=127.0.0.1
+  ...   Settings={symbols_enabled = [REDIS_IPADDR]}
   Expect Symbol  REDIS_IPADDR
 
 MAP - REDIS - IP - MISS
   Scan File  ${MESSAGE}  IP=8.8.8.8
+  ...   Settings={symbols_enabled = [REDIS_IPADDR]}
   Do Not Expect Symbol  REDIS_IPADDR
 
 MAP - REDIS - FROM
   Redis HSET  emailaddr  from@rspamd.tk  ${EMPTY}
   Scan File  ${MESSAGE}  From=from@rspamd.tk
+  ...   Settings={symbols_enabled = [REDIS_FROMADDR]}
   Expect Symbol  REDIS_FROMADDR
 
 MAP - REDIS - FROM MISS
   Scan File  ${MESSAGE}  From=user@other.com
+  ...   Settings={symbols_enabled = [REDIS_FROMADDR]}
   Do Not Expect Symbol  REDIS_FROMADDR
 
 MAP - REDIS - URL TLD - HIT
   Redis HSET  hostname  example.com  ${EMPTY}
   Scan File  ${URL1}
+  ...   Settings={symbols_enabled = [REDIS_URL_TLD]}
   Expect Symbol  REDIS_URL_TLD
 
 MAP - REDIS - URL TLD - MISS
   Scan File  ${URL2}
+  ...   Settings={symbols_enabled = [REDIS_URL_TLD]}
   Do Not Expect Symbol  REDIS_URL_TLD
 
 MAP - REDIS - URL RE FULL - HIT
   Redis HSET  fullurlre  html  ${EMPTY}
   Scan File  ${URL2}
+  ...   Settings={symbols_enabled = [REDIS_URL_RE_FULL]}
   Expect Symbol  REDIS_URL_RE_FULL
 
 MAP - REDIS - URL RE FULL - MISS
   Scan File  ${URL1}
+  ...   Settings={symbols_enabled = [REDIS_URL_RE_FULL]}
   Do Not Expect Symbol  REDIS_URL_RE_FULL
 
 MAP - REDIS - URL FULL - HIT
   Redis HSET  fullurl  https://www.example.com/foo?a=b  ${EMPTY}
   Scan File  ${URL1}
+  ...   Settings={symbols_enabled = [REDIS_URL_FULL]}
   Expect Symbol  REDIS_URL_FULL
 
 MAP - REDIS - URL FULL - MISS
   Scan File  ${URL2}
+  ...   Settings={symbols_enabled = [REDIS_URL_FULL]}
   Do Not Expect Symbol  REDIS_URL_FULL
 
 MAP - REDIS - URL PHISHED - HIT
   Redis HSET  phishedurl  www.rspamd.com  ${EMPTY}
   Scan File  ${URL3}
+  ...   Settings={symbols_enabled = [REDIS_URL_PHISHED]}
   Expect Symbol  REDIS_URL_PHISHED
 
 MAP - REDIS - URL PHISHED - MISS
   Scan File  ${URL4}
+  ...   Settings={symbols_enabled = [REDIS_URL_PHISHED]}
   Do Not Expect Symbol  REDIS_URL_PHISHED
 
 MAP - REDIS - URL PLAIN REGEX - HIT
   Redis HSET  urlre  www  ${EMPTY}
   Scan File  ${URL3}
+  ...   Settings={symbols_enabled = [REDIS_URL_RE_PLAIN]}
   Expect Symbol  REDIS_URL_RE_PLAIN
 
 MAP - REDIS - URL PLAIN REGEX - MISS
   Scan File  ${URL4}
+  ...   Settings={symbols_enabled = [REDIS_URL_RE_PLAIN]}
   Do Not Expect Symbol  REDIS_URL_RE_PLAIN
 
 MAP - REDIS - URL TLD REGEX - HIT
   Redis HSET  tldre  net  ${EMPTY}
   Scan File  ${URL5}
+  ...   Settings={symbols_enabled = [REDIS_URL_RE_TLD]}
   Expect Symbol  REDIS_URL_RE_TLD
 
 MAP - REDIS - URL TLD REGEX - MISS
   Scan File  ${URL4}
+  ...   Settings={symbols_enabled = [REDIS_URL_RE_TLD]}
   Do Not Expect Symbol  REDIS_URL_RE_TLD
 
 MAP - REDIS - URL NOFILTER - HIT
   Redis HSET  urlnofilter  www.example.net  ${EMPTY}
   Scan File  ${URL5}
+  ...   Settings={symbols_enabled = [REDIS_URL_NOFILTER]}
   Expect Symbol  REDIS_URL_NOFILTER
 
 MAP - REDIS - URL NOFILTER - MISS
   Scan File  ${URL4}
+  ...   Settings={symbols_enabled = [REDIS_URL_NOFILTER]}
   Do Not Expect Symbol  REDIS_URL_NOFILTER
 
 MAP - REDIS - ASN - HIT
   Redis HSET  asn  15169  ${EMPTY}
   Scan File  ${MESSAGE}  IP=8.8.8.8
+  ...   Settings={symbols_enabled = [REDIS_ASN, ASN_CHECK]}
   Expect Symbol  REDIS_ASN
 
 MAP - REDIS - ASN - MISS
   Scan File  ${MESSAGE}  IP=46.228.47.114
+  ...   Settings={symbols_enabled = [REDIS_ASN, ASN_CHECK]}
   Do Not Expect Symbol  REDIS_ASN
 
 MAP - REDIS - CC - HIT
   Redis HSET  cc  US  ${EMPTY}
   Scan File  ${MESSAGE}  IP=8.8.8.8
+  ...   Settings={symbols_enabled = [REDIS_COUNTRY, ASN_CHECK]}
   Expect Symbol  REDIS_COUNTRY
 
 MAP - REDIS - CC - MISS
   Scan File  ${MESSAGE}  IP=46.228.47.114
+  ...   Settings={symbols_enabled = [REDIS_COUNTRY, ASN_CHECK]}
   Do Not Expect Symbol  REDIS_COUNTRY
 
 MAP - REDIS - ASN FILTERED - HIT
   Redis HSET  asn  1  ${EMPTY}
   Scan File  ${MESSAGE}  IP=8.8.8.8
+  ...   Settings={symbols_enabled = [REDIS_ASN_FILTERED, ASN_CHECK]}
   Expect Symbol  REDIS_ASN_FILTERED
 
 MAP - REDIS - ASN FILTERED - MISS
   Scan File  ${MESSAGE}  IP=46.228.47.114
+  ...   Settings={symbols_enabled = [REDIS_ASN_FILTERED, ASN_CHECK]}
   Do Not Expect Symbol  REDIS_ASN_FILTERED
 
 MAP - RECEIVED - IP MINMAX POS - ONE
   Scan File  ${RCVD1}
+  ...   Settings={symbols_enabled = [RCVD_TEST_01, RCVD_TEST02]}
   Expect Symbol  RCVD_TEST_01
   Do Not Expect Symbol  RCVD_TEST_02
 
@@ -316,22 +376,27 @@ MAP - RECEIVED - IP MINMAX POS - ONE
 MAP - RECEIVED - REDIS
   Redis HSET  RCVD_TEST  2a01:7c8:aab6:26d:5054:ff:fed1:1da2  ${EMPTY}
   Scan File  ${RCVD1}
+  ...   Settings={symbols_enabled = [RCVD_TEST_REDIS_01]}
   Expect Symbol  RCVD_TEST_REDIS_01
 
 RCVD_AUTHED_ONE & RCVD_AUTHED_TWO - MISS
   Scan File  ${RCVD3}
+  ...   Settings={symbols_enabled = [RCVD_AUTHED_ONE, RCVD_AUTHED_TWO]}
   Do Not Expect Symbol  RCVD_AUTHED_ONE
   Do Not Expect Symbol  RCVD_AUTHED_TWO
 
 RCVD_AUTHED_TWO HIT / RCVD_AUTHED_ONE MISS
   Scan File  ${RCVD4}
+  ...   Settings={symbols_enabled = [RCVD_AUTHED_ONE, RCVD_AUTHED_TWO]}
   Expect Symbol  RCVD_AUTHED_TWO
   Do Not Expect Symbol  RCVD_AUTHED_ONE
 
 FREEMAIL_CC
   Scan File  ${FREEMAIL_CC}
+  ...   Settings={symbols_enabled = [FREEMAIL_CC]}
   Expect Symbol With Score And Exact Options  FREEMAIL_CC  19.00  test.com  test1.com  test2.com  test3.com  test4.com  test5.com  test6.com  test7.com  test8.com  test9.com  test10.com  test11.com  test12.com  test13.com  test14.com
 
 MAP - MULTISYMBOL DISABLED
   Scan File  ${MESSAGE}  Rcpt=user3@example.com
+  ...   Settings={symbols_enabled = [RCPT_MAP_NOMULTISYM, SYM1]}
   Expect Symbol With Exact Options  RCPT_MAP_NOMULTISYM  user3@example.com  SYM1
similarity index 84%
rename from test/functional/cases/104_get_from.robot
rename to test/functional/cases/001_merged/104_get_from.robot
index 84b754f37faec8fc6da5ad6b043a889651aa61f9..f01119f86c31b1b90555556512a26b26dad4e009 100644 (file)
@@ -1,52 +1,57 @@
 *** Settings ***
-Suite Setup     Rspamd Setup
-Suite Teardown  Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}             ${RSPAMD_TESTDIR}/configs/lua_script.conf
 ${OPTIONS1}           ,user@example.org,user,example.org
 ${OPTIONS2}           First Last,user@example.org,user,example.org
 ${OPTIONS3}           First M. Last,user@example.org,user,example.org
-${RSPAMD_LUA_SCRIPT}  ${RSPAMD_TESTDIR}/lua/get_from.lua
-${RSPAMD_SCOPE}       Suite
+${SETTINGS_GETFROM}   {symbols_enabled = [${SYMBOL}]}
 ${SYMBOL}             GET_FROM
 
 *** Test Cases ***
 task:get_from('mime') - address only
   Scan File  ${RSPAMD_TESTDIR}/messages/from/from.eml
+  ...  Settings=${SETTINGS_GETFROM}
   Expect Symbol  ${SYMBOL}
 
 task:get_from('mime') - comment
   Scan File  ${RSPAMD_TESTDIR}/messages/from/from_comment.eml
+  ...  Settings=${SETTINGS_GETFROM}
   Expect Symbol With Exact Options  ${SYMBOL}  ${OPTIONS1}
 
 task:get_from('mime') - display name
   Scan File  ${RSPAMD_TESTDIR}/messages/from/from_dn.eml
+  ...  Settings=${SETTINGS_GETFROM}
   Expect Symbol With Exact Options  ${SYMBOL}  ${OPTIONS2}
 
 task:get_from('mime') - display name Base64
   Scan File  ${RSPAMD_TESTDIR}/messages/from/from_dn_base64.eml
+  ...  Settings=${SETTINGS_GETFROM}
   Expect Symbol With Exact Options  ${SYMBOL}  Кириллица,user@example.org,user,example.org
 
 task:get_from('mime') - display name and comment
   Scan File  ${RSPAMD_TESTDIR}/messages/from/from_dn_comment.eml
+  ...  Settings=${SETTINGS_GETFROM}
   Expect Symbol With Exact Options  ${SYMBOL}  ${OPTIONS2}
 
 task:get_from('mime') - quoted display name
   Scan File  ${RSPAMD_TESTDIR}/messages/from/from_quoted_dn.eml
+  ...  Settings=${SETTINGS_GETFROM}
   Expect Symbol With Exact Options  ${SYMBOL}  ${OPTIONS3}
 
 task:get_from('mime') - quoted display name and comment
   Scan File  ${RSPAMD_TESTDIR}/messages/from/from_quoted_dn_comment.eml
+  ...  Settings=${SETTINGS_GETFROM}
   Expect Symbol With Exact Options  ${SYMBOL}  ${OPTIONS3}
 
 task:get_from('mime') - quoted in the middle of DN (outer spaces)
   Scan File  ${RSPAMD_TESTDIR}/messages/from/from_quoted_dn_middle.eml
+  ...  Settings=${SETTINGS_GETFROM}
   Expect Symbol With Exact Options  ${SYMBOL}  ${OPTIONS3}
 
 task:get_from('mime') - quoted in the middle of DN (inner spaces)
   Scan File  ${RSPAMD_TESTDIR}/messages/from/from_quoted_dn_middle_inner.eml
+  ...  Settings=${SETTINGS_GETFROM}
   Expect Symbol With Exact Options  ${SYMBOL}  ${OPTIONS3}
similarity index 81%
rename from test/functional/cases/105_mimetypes.robot
rename to test/functional/cases/001_merged/105_mimetypes.robot
index aa344aebd13f44fb51ebe34e0f67aff8ee849b20..e16150aa8683d4b20d9219f512ce3bee57589e8e 100644 (file)
@@ -1,66 +1,74 @@
 *** Settings ***
-Suite Setup     Rspamd Setup
-Suite Teardown  Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/mime_types.conf
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
+${SETTINGS_MIMETYPES}  {symbols_enabled = [MIME_TYPES_CALLBACK]}
 
 *** Test Cases ***
 Zip
   Scan File  ${RSPAMD_TESTDIR}/messages/zip.eml
+  ...  Settings=${SETTINGS_MIMETYPES}
   Expect Symbol With Exact Options  MIME_BAD_EXTENSION  exe
 
 Zip Double Bad Extension
   Scan File  ${RSPAMD_TESTDIR}/messages/zip-doublebad.eml
+  ...  Settings=${SETTINGS_MIMETYPES}
   Expect Symbol With Exact Options  MIME_DOUBLE_BAD_EXTENSION  .pdf.exe
 
 Next-to-last Double Bad Extension
   Scan File  ${RSPAMD_TESTDIR}/messages/next2last-doublebad.eml
+  ...  Settings=${SETTINGS_MIMETYPES}
   Expect Symbol With Exact Options  MIME_DOUBLE_BAD_EXTENSION  .scr.xz
 
 Date is followed by Bad Extension
   Scan File  ${RSPAMD_TESTDIR}/messages/rar-date-bad-ext.eml
+  ...  Settings=${SETTINGS_MIMETYPES}
   Expect Symbol With Exact Options  MIME_BAD_EXTENSION  scr
   Do Not Expect Symbol  MIME_DOUBLE_BAD_EXTENSION
 
 Dotted file name is followed by Bad Extension
   Scan File  ${RSPAMD_TESTDIR}/messages/bad_ext.dotted_file_name.eml
+  ...  Settings=${SETTINGS_MIMETYPES}
   Expect Symbol With Exact Options  MIME_BAD_EXTENSION  exe
   Do Not Expect Symbol  MIME_DOUBLE_BAD_EXTENSION
 
 Dotted numbers in parentheses is followed by Bad Extension
   Scan File  ${RSPAMD_TESTDIR}/messages/next2last-digits_in_parens.eml
+  ...  Settings=${SETTINGS_MIMETYPES}
   Expect Symbol With Exact Options  MIME_BAD_EXTENSION  msi
   Do Not Expect Symbol  MIME_DOUBLE_BAD_EXTENSION
 
 Dotted numbers in square brackets is followed by Bad Extension
   Scan File  ${RSPAMD_TESTDIR}/messages/next2last-digits_in_brackets.eml
+  ...  Settings=${SETTINGS_MIMETYPES}
   Expect Symbol With Exact Options  MIME_BAD_EXTENSION  msi
   Do Not Expect Symbol  MIME_DOUBLE_BAD_EXTENSION
 
 Rar4
   Scan File  ${RSPAMD_TESTDIR}/messages/rar4.eml
+  ...  Settings=${SETTINGS_MIMETYPES}
   Expect Symbol With Exact Options  MIME_BAD_EXTENSION  exe
 
 Cloaked Archive Extension
   Scan File  ${RSPAMD_TESTDIR}/messages/f.zip.gz.eml
+  ...  Settings=${SETTINGS_MIMETYPES}
   Expect Symbol With Exact Options  MIME_ARCHIVE_IN_ARCHIVE  .zip.gz  zip
 
 Multipart Archive Extension
   Scan File  ${RSPAMD_TESTDIR}/messages/f.zip.001.eml
+  ...  Settings=${SETTINGS_MIMETYPES}
   Do Not Expect Symbol  MIME_ARCHIVE_IN_ARCHIVE
 
 Exe file, but name in filename_whitelist
   Scan File  ${RSPAMD_TESTDIR}/messages/exe_attm.eml
+  ...  Settings=${SETTINGS_MIMETYPES}
   Do Not Expect Symbol  MIME_BAD_EXTENSION
   Do Not Expect Symbol  MIME_BAD_ATTACHMENT
   Do Not Expect Symbol  MIME_DOUBLE_BAD_EXTENSION
 
 Empty text part should not be treat as html
   Scan File  ${RSPAMD_TESTDIR}/messages/empty-plain-text.eml
+  ...  Settings=${SETTINGS_MIMETYPES}
   Do Not Expect Symbol  FORGED_OUTLOOK_HTML
similarity index 71%
rename from test/functional/cases/106_mid.robot
rename to test/functional/cases/001_merged/106_mid.robot
index a42b098aa610cc13630f52493942e739610be65e..c5510bbb3b2c68665a861b7f714afbeb3cd42534 100644 (file)
@@ -1,36 +1,36 @@
 *** Settings ***
-Suite Setup     Rspamd Setup
-Suite Teardown  Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/mid.conf
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
+${SETTINGS_MID}  {symbols_enabled = [DKIM_CHECK,INVALID_MSGID,INVALID_MSGID_ALLOWED,KNOWN_NO_MID,KNOWN_MID,MISSING_MID,MISSING_MID_ALLOWED]}
 
 *** Test Cases ***
 MID - invalid Message-ID
   Scan File  ${RSPAMD_TESTDIR}/messages/fws_fp.eml
+  ...  Settings=${SETTINGS_MID}
   Expect Symbol With Score  INVALID_MSGID  1.70
   Do Not Expect Symbol  MISSING_MID
   Do Not Expect Symbol  INVALID_MSGID_ALLOWED
 
 MID - invalid Message-ID allowed
   Scan File  ${RSPAMD_TESTDIR}/messages/invalid_mid_allowed.eml
-  Expect Symbol With Score  INVALID_MSGID_ALLOWED  1.00
+  ...  Settings=${SETTINGS_MID}
+  Expect Symbol With Score  INVALID_MSGID_ALLOWED  0.00
   Do Not Expect Symbol  MISSING_MID
   Do Not Expect Symbol  INVALID_MSGID
 
 MID - missing Message-ID
   Scan File  ${RSPAMD_TESTDIR}/messages/freemail.eml
+  ...  Settings=${SETTINGS_MID}
   Expect Symbol With Score  MISSING_MID  2.50
   Do Not Expect Symbol  MISSING_MID_ALLOWED
   Do Not Expect Symbol  INVALID_MSGID
 
 MID - missing Message-ID allowed
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/onsubdomain_pass_relaxed.eml
-  Expect Symbol With Score  MISSING_MID_ALLOWED  1.00
+  ...  Settings=${SETTINGS_MID}
+  Expect Symbol With Score  MISSING_MID_ALLOWED  0.00
   Do Not Expect Symbol  MISSING_MID
   Do Not Expect Symbol  INVALID_MSGID
similarity index 51%
rename from test/functional/cases/114_phishing.robot
rename to test/functional/cases/001_merged/114_phishing.robot
index 4bb54895bf8a219541420edc98fd9b639a171a83..bc7f3981ef7e9cc73b4e8adc46195e0d4392f2aa 100644 (file)
@@ -1,27 +1,26 @@
 *** Settings ***
-Suite Setup     Rspamd Setup
-Suite Teardown  Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/phishing.conf
-${MESSAGE1}        ${RSPAMD_TESTDIR}/messages/phishing1.eml
-${MESSAGE2}        ${RSPAMD_TESTDIR}/messages/phishing2.eml
-${MESSAGE3}        ${RSPAMD_TESTDIR}/messages/phishing3.eml
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../../contrib/publicsuffix/effective_tld_names.dat
+${MESSAGE1}           ${RSPAMD_TESTDIR}/messages/phishing1.eml
+${MESSAGE2}           ${RSPAMD_TESTDIR}/messages/phishing2.eml
+${MESSAGE3}           ${RSPAMD_TESTDIR}/messages/phishing3.eml
+${SETTINGS_PHISHING}  {symbols_enabled = [PHISHING,STRICT_PHISHING,STRICTER_PHISHING]}
 
 *** Test Cases ***
 TEST PHISHING
   Scan File  ${MESSAGE1}
+  ...  Settings=${SETTINGS_PHISHING}
   Expect Symbol  PHISHING
 
 TEST PHISHING STRICT ONE
   Scan File  ${MESSAGE2}
+  ...  Settings=${SETTINGS_PHISHING}
   Expect Symbol  STRICT_PHISHING
 
 TEST PHISHING STRICT TWO
   Scan File  ${MESSAGE3}
+  ...  Settings=${SETTINGS_PHISHING}
   Expect Symbol  STRICTER_PHISHING
similarity index 80%
rename from test/functional/cases/115_dmarc.robot
rename to test/functional/cases/001_merged/115_dmarc.robot
index d0ba8c72d393cb77ed65abea46e1826bf352c037..e5ed67007d78f0e7a8079c7d88b6901afce2a8f1 100644 (file)
 *** Settings ***
-Suite Setup     Rspamd Setup
-Suite Teardown  Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/dmarc.conf
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../../contrib/publicsuffix/effective_tld_names.dat
+${DMARC_SETTINGS}    {symbols_enabled = [DMARC_CHECK, DKIM_CHECK, SPF_CHECK]}
 
 *** Test Cases ***
 DMARC NONE PASS DKIM
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/pass_none.eml
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_ALLOW
 
 DMARC NONE PASS SPF
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/fail_none.eml
   ...  IP=8.8.4.4  From=foo@spf.cacophony.za.org
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_ALLOW
 
 DMARC NONE FAIL
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/fail_none.eml
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_SOFTFAIL
 
 DMARC REJECT FAIL
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/fail_reject.eml
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_REJECT
 
 DMARC QUARANTINE FAIL
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/fail_quarantine.eml
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_QUARANTINE
 
 DMARC SP NONE FAIL
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/subdomain_fail_none.eml
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_SOFTFAIL
 
 DMARC SP REJECT FAIL
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/subdomain_fail_reject.eml
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_REJECT
 
 DMARC SP QUARANTINE FAIL
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/subdomain_fail_quarantine.eml
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_QUARANTINE
 
 DMARC SUBDOMAIN FAIL DKIM STRICT ALIGNMENT
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/onsubdomain_fail_alignment.eml
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_REJECT
 
 DMARC SUBDOMAIN PASS DKIM RELAXED ALIGNMENT
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/onsubdomain_pass_relaxed.eml
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_ALLOW
 
 DMARC SUBDOMAIN PASS SPF STRICT ALIGNMENT
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/onsubdomain_fail_alignment.eml
   ...  IP=37.48.67.26  From=foo@yo.mom.za.org
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_ALLOW
 
 DMARC SUBDOMAIN FAIL SPF STRICT ALIGNMENT
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/onsubdomain_fail_alignment.eml
   ...  IP=37.48.67.26  From=foo@mom.za.org
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_REJECT
 
 DMARC SUBDOMAIN PASS SPF RELAXED ALIGNMENT
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/onsubdomain_fail.eml
   ...  IP=37.48.67.26  From=foo@mom.za.org
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_ALLOW
 
 DMARC DNSFAIL
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/dmarc_tmpfail.eml
   ...  IP=37.48.67.26  From=foo@mom.za.org
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_DNSFAIL
 
 DMARC NA NXDOMAIN
   Scan File  ${RSPAMD_TESTDIR}/messages/utf.eml
   ...  IP=37.48.67.26  From=foo@mom.za.org
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_NA
 
 DMARC PCT ZERO REJECT
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/pct_none.eml
   ...  IP=37.48.67.26  From=foo@mom.za.org
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_QUARANTINE
 
 DMARC PCT ZERO SP QUARANTINE
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/pct_none1.eml
   ...  IP=37.48.67.26  From=foo@mom.za.org
+  ...  Settings=${DMARC_SETTINGS}
   Expect Symbol  DMARC_POLICY_SOFTFAIL
similarity index 81%
rename from test/functional/cases/117_spf.robot
rename to test/functional/cases/001_merged/117_spf.robot
index 1887089efeebc958f1b401c28ec928bee8085acd..dda35f6710607c0215e84c4215aa96c10a04ff26 100644 (file)
 *** Settings ***
-Suite Setup     Rspamd Setup
-Suite Teardown  Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/dmarc.conf
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../../contrib/publicsuffix/effective_tld_names.dat
+${SETTINGS_SPF}    {symbols_enabled = [SPF_CHECK]}
 
 *** Test Cases ***
 SPF FAIL UNRESOLVEABLE INCLUDE
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=37.48.67.26  From=x@fail3.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_FAIL
 
 SPF DNSFAIL FAILED INCLUDE UNALIGNED
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.8.8  From=x@fail2.org.org.za
+  ...  Settings={symbols_enabled = [SPF_CHECK,DKIM_CHECK,DMARC_CHECK]}
   Expect Symbol  R_SPF_DNSFAIL
   Expect Symbol  DMARC_POLICY_SOFTFAIL
 
 SPF ALLOW UNRESOLVEABLE INCLUDE
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.8.8  From=x@fail3.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_ALLOW
 
 SPF ALLOW FAILED INCLUDE
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.4.4  From=x@fail2.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_ALLOW
 
 SPF NA NA
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.8.8  From=x@za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_NA
 
 SPF NA NOREC
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.8.8  From=x@co.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_NA
 
 SPF NA NXDOMAIN
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.8.8  From=x@zzzzaaaa
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_NA
 
 SPF PERMFAIL UNRESOLVEABLE REDIRECT
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.8.8  From=x@fail4.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_PERMFAIL
 
 SPF REDIRECT NO USEABLE ELEMENTS
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.8.8  From=x@fail10.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_PERMFAIL
 
 SPF DNSFAIL FAILED REDIRECT
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.8.8  From=x@fail1.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_DNSFAIL
 
 SPF PERMFAIL NO USEABLE ELEMENTS
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.8.8  From=x@fail5.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_PERMFAIL
 
 SPF FAIL
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.8.8  From=x@example.net
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_FAIL
 
 SPF FAIL UNRESOLVEABLE MX
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=1.2.3.4  From=x@fail6.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_FAIL
 
 SPF FAIL UNRESOLVEABLE A
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=1.2.3.4  From=x@fail7.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_FAIL
 
 SPF DNSFAIL FAILED A
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=1.2.3.4  From=x@fail8.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_DNSFAIL
 
 SPF DNSFAIL FAILED MX
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=1.2.3.4  From=x@fail9.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_DNSFAIL
 
 SPF DNSFAIL FAILED RECORD
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=1.2.3.4  From=x@www.dnssec-failed.org
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_DNSFAIL
 
 SPF PASS INCLUDE
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.8.8  From=x@pass1.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_ALLOW
 
 SPF PTRS
   Scan File  /dev/null
   ...  IP=88.99.142.95  From=foo@crazyspf.cacophony.za.org
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_ALLOW
   Scan File  /dev/null
   ...  IP=128.66.0.1  From=foo@crazyspf.cacophony.za.org
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_FAIL
   Scan File  /dev/null
   ...  IP=209.85.216.182  From=foo@crazyspf.cacophony.za.org
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_FAIL
   #Scan File  /dev/null
   #...  IP=98.138.91.166  From=foo@crazyspf.cacophony.za.org
@@ -125,13 +142,16 @@ SPF PTRS
 SPF PERMFAIL REDIRECT WITHOUT SPF
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim4.eml
   ...  IP=192.0.2.1  From=a@fail1.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_DNSFAIL
 
 SPF EXTERNAL RELAY
   Scan File  ${RSPAMD_TESTDIR}/messages/external_relay.eml
-  Expect Symbol With Score And Exact Options  R_SPF_ALLOW  1.0  +ip4:37.48.67.26
+  ...  Settings=${SETTINGS_SPF}
+  Expect Symbol With Score And Exact Options  R_SPF_ALLOW  -0.2  +ip4:37.48.67.26
 
 SPF UPPERCASE
   Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
   ...  IP=8.8.8.8  From=x@fail11.org.org.za
+  ...  Settings=${SETTINGS_SPF}
   Expect Symbol  R_SPF_ALLOW
similarity index 84%
rename from test/functional/cases/160_antivirus.robot
rename to test/functional/cases/001_merged/160_antivirus.robot
index cac3a18937b63cd39007b3202860129fb6058124..166bdb6a8bd05c5adbebe0a676bdce2564a6e9fa 100644 (file)
@@ -1,5 +1,4 @@
 *** Settings ***
-Suite Setup     Rspamd Redis Setup
 Suite Teardown  Antivirus Teardown
 Library         Process
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
@@ -7,40 +6,44 @@ Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/antivirus.conf
-${MESSAGE2}        ${RSPAMD_TESTDIR}/messages/freemail.eml
-${MESSAGE}         ${RSPAMD_TESTDIR}/messages/spam_message.eml
-${REDIS_SCOPE}     Suite
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
+${MESSAGE2}         ${RSPAMD_TESTDIR}/messages/freemail.eml
+${MESSAGE}          ${RSPAMD_TESTDIR}/messages/spam_message.eml
+${SETTINGS_AVAST}   {symbols_enabled = [AVAST_VIRUS]}
+${SETTINGS_CLAM}    {symbols_enabled = [CLAM_VIRUS]}
+${SETTINGS_FPROT}   {symbols_enabled = [FPROT_VIRUS, FPROT2_VIRUS_DUPLICATE_DEFAULT]}
 
 *** Test Cases ***
 CLAMAV MISS
   Run Dummy Clam  ${RSPAMD_PORT_CLAM}
   Scan File  ${MESSAGE}
+  ...  Settings=${SETTINGS_CLAM}
   Do Not Expect Symbol  CLAM_VIRUS
   Shutdown clamav
 
 CLAMAV HIT
   Run Dummy Clam  ${RSPAMD_PORT_CLAM}  1
   Scan File  ${MESSAGE2}
+  ...  Settings=${SETTINGS_CLAM}
   Expect Symbol  CLAM_VIRUS
   Do Not Expect Symbol  CLAMAV_VIRUS_FAIL
   Shutdown clamav
 
 CLAMAV CACHE HIT
   Scan File  ${MESSAGE2}
+  ...  Settings=${SETTINGS_CLAM}
   Expect Symbol  CLAM_VIRUS
   Do Not Expect Symbol  CLAMAV_VIRUS_FAIL
 
 CLAMAV CACHE MISS
   Scan File  ${MESSAGE}
+  ...  Settings=${SETTINGS_CLAM}
   Do Not Expect Symbol  CLAM_VIRUS
   Do Not Expect Symbol  CLAMAV_VIRUS_FAIL
 
 FPROT MISS
   Run Dummy Fprot  ${RSPAMD_PORT_FPROT}
   Scan File  ${MESSAGE2}
+  ...  Settings=${SETTINGS_FPROT}
   Do Not Expect Symbol  FPROT_VIRUS
   Do Not Expect Symbol  FPROT_EICAR
   Shutdown fport
@@ -49,8 +52,8 @@ FPROT HIT - PATTERN
   Run Dummy Fprot  ${RSPAMD_PORT_FPROT}  1
   Run Dummy Fprot  ${RSPAMD_PORT_FPROT2_DUPLICATE}  1  /tmp/dummy_fprot_dupe.pid
   Scan File  ${MESSAGE}
+  ...  Settings=${SETTINGS_FPROT}
   Expect Symbol  FPROT_EICAR
-  Do Not Expect Symbol  CLAMAV_VIRUS
   # Also check ordered pattern match
   Expect Symbol  FPROT2_VIRUS_DUPLICATE_PATTERN
   Do Not Expect Symbol  FPROT2_VIRUS_DUPLICATE_DEFAULT
@@ -60,6 +63,7 @@ FPROT HIT - PATTERN
 
 FPROT CACHE HIT
   Scan File  ${MESSAGE}
+  ...  Settings=${SETTINGS_FPROT}
   Expect Symbol  FPROT_EICAR
   Do Not Expect Symbol  CLAMAV_VIRUS
   # Also check ordered pattern match
@@ -68,38 +72,41 @@ FPROT CACHE HIT
 
 FPROT CACHE MISS
   Scan File  ${MESSAGE2}
+  ...  Settings=${SETTINGS_FPROT}
   Do Not Expect Symbol  FPROT_VIRUS
 
 AVAST MISS
   Run Dummy Avast  ${RSPAMD_PORT_AVAST}
   Scan File  ${MESSAGE}
+  ...  Settings=${SETTINGS_AVAST}
   Do Not Expect Symbol  AVAST_VIRUS
   Shutdown avast
 
 AVAST HIT
   Run Dummy Avast  ${RSPAMD_PORT_AVAST}  1
   Scan File  ${MESSAGE2}
+  ...  Settings=${SETTINGS_AVAST}
   Expect Symbol  AVAST_VIRUS
   Do Not Expect Symbol  AVAST_VIRUS_FAIL
   Shutdown avast
 
 AVAST CACHE HIT
   Scan File  ${MESSAGE2}
+  ...  Settings=${SETTINGS_AVAST}
   Expect Symbol  AVAST_VIRUS
   Do Not Expect Symbol  AVAST_VIRUS_FAIL
 
 AVAST CACHE MISS
   Scan File  ${MESSAGE}
+  ...  Settings=${SETTINGS_AVAST}
   Do Not Expect Symbol  AVAST_VIRUS
   Do Not Expect Symbol  AVAST_VIRUS_FAIL
 
 *** Keywords ***
 Antivirus Teardown
-  Rspamd Redis Teardown
   Shutdown clamav
   Shutdown fport
   Shutdown avast
-  Terminate All Processes    kill=True
 
 Shutdown clamav
   ${clamav_pid} =  Get File if exists  /tmp/dummy_clamav.pid
diff --git a/test/functional/cases/001_merged/220_http.robot b/test/functional/cases/001_merged/220_http.robot
new file mode 100644 (file)
index 0000000..a6bf5ff
--- /dev/null
@@ -0,0 +1,77 @@
+*** Settings ***
+Test Setup      Http Setup
+Test Teardown   Http Teardown
+Library         Process
+Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
+Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
+Variables       ${RSPAMD_TESTDIR}/lib/vars.py
+
+*** Variables ***
+${MESSAGE}      ${RSPAMD_TESTDIR}/messages/spam_message.eml
+
+*** Test Cases ***
+Simple HTTP request
+  Scan File  ${MESSAGE}  Url=/request  Method=get
+  ...  Settings={symbols_enabled = [SIMPLE_HTTP_TEST]}
+  Expect Symbols  HTTP_DNS_200  HTTP_200  HTTP_CORO_DNS_200
+  Expect Symbol With Exact Options  HTTP_CORO_200  hello world
+
+  Scan File  ${MESSAGE}  Url=/request  Method=post
+  ...  Settings={symbols_enabled = [SIMPLE_HTTP_TEST]}
+  Expect Symbols  HTTP_DNS_200  HTTP_200  HTTP_CORO_DNS_200
+  Expect Symbol With Exact Options  HTTP_CORO_200  hello post
+
+HTTP request 403
+  Scan File  ${MESSAGE}  Url=/error_403  Method=get
+  ...  Settings={symbols_enabled = [SIMPLE_HTTP_TEST]}
+  Expect Symbols  HTTP_DNS_403  HTTP_403  HTTP_CORO_DNS_403  method_get
+
+  Scan File  ${MESSAGE}  Url=/error_403  Method=post
+  ...  Settings={symbols_enabled = [SIMPLE_HTTP_TEST]}
+  Expect Symbols  HTTP_DNS_403  HTTP_403  HTTP_CORO_DNS_403  method_post
+
+HTTP timeout
+  Scan File  ${MESSAGE}  Url=/timeout  Method=get
+  ...  Settings={symbols_enabled = [SIMPLE_HTTP_TEST]}
+  Expect Symbols  HTTP_ERROR  HTTP_ERROR  HTTP_CORO_DNS_ERROR  HTTP_CORO_ERROR  method_get
+  # FIXME: where is "IO timeout"
+
+  Scan File  ${MESSAGE}  Url=/timeout  Method=post
+  ...  Settings={symbols_enabled = [SIMPLE_HTTP_TEST]}
+  Expect Symbols  HTTP_ERROR  HTTP_ERROR  HTTP_CORO_DNS_ERROR  HTTP_CORO_ERROR  method_post
+  # FIXME: where is "IO timeout"
+
+HTTP empty response
+  Scan File  ${MESSAGE}  Url=/empty  Method=get
+  ...  Settings={symbols_enabled = [SIMPLE_HTTP_TEST]}
+  Expect Symbols  HTTP_ERROR  HTTP_ERROR  HTTP_CORO_DNS_ERROR  HTTP_CORO_ERROR  method_get
+  # FIXME: where is "IO read error: unexpected EOF"
+
+  Scan File  ${MESSAGE}  Url=/empty  Method=post
+  ...  Settings={symbols_enabled = [SIMPLE_HTTP_TEST]}
+  Expect Symbols  HTTP_ERROR  HTTP_ERROR  HTTP_CORO_DNS_ERROR  HTTP_CORO_ERROR  method_post
+  # FIXME: where is "IO read error: unexpected EOF"
+
+SSL Large HTTP request
+  Scan File  ${MESSAGE}
+  ...  Settings={symbols_enabled = [LARGE_HTTP_TEST]}
+  Expect Symbol  HTTP_SSL_LARGE
+
+*** Keywords ***
+Http Setup
+  Run Dummy Http
+  Run Dummy Https
+
+Http Teardown
+  ${http_pid} =  Get File  /tmp/dummy_http.pid
+  Shutdown Process With Children  ${http_pid}
+  ${https_pid} =  Get File  /tmp/dummy_https.pid
+  Shutdown Process With Children  ${https_pid}
+
+Run Dummy Http
+  ${result} =  Start Process  ${RSPAMD_TESTDIR}/util/dummy_http.py
+  Wait Until Created  /tmp/dummy_http.pid
+
+Run Dummy Https
+  ${result} =  Start Process  ${RSPAMD_TESTDIR}/util/dummy_https.py  ${RSPAMD_TESTDIR}/util/server.pem
+  Wait Until Created  /tmp/dummy_https.pid
similarity index 78%
rename from test/functional/cases/230_tcp.robot
rename to test/functional/cases/001_merged/230_tcp.robot
index f44bdda15c9dcf0f02e532fea0976b38dbb6d122..89ec7ea5a97562b94dcab20c3d6a2c04150d0f80 100644 (file)
@@ -1,36 +1,37 @@
 *** Settings ***
 Suite Setup      Servers Setup
 Suite Teardown   Servers Teardown
-Library         Process
-Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
-Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
-Variables       ${RSPAMD_TESTDIR}/lib/vars.py
+Library          Process
+Library          ${RSPAMD_TESTDIR}/lib/rspamd.py
+Resource         ${RSPAMD_TESTDIR}/lib/rspamd.robot
+Variables        ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}             ${RSPAMD_TESTDIR}/configs/lua_test.conf
-${MESSAGE}            ${RSPAMD_TESTDIR}/messages/spam_message.eml
-${RSPAMD_LUA_SCRIPT}  ${RSPAMD_TESTDIR}/lua/tcp.lua
-${RSPAMD_SCOPE}       Suite
-${RSPAMD_URL_TLD}     ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
+${MESSAGE}       ${RSPAMD_TESTDIR}/messages/spam_message.eml
+
 
 *** Test Cases ***
 Simple TCP request
   Scan File  ${MESSAGE}
+  ...  Settings={symbols_enabled = [SIMPLE_TCP_ASYNC_TEST]}
   Expect Symbol  HTTP_ASYNC_RESPONSE
   Expect Symbol  HTTP_ASYNC_RESPONSE_2
 
 SSL TCP request
   Scan File  ${MESSAGE}
+  ...  Settings={symbols_enabled = [SIMPLE_TCP_ASYNC_SSL_TEST]}
   Expect Symbol With Exact Options  TCP_SSL_RESPONSE  hello
   Expect Symbol With Exact Options  TCP_SSL_RESPONSE_2  hello
 
 SSL Large TCP request
   Scan File  ${MESSAGE}
+  ...  Settings={symbols_enabled = [LARGE_TCP_ASYNC_SSL_TEST]}
   Expect Symbol  TCP_SSL_LARGE
   Expect Symbol  TCP_SSL_LARGE_2
 
 Sync API TCP request
   Scan File  ${MESSAGE}
+  ...  Settings={symbols_enabled = [SIMPLE_TCP_TEST]}
   Expect Symbol  HTTP_SYNC_RESPONSE
   Should Contain  ${SCAN_RESULT}[symbols][HTTP_SYNC_RESPONSE][options][0]  hello world
   Should Contain  ${SCAN_RESULT}[symbols][HTTP_SYNC_RESPONSE_2][options][0]  hello post
@@ -47,14 +48,12 @@ Sync API TCP post request
 Servers Setup
   Run Dummy Http
   Run Dummy Ssl
-  Rspamd Setup 
 
 Servers Teardown
   ${http_pid} =  Get File  /tmp/dummy_http.pid
   Shutdown Process With Children  ${http_pid}
   ${ssl_pid} =  Get File  /tmp/dummy_ssl.pid
   Shutdown Process With Children  ${ssl_pid}
-  Rspamd Teardown
 
 Run Dummy Http
   [Arguments]
@@ -69,4 +68,5 @@ Run Dummy Ssl
 Check url
   [Arguments]  ${url}  ${method}  ${expect_symbol}  @{expect_options}
   Scan File  ${MESSAGE}  URL=${url}  Method=${method}
+  ...  Settings={symbols_enabled = [HTTP_TCP_TEST]}
   Expect Symbol With Exact Options  ${expect_symbol}  @{expect_options}
diff --git a/test/functional/cases/001_merged/231_tcp_down.robot b/test/functional/cases/001_merged/231_tcp_down.robot
new file mode 100644 (file)
index 0000000..088a605
--- /dev/null
@@ -0,0 +1,21 @@
+*** Settings ***
+Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
+Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
+Variables       ${RSPAMD_TESTDIR}/lib/vars.py
+
+*** Variables ***
+${MESSAGE}      ${RSPAMD_TESTDIR}/messages/spam_message.eml
+
+*** Test Cases ***
+Sync API TCP get request when server is down
+  [Documentation]  We don't create HTTP server here, that's why
+  ...              all requests fail with "connection refused"
+  Check url  /request  get  HTTP_ASYNC_RESPONSE  Socket error detected: Connection refused
+  Check url  /content-length  get  HTTP_SYNC_WRITE_ERROR  Socket error detected: Connection refused
+
+*** Keywords ***
+Check url
+  [Arguments]  ${url}  ${method}  ${expect_symbol}  @{expect_options}
+  Scan File  ${MESSAGE}  URL=${url}  Method=${method}
+  ...  Settings={symbols_enabled = [SIMPLE_TCP_ASYNC_TEST, SIMPLE_TCP_TEST]}
+  Expect Symbol With Exact Options  ${expect_symbol}  @{expect_options}
similarity index 58%
rename from test/functional/cases/240_redis.robot
rename to test/functional/cases/001_merged/240_redis.robot
index 18babdc79945bddb0d1f18cebd355d17f1d655bd..3196dd0c62e66d771ec6efb100df06b213434a49 100644 (file)
@@ -1,21 +1,11 @@
 *** Settings ***
-Test Setup      Rspamd Redis Setup
-Test Teardown   Rspamd Redis Teardown
-Library         Process
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
-Suite Teardown  Terminate All Processes    kill=True
-
 
 *** Variables ***
-${CONFIG}             ${RSPAMD_TESTDIR}/configs/redis.conf
 ${MESSAGE}            ${RSPAMD_TESTDIR}/messages/spam_message.eml
-${REDIS_SCOPE}        Test
-${RSPAMD_LUA_SCRIPT}  ${RSPAMD_TESTDIR}/lua/redis.lua
-${RSPAMD_SCOPE}       Test
-${RSPAMD_URL_TLD}     ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
-
+${SETTINGS_REDIS}     {symbols_enabled = [REDIS_TEST, SIMPLE_REDIS_ASYNC_TEST, SIMPLE_REDIS_ASYNC201809_TEST]}
 
 *** Test Cases ***
 Redis client
similarity index 70%
rename from test/functional/cases/250_dns.robot
rename to test/functional/cases/001_merged/250_dns.robot
index 8c6a422ecfb5a7ede935e904453696f624c6bf2c..d3e64cd348594c24573a67f639cc638dabfa0b22 100644 (file)
@@ -1,25 +1,21 @@
 *** Settings ***
-Test Setup      Rspamd Setup
-Test Teardown   Rspamd Teardown
-Library         Process
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}             ${RSPAMD_TESTDIR}/configs/lua_test.conf
 ${MESSAGE}            ${RSPAMD_TESTDIR}/messages/spam_message.eml
-${RSPAMD_LUA_SCRIPT}  ${RSPAMD_TESTDIR}/lua/dns.lua
-${RSPAMD_SCOPE}       Test
-${RSPAMD_URL_TLD}     ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
+${SETTINGS_DNS}       {symbols_enabled = [SIMPLE_DNS, SIMPLE_DNS_SYNC]}
 
 *** Test Cases ***
 Simple DNS request
   Scan File  ${MESSAGE}  To-Resolve=example.com
+  ...  Settings=${SETTINGS_DNS}
   Expect Symbol With Exact Options  DNS_SYNC  93.184.216.34
   Expect Symbol With Exact Options  DNS  93.184.216.34
 
 Faulty DNS request
   Scan File  ${MESSAGE}  To-Resolve=not-resolvable.com
+  ...  Settings=${SETTINGS_DNS}
   Expect Symbol With Exact Options  DNS_SYNC_ERROR  requested record is not found
   Expect Symbol With Exact Options  DNS_ERROR  requested record is not found
similarity index 60%
rename from test/functional/cases/270_selector.robot
rename to test/functional/cases/001_merged/270_selector.robot
index 683d53d0bc22d2cd982a4473ca80d58829c79c2a..8250db89ec5e51dce8441a6e1dd4856c6ea5a7ca 100644 (file)
@@ -1,21 +1,15 @@
 *** Settings ***
-Test Setup      Rspamd Setup
-Test Teardown   Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/selector.conf
 ${MESSAGE}         ${RSPAMD_TESTDIR}/messages/subject1.eml
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
-${UTF_MESSAGE}     ${RSPAMD_TESTDIR}/messages/utf.eml
-
 
 *** Test Cases ***
 Newlines 
   Scan File  ${MESSAGE}  User=test@user.com  Pass=all
+  ...  Settings={symbols_enabled = [CONFIG_SELECTOR_RE_RCPT_SUBJECT, LUA_SELECTOR_RE]}
   Expect Symbol  CONFIG_SELECTOR_RE_RCPT_SUBJECT
   Expect Symbol  LUA_SELECTOR_RE
 
similarity index 70%
rename from test/functional/cases/280_rules.robot
rename to test/functional/cases/001_merged/280_rules.robot
index fe0efa357825a62a57773444f56058f176ed50c6..52ea1c86dd83c2533cdc89231ccfc1fd144892c0 100644 (file)
@@ -1,12 +1,9 @@
 *** Settings ***
-Suite Setup      Rspamd Setup
-Suite Teardown   Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/regexp.conf
 ${MESSAGE1}        ${RSPAMD_TESTDIR}/messages/fws_fn.eml
 ${MESSAGE2}        ${RSPAMD_TESTDIR}/messages/fws_fp.eml
 ${MESSAGE3}        ${RSPAMD_TESTDIR}/messages/fws_tp.eml
@@ -16,101 +13,113 @@ ${MESSAGE6}        ${RSPAMD_TESTDIR}/messages/pdf_encrypted.eml
 ${MESSAGE7}        ${RSPAMD_TESTDIR}/messages/pdf_js.eml
 ${MESSAGE8}        ${RSPAMD_TESTDIR}/messages/yand_forward.eml
 ${MESSAGE}         ${RSPAMD_TESTDIR}/messages/newlines.eml
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
-
 
 *** Test Cases ***
 Broken MIME
-  Scan File  ${MESSAGE3}
+  Scan File  ${MESSAGE3}  Settings={symbols_enabled = [MISSING_SUBJECT]}
   Expect Symbol  MISSING_SUBJECT
 
 Issue 2584
   Scan File  ${MESSAGE1}
+  ...  Settings={symbols_enabled = [BROKEN_CONTENT_TYPE, MISSING_SUBJECT, R_MISSING_CHARSET]}
   Do Not Expect Symbol  BROKEN_CONTENT_TYPE
   Do Not Expect Symbol  MISSING_SUBJECT
   Do Not Expect Symbol  R_MISSING_CHARSET
 
 Issue 2349
   Scan File  ${MESSAGE2}
+  ...  Settings={symbols_enabled = [MULTIPLE_UNIQUE_HEADERS]}
   Do Not Expect Symbol  MULTIPLE_UNIQUE_HEADERS
 
 Broken Rich Text
   Scan File  ${MESSAGE4}
+  ...  Settings={symbols_enabled = [BROKEN_CONTENT_TYPE]}
   Expect Symbol  BROKEN_CONTENT_TYPE
 
-Dynamic Config
-  Scan File  ${MESSAGE}
-  Expect Symbol With Score  SA_BODY_WORD  10
-  Expect Required Score  20
-
 Broken boundary
   Scan File  ${MESSAGE4}
+  ...  Settings={symbols_enabled = [BROKEN_CONTENT_TYPE]}
   Expect Symbol  BROKEN_CONTENT_TYPE
 
 PDF encrypted
   Scan File  ${MESSAGE6}
+  ...  Settings={symbols_enabled = [PDF_ENCRYPTED]}
   Expect Symbol  PDF_ENCRYPTED
 
 PDF javascript
   Scan File  ${MESSAGE7}
+  ...  Settings={symbols_enabled = [PDF_JAVASCRIPT]}
   Expect Symbol  PDF_JAVASCRIPT
 
 BITCOIN ADDR
   Scan File  ${RSPAMD_TESTDIR}/messages/btc.eml
+  ...  Settings={symbols_enabled = [BITCOIN_ADDR]}
   Expect Symbol  BITCOIN_ADDR
 
 BITCOIN ADDR 2
   Scan File  ${RSPAMD_TESTDIR}/messages/btc2.eml
+  ...  Settings={symbols_enabled = [BITCOIN_ADDR]}
   Expect Symbol  BITCOIN_ADDR
 
 BITCOIN ADDR 3
   Scan File  ${RSPAMD_TESTDIR}/messages/btc3.eml
+  ...  Settings={symbols_enabled = [BITCOIN_ADDR]}
   Expect Symbol  BITCOIN_ADDR
 
 RCVD_COUNT_ONE
   Scan File  ${RSPAMD_TESTDIR}/messages/btc.eml
+  ...  Settings={symbols_enabled = [RCVD_COUNT_ONE]}
   Expect Symbol  RCVD_COUNT_ONE
 
 RCVD_COUNT_FIVE
   Scan File  ${RSPAMD_TESTDIR}/messages/yand_forward.eml
+  ...  Settings={symbols_enabled = [RCVD_COUNT_ONE]}
   Expect Symbol  RCVD_COUNT_FIVE
 
 RCVD_COUNT_SEVEN
   Scan File  ${RSPAMD_TESTDIR}/messages/rcvd7.eml
+  ...  Settings={symbols_enabled = [RCVD_COUNT_ONE]}
   Expect Symbol  RCVD_COUNT_SEVEN
 
 FROM_NEQ_ENVFROM
   Scan File  ${MESSAGE8}  From=test@test.net
+  ...  Settings={symbols_enabled = [FROM_NEQ_ENVFROM]}
   Expect Symbol  FROM_NEQ_ENVFROM
 
 PHISH_SENDER_A
   Scan File  ${RSPAMD_TESTDIR}/messages/phish_sender.eml
+  ...  Settings={symbols_enabled = [MULTIPLE_FROM, MULTIPLE_UNIQUE_HEADERS]}
   Expect Symbol With Score And Exact Options  MULTIPLE_FROM  9.0  <any@attack.com>  <admin@legitimate.com>
   Expect Symbol With Score And Exact Options  MULTIPLE_UNIQUE_HEADERS  7.0  From
 
 PHISH_SENDER_B
   Scan File  ${RSPAMD_TESTDIR}/messages/phish_sender2.eml
+  ...  Settings={symbols_enabled = [BROKEN_HEADERS]}
   Expect Symbol  BROKEN_HEADERS
 
 PHISH_SENDER_C
   Scan File  ${RSPAMD_TESTDIR}/messages/phish_sender3.eml
+  ...  Settings={symbols_enabled = [BROKEN_HEADERS]}
   Expect Symbol  BROKEN_HEADERS
 
 PHISH_SENDER_D
   Scan File  ${RSPAMD_TESTDIR}/messages/phish_sender4.eml
+  ...  Settings={symbols_enabled = [BROKEN_HEADERS]}
   Expect Symbol  BROKEN_HEADERS
 
 PHISH_SENDER_E
   Scan File  ${RSPAMD_TESTDIR}/messages/phish_sender5.eml
+  ...  Settings={symbols_enabled = [MULTIPLE_FROM, DMARC_CHECK, DKIM_CHECK, SPF_CHECK]}
   Expect Symbol  MULTIPLE_FROM
   Expect Symbol With Exact Options  DMARC_NA  Duplicate From header
 
 PHISH_SENDER_ROUTING_PART
   Scan File  ${RSPAMD_TESTDIR}/messages/phish_sender6.eml
+  ...  Settings={symbols_enabled = [FROM_INVALID]}
   Expect Symbol  FROM_INVALID
 
 REPLYTO_ADDR_EQ_FROM
   Scan File  ${RSPAMD_TESTDIR}/messages/replyto_addr_eq_from.eml
+  ...  Settings={symbols_enabled = [REPLYTO_ADDR_EQ_FROM]}
   Expect Symbol  REPLYTO_ADDR_EQ_FROM
 
similarity index 55%
rename from test/functional/cases/281_fnames.robot
rename to test/functional/cases/001_merged/281_fnames.robot
index 399127de84c48b529f0a597c54ace1d243287a35..bb600b1a6879307cb071e0173c6bb5cdae2af061 100644 (file)
@@ -1,19 +1,13 @@
 *** Settings ***
-Suite Setup     Rspamd Setup
-Suite Teardown  Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}             ${RSPAMD_TESTDIR}/configs/lua_script.conf
-${RSPAMD_LUA_SCRIPT}  ${RSPAMD_TESTDIR}/lua/test_fname.lua
-${RSPAMD_SCOPE}       Suite
-${RSPAMD_URL_TLD}     ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
-
+${SETTINGS_FNAME}   {symbols_enabled = [TEST_FNAME]}
 
 *** Test Cases ***
 FILE NAMES
-  Scan File  ${RSPAMD_TESTDIR}/messages/fname.eml
+  Scan File  ${RSPAMD_TESTDIR}/messages/fname.eml  Settings=${SETTINGS_FNAME}
   Expect Symbol With Option  TEST_FNAME  [삼성생명]2020.08.14 데일리 경제뉴스.pdf
   Expect Symbol With Option  TEST_FNAME  01029_402110_10620_RGT06902_PRT180ML_20200803_101820.pdf
similarity index 61%
rename from test/functional/cases/290_greylist.robot
rename to test/functional/cases/001_merged/290_greylist.robot
index 24385b5d55854aa942acbf40e94972c6930c2b7d..05ce3d3f0665beb1c78faa6bbc763058eea75b51 100644 (file)
@@ -1,27 +1,25 @@
 *** Settings ***
-Suite Setup     Rspamd Redis Setup
-Suite Teardown  Rspamd Redis Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/greylist.conf
-${MESSAGE}         ${RSPAMD_TESTDIR}/messages/spam_message.eml
-${REDIS_SCOPE}     Suite
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
+${MESSAGE}            ${RSPAMD_TESTDIR}/messages/spam_message.eml
+${SETTINGS_GREYLIST}  {symbols_enabled = [GREYLIST_CHECK, GREYLIST_SAVE], symbols = [FOUR_POINTS]}
 
 *** Test Cases ***
 GREYLIST NEW
   Scan File  ${MESSAGE}
+  ...  Settings=${SETTINGS_GREYLIST}
   Expect Symbol With Option  GREYLIST  greylisted
 
 GREYLIST EARLY
   Scan File  ${MESSAGE}
+  ...  Settings=${SETTINGS_GREYLIST}
   Expect Symbol With Option  GREYLIST  greylisted
 
 GREYLIST PASS
   Sleep  4s  Wait greylisting timeout
   Scan File  ${MESSAGE}
+  ...  Settings=${SETTINGS_GREYLIST}
   Expect Symbol With Option  GREYLIST  pass
similarity index 74%
rename from test/functional/cases/300_rbl.robot
rename to test/functional/cases/001_merged/300_rbl.robot
index 82565bcb72f6cd2ae05684a0c00e93d63af301c0..094eec40904c9b4d7514f89fd3a791c87ce138e8 100644 (file)
@@ -1,57 +1,62 @@
 *** Settings ***
-Suite Setup     Rspamd Setup
-Suite Teardown  Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/rbl.conf
 ${MESSAGE}         ${RSPAMD_TESTDIR}/messages/spam_message.eml
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
 
 *** Test Cases ***
 RBL FROM MISS
   Scan File  ${MESSAGE}  IP=1.2.3.4
+  ...  Settings={symbols_enabled = [FAKE_RBL_UNKNOWN_CHECK]}
   Do Not Expect Symbol  FAKE_RBL_CODE_2
 
 RBL FROM HIT
   Scan File  ${MESSAGE}  IP=4.3.2.1
+  ...  Settings={symbols_enabled = [FAKE_RBL_UNKNOWN_CHECK]}
   Expect Symbol  FAKE_RBL_CODE_2
 
 RBL FROM MULTIPLE HIT
   Scan File  ${MESSAGE}  IP=4.3.2.3
+  ...  Settings={symbols_enabled = [FAKE_RBL_UNKNOWN_CHECK]}
   Expect Symbol  FAKE_RBL_CODE_2
   Expect Symbol  FAKE_RBL_CODE_3
 
 RBL FROM UNKNOWN HIT
   Scan File  ${MESSAGE}  IP=4.3.2.2
+  ...  Settings={symbols_enabled = [FAKE_RBL_UNKNOWN_CHECK]}
   Expect Symbol  FAKE_RBL_FAKE_RBL_UNKNOWN
 
 RBL RECEIVED HIT
   Scan File  ${MESSAGE}  IP=8.8.8.8
+  ...  Settings={symbols_enabled = [FAKE_RECEIVED_RBL_FAKE_RBL_UNKNOWN]}
   Expect Symbol  FAKE_RECEIVED_RBL_CODE_3
 
 RBL FROM HIT WL
   Scan File  ${MESSAGE}  IP=4.3.2.4
+  ...  Settings={symbols_enabled = [FAKE_RBL_UNKNOWN, FAKE_WL_RBL_UNKNOWN]}
   Do Not Expect Symbol  FAKE_RBL_CODE_2
   Expect Symbol With Exact Options  FAKE_WL_RBL_CODE_2  4.3.2.4:from
 
 EMAILBL Compose Map 1
   Scan File  ${RSPAMD_TESTDIR}/messages/url14.eml
+  ...  Settings={symbols_enabled = [RSPAMD_EMAILBL]}
   Expect Symbol With Exact Options  RSPAMD_EMAILBL  dirty.sanchez.com:email
 
 EMAILBL Compose Map 2
   Scan File  ${RSPAMD_TESTDIR}/messages/url15.eml
+  ...  Settings={symbols_enabled = [RSPAMD_EMAILBL]}
   Expect Symbol With Exact Options  RSPAMD_EMAILBL  very.dirty.sanchez.com:email
 
 EMAILBL Compose Map 3
   Scan File  ${RSPAMD_TESTDIR}/messages/url16.eml
+  ...  Settings={symbols_enabled = [RSPAMD_EMAILBL]}
   Expect Symbol With Exact Options  RSPAMD_EMAILBL  41.black.sanchez.com:email
 
 CONTENT URLS
   Scan File  ${RSPAMD_TESTDIR}/messages/content_url.eml
+  ...  Settings={symbols_enabled = [URIBL_CONTENTONLY, URIBL_NOCONTENT, URIBL_WITHCONTENT]}
   Expect Symbol With Exact Options  URIBL_NOCONTENT  example.org:url
   Expect Symbol With Option  URIBL_WITHCONTENT  example.com:url
   Expect Symbol With Option  URIBL_WITHCONTENT  example.org:url
@@ -60,11 +65,13 @@ CONTENT URLS
 
 SELECTORS
   Scan File  ${RSPAMD_TESTDIR}/messages/btc.eml  From=user@example.com  Helo=example.org
+  ...  Settings={symbols_enabled = [RBL_SELECTOR_SINGLE, RBL_SELECTOR_MULTIPLE]}
   Expect Symbol With Exact Options  RBL_SELECTOR_SINGLE  example.org:selector
   Expect Symbol With Option  RBL_SELECTOR_MULTIPLE  example.com:sel_from
   Expect Symbol With Option  RBL_SELECTOR_MULTIPLE  example.org:sel_helo
 
 SELECTORS COMBINED
   Scan File  ${RSPAMD_TESTDIR}/messages/btc.eml  From=user@example.org  Helo=example.org
+  ...  Settings={symbols_enabled = [RBL_SELECTOR_MULTIPLE]}
   Expect Symbol With Option  RBL_SELECTOR_MULTIPLE  example.org:sel_from
   Expect Symbol With Option  RBL_SELECTOR_MULTIPLE  example.org:sel_helo
similarity index 79%
rename from test/functional/cases/310_udp.robot
rename to test/functional/cases/001_merged/310_udp.robot
index d5486a0306ba34af0add2113b726a8ad47e69f89..e94ed60e1e1c5e5082ac1252e5fe50b5c83536ca 100644 (file)
@@ -7,34 +7,32 @@ Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}             ${RSPAMD_TESTDIR}/configs/lua_test.conf
 ${MESSAGE}            ${RSPAMD_TESTDIR}/messages/spam_message.eml
-${RSPAMD_LUA_SCRIPT}  ${RSPAMD_TESTDIR}/lua/udp.lua
-${RSPAMD_SCOPE}       Test
-${RSPAMD_URL_TLD}     ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
+${SETTINGS_UDP}       {symbols_enabled = [UDP_FAIL,UDP_SENDTO,UDP_SUCCESS]}
 
 *** Test Cases ***
 Simple UDP request
   Scan File  ${MESSAGE}
+  ...  Settings=${SETTINGS_UDP}
   Expect Symbol With Exact Options  UDP_SUCCESS  helloworld
 
 Sendonly UDP request
   Scan File  ${MESSAGE}
+  ...  Settings=${SETTINGS_UDP}
   Expect Symbol  UDP_SENDTO
 
 Errored UDP request
   Scan File  ${MESSAGE}
+  ...  Settings=${SETTINGS_UDP}
   Expect Symbol With Exact Options  UDP_FAIL  read timeout
 
 *** Keywords ***
 UDP Setup
   Run Dummy UDP
-  Rspamd Setup
 
 UDP Teardown
   ${udp_pid} =  Get File  /tmp/dummy_udp.pid
   Shutdown Process With Children  ${udp_pid}
-  Rspamd Teardown
 
 Run Dummy UDP
   [Arguments]
similarity index 63%
rename from test/functional/cases/321_arc_check.robot
rename to test/functional/cases/001_merged/321_arc_check.robot
index 1a22eda9ec2be20721c7d5d2ec5d160e4b79ad38..3f6488bc4738635dcf64247c0b6c4f34e013bb6a 100644 (file)
@@ -1,21 +1,19 @@
 *** Settings ***
-Suite Setup     Rspamd Setup
-Suite Teardown  Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/arc.conf
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../../contrib/publicsuffix/effective_tld_names.dat
+${SETTINGS_ARC}  {symbols_enabled = [ARC_CALLBACK]}
 
 *** Test Cases ***
 ARC ALLOW CHECK
   Scan File  ${RSPAMD_TESTDIR}/messages/arcallow.eml
+  ...  Settings=${SETTINGS_ARC}
   Expect Symbol  ARC_ALLOW
 
 ARC BAD CHECK
   Scan File  ${RSPAMD_TESTDIR}/messages/arcbad.eml
+  ...  Settings=${SETTINGS_ARC}
   Expect Symbol  ARC_INVALID
 
similarity index 83%
rename from test/functional/cases/340_surbl.robot
rename to test/functional/cases/001_merged/340_surbl.robot
index faf4a92c2981859bd79a7b347ebcfc1a9f0edc61..a1d073642fb9f06dd2cc686887e5601eae9b0a75 100644 (file)
@@ -1,31 +1,30 @@
 *** Settings ***
-Suite Setup     Rspamd Setup
-Suite Teardown  Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}          ${RSPAMD_TESTDIR}/configs/surbl.conf
-${RSPAMD_SCOPE}    Suite
-${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
+${SETTINGS_SURBL}  {groups_enabled = [rbl]}
 
 *** Test Cases ***
 SURBL resolve ip
   Scan File  ${RSPAMD_TESTDIR}/messages/url7.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol With Exact Options  URIBL_SBL_CSS  8.8.8.9:example.ru:url
   Expect Symbol With Exact Options  URIBL_XBL  8.8.8.8:example.ru:url
   Expect Symbol With Exact Options  URIBL_PBL  8.8.8.8:example.ru:url
 
 SURBL Example.com domain
   Scan File  ${RSPAMD_TESTDIR}/messages/url4.eml
-  Expect Symbol  RSPAMD_URIBL
-  Expect Symbol  DBL_SPAM
-  Do Not Expect Symbol  DBL_PHISH
+  ...  Settings=${SETTINGS_SURBL}
+  Expect Symbol With Exact Options  RSPAMD_URIBL  example.com:url
+  Expect Symbol With Exact Options  DBL_SPAM  example.com:url
+  Expect Symbol With Exact Options  DBL_PHISH  rspamd.tk:url
   Do Not Expect Symbol  URIBL_BLACK
 
 SURBL Example.net domain
   Scan File  ${RSPAMD_TESTDIR}/messages/url5.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  DBL_PHISH
   Do Not Expect Symbol  DBL_SPAM
   Do Not Expect Symbol  RSPAMD_URIBL
@@ -33,6 +32,7 @@ SURBL Example.net domain
 
 SURBL Example.org domain
   Scan File  ${RSPAMD_TESTDIR}/messages/url6.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  URIBL_BLACK
   Do Not Expect Symbol  DBL_SPAM
   Do Not Expect Symbol  RSPAMD_URIBL
@@ -40,6 +40,7 @@ SURBL Example.org domain
 
 SURBL Example.ru domain
   Scan File  ${RSPAMD_TESTDIR}/messages/url7.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  URIBL_GREY
   Expect Symbol  URIBL_RED
   Do Not Expect Symbol  DBL_SPAM
@@ -49,6 +50,7 @@ SURBL Example.ru domain
 
 SURBL Example.ru ZEN domain
   Scan File  ${RSPAMD_TESTDIR}/messages/url7.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  URIBL_SBL_CSS
   Expect Symbol  URIBL_XBL
   Expect Symbol  URIBL_PBL
@@ -60,6 +62,7 @@ SURBL Example.ru ZEN domain
 
 SURBL Example.com domain image false
   Scan File  ${RSPAMD_TESTDIR}/messages/urlimage.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_URIBL_IMAGES
   Do Not Expect Symbol  DBL_SPAM
   Do Not Expect Symbol  RSPAMD_URIBL
@@ -68,6 +71,7 @@ SURBL Example.com domain image false
 
 SURBL @example.com mail html
   Scan File  ${RSPAMD_TESTDIR}/messages/mailadr.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_URIBL
   Expect Symbol With Exact Options  DBL_SPAM  example.com:email
   Do Not Expect Symbol  RSPAMD_URIBL_IMAGES
@@ -76,6 +80,7 @@ SURBL @example.com mail html
 
 SURBL @example.com mail text
   Scan File  ${RSPAMD_TESTDIR}/messages/mailadr2.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_URIBL
   Expect Symbol With Exact Options  DBL_SPAM  example.com:email
   Do Not Expect Symbol  RSPAMD_URIBL_IMAGES
@@ -84,6 +89,7 @@ SURBL @example.com mail text
 
 SURBL example.com not encoded url in subject
   Scan File  ${RSPAMD_TESTDIR}/messages/urlinsubject.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_URIBL
   Expect Symbol  DBL_SPAM
   Do Not Expect Symbol  DBL_PHISH
@@ -91,6 +97,7 @@ SURBL example.com not encoded url in subject
 
 SURBL example.com encoded url in subject
   Scan File  ${RSPAMD_TESTDIR}/messages/urlinsubjectencoded.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_URIBL
   Expect Symbol  DBL_SPAM
   Do Not Expect Symbol  DBL_PHISH
@@ -98,41 +105,49 @@ SURBL example.com encoded url in subject
 
 WHITELIST
   Scan File  ${RSPAMD_TESTDIR}/messages/whitelist.eml
+  ...  Settings=${SETTINGS_SURBL}
   Do Not Expect Symbol  RSPAMD_URIBL
   Do Not Expect Symbol  DBL_SPAM
   Do Not Expect Symbol  RSPAMD_URIBL_IMAGES
 
 EMAILBL full address & domain only
   Scan File  ${RSPAMD_TESTDIR}/messages/emailbltext.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_EMAILBL_FULL
   Expect Symbol  RSPAMD_EMAILBL_DOMAINONLY
 
 EMAILBL full subdomain address
   Scan File  ${RSPAMD_TESTDIR}/messages/emailbltext2.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_EMAILBL_FULL
 
 EMAILBL full subdomain address & domain only
   Scan File  ${RSPAMD_TESTDIR}/messages/emailbltext3.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol With Exact Options  RSPAMD_EMAILBL_DOMAINONLY  baddomain.com:email
   Expect Symbol With Exact Options  RSPAMD_EMAILBL_FULL  user.subdomain.baddomain.com:email
 
 EMAILBL REPLY TO full address
   Scan File  ${RSPAMD_TESTDIR}/messages/replyto.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_EMAILBL_FULL
   Do Not Expect Symbol  RSPAMD_EMAILBL_DOMAINONLY
 
 EMAILBL REPLY TO domain only
   Scan File  ${RSPAMD_TESTDIR}/messages/replyto2.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_EMAILBL_DOMAINONLY
   Do Not Expect Symbol  RSPAMD_EMAILBL_FULL
 
 EMAILBL REPLY TO full subdomain address
   Scan File  ${RSPAMD_TESTDIR}/messages/replytosubdomain.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_EMAILBL_FULL
   Do Not Expect Symbol  RSPAMD_EMAILBL_DOMAINONLY
 
 SURBL IDN domain
   Scan File  ${RSPAMD_TESTDIR}/messages/url8.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_URIBL
   Expect Symbol  DBL_SPAM
   Do Not Expect Symbol  DBL_PHISH
@@ -140,6 +155,7 @@ SURBL IDN domain
 
 SURBL IDN Punycode domain
   Scan File  ${RSPAMD_TESTDIR}/messages/url9.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_URIBL
   Expect Symbol  DBL_SPAM
   Do Not Expect Symbol  DBL_PHISH
@@ -147,16 +163,20 @@ SURBL IDN Punycode domain
 
 SURBL html entity&shy
   Scan File  ${RSPAMD_TESTDIR}/messages/url10.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol  RSPAMD_URIBL
 
 SURBL url compose map 1
   Scan File  ${RSPAMD_TESTDIR}/messages/url11.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol With Exact Options  BAD_SUBDOMAIN  clean.dirty.sanchez.com:url
 
 SURBL url compose map 2
   Scan File  ${RSPAMD_TESTDIR}/messages/url12.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol With Exact Options  BAD_SUBDOMAIN  4.very.dirty.sanchez.com:url
 
 SURBL url compose map 3
   Scan File  ${RSPAMD_TESTDIR}/messages/url13.eml
+  ...  Settings=${SETTINGS_SURBL}
   Expect Symbol With Exact Options  BAD_SUBDOMAIN  41.black.sanchez.com:url
similarity index 82%
rename from test/functional/cases/350_magic.robot
rename to test/functional/cases/001_merged/350_magic.robot
index 6dad5f247d31f5b0c362d0ba09a3ee1faba873d4..b8f6936cbd01b715d17e80ca83613e7beac85aed 100644 (file)
@@ -1,19 +1,14 @@
 *** Settings ***
-Suite Setup     Rspamd Setup
-Suite Teardown  Rspamd Teardown
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
-${CONFIG}             ${RSPAMD_TESTDIR}/configs/lua_script.conf
-${RSPAMD_LUA_SCRIPT}  ${RSPAMD_TESTDIR}/lua/magic.lua
-${RSPAMD_SCOPE}       Suite
-${RSPAMD_URL_TLD}     ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
+${SETTINGS_MAGIC}    {symbols_enabled = [MAGIC_SYM]}
 
 *** Test Cases ***
 Magic detections bundle 1
-  Scan File  ${RSPAMD_TESTDIR}/messages/gargantua.eml
+  Scan File  ${RSPAMD_TESTDIR}/messages/gargantua.eml  Settings=${SETTINGS_MAGIC}
   Expect Symbols  MAGIC_SYM_ZIP_2
   ...  MAGIC_SYM_RAR_3
   ...  MAGIC_SYM_EXE_4
diff --git a/test/functional/cases/001_merged/__init__.robot b/test/functional/cases/001_merged/__init__.robot
new file mode 100644 (file)
index 0000000..07f877c
--- /dev/null
@@ -0,0 +1,14 @@
+*** Settings ***
+Suite Setup     Rspamd Redis Setup
+Suite Teardown  Rspamd Redis Teardown
+Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
+Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
+Variables       ${RSPAMD_TESTDIR}/lib/vars.py
+
+*** Variables ***
+${CONFIG}             ${RSPAMD_TESTDIR}/configs/merged.conf
+${REDIS_SCOPE}        Suite
+${RSPAMD_MAP_MAP}     ${RSPAMD_TESTDIR}/configs/maps/map.list
+${RSPAMD_RADIX_MAP}   ${RSPAMD_TESTDIR}/configs/maps/ip2.list
+${RSPAMD_REGEXP_MAP}  ${RSPAMD_TESTDIR}/configs/maps/regexp.list
+${RSPAMD_SCOPE}       Suite
index 67e0d35ec4d3d3f3a49fd7e2f758665652ee59f0..c820d1b848e6de18755a35b10cd4cc995cefd0fe 100644 (file)
@@ -6,10 +6,7 @@ Variables       ${RSPAMD_TESTDIR}/lib/vars.py
 
 *** Variables ***
 ${CONFIG}          ${RSPAMD_TESTDIR}/configs/lua_test.conf
-${MAP_MAP}         ${RSPAMD_TESTDIR}/configs/maps/map.list
 ${MESSAGE}         ${RSPAMD_TESTDIR}/messages/spam_message.eml
-${RADIX_MAP}       ${RSPAMD_TESTDIR}/configs/maps/ip2.list
-${REGEXP_MAP}      ${RSPAMD_TESTDIR}/configs/maps/regexp.list
 ${RSPAMD_SCOPE}    Test
 ${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
 
@@ -31,63 +28,8 @@ Pre and Post Filters
   Expect Symbol  TEST_PRE
   Expect Symbol  TEST_POST
 
-Recipient Parsing Sanity
-  [Setup]  Lua Setup  ${RSPAMD_TESTDIR}/lua/recipients.lua
-  Scan File  ${MESSAGE}  Rcpt=rcpt1@foobar,rcpt2@foobar,rcpt3@foobar,rcpt4@foobar
-  Expect Symbol With Exact Options  TEST_RCPT  rcpt1@foobar,rcpt2@foobar,rcpt3@foobar,rcpt4@foobar
-
-TLD parts
-  [Setup]  TLD Setup  ${RSPAMD_TESTDIR}/lua/tlds.lua
-  Scan File  ${MESSAGE}
-  Expect Symbol With Exact Options  TEST_TLD  no worry
-
-Hashes
-  [Setup]  Lua Setup  ${RSPAMD_TESTDIR}/lua/hashes.lua
-  Scan File  ${MESSAGE}
-  Expect Symbol With Exact Options  TEST_HASHES  no worry
-
-Maps Key Values
-  [Setup]  Lua Replace Setup  ${RSPAMD_TESTDIR}/lua/maps_kv.lua
-  [Teardown]  Lua Replace Teardown
-  Scan File  ${MESSAGE}
-  Expect Symbol With Exact Options  RADIX_KV  no worry
-  Expect Symbol With Exact Options  REGEXP_KV  no worry
-  Expect Symbol With Exact Options  MAP_KV  no worry
-
-Option Order
-  [Setup]  Lua Replace Setup  ${RSPAMD_TESTDIR}/lua/option_order.lua
-  [Teardown]  Lua Replace Teardown
-  Scan File  ${MESSAGE}
-  Expect Symbol With Exact Options  OPTION_ORDER  one  two  three  4  5  a
-  Expect Symbol With Exact Options  TBL_OPTION_ORDER  one  two  three  4  5  a
-
-Rule conditions
-  [Setup]  Lua Replace Setup  ${RSPAMD_TESTDIR}/lua/conditions.lua
-  [Teardown]  Lua Replace Teardown
-  Scan File  ${MESSAGE}
-  Expect Symbol With Option  ANY_A  hello3
-  Expect Symbol With Option  ANY_A  hello1
-  Expect Symbol With Option  ANY_A  hello2
-
 *** Keywords ***
 Lua Setup
   [Arguments]  ${RSPAMD_LUA_SCRIPT}
   Set Test Variable  ${RSPAMD_LUA_SCRIPT}
   Rspamd Setup
-
-Lua Replace Setup
-  [Arguments]  ${LUA_SCRIPT_UNESC}
-  ${RSPAMD_LUA_SCRIPT} =  Make Temporary File
-  ${lua} =  Get File  ${LUA_SCRIPT_UNESC}
-  ${lua} =  Replace Variables  ${lua}
-  Create File  ${RSPAMD_LUA_SCRIPT}  ${lua}
-  Lua Setup  ${RSPAMD_LUA_SCRIPT}
-
-Lua Replace Teardown
-  Remove File  ${RSPAMD_LUA_SCRIPT}
-  Rspamd Teardown
-
-TLD Setup
-  [Arguments]  ${RSPAMD_LUA_SCRIPT}
-  Set Test Variable  ${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../../contrib/publicsuffix/effective_tld_names.dat
-  Lua Setup  ${RSPAMD_LUA_SCRIPT}
diff --git a/test/functional/cases/220_http.robot b/test/functional/cases/220_http.robot
deleted file mode 100644 (file)
index 6902228..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-*** Settings ***
-Test Setup      Http Setup
-Test Teardown   Http Teardown
-Library         Process
-Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
-Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
-Variables       ${RSPAMD_TESTDIR}/lib/vars.py
-
-*** Variables ***
-${CONFIG}             ${RSPAMD_TESTDIR}/configs/lua_test.conf
-${MESSAGE}            ${RSPAMD_TESTDIR}/messages/spam_message.eml
-${RSPAMD_LUA_SCRIPT}  ${RSPAMD_TESTDIR}/lua/http.lua
-${RSPAMD_SCOPE}       Test
-${RSPAMD_URL_TLD}     ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
-
-*** Test Cases ***
-Simple HTTP request
-  Check url  /request  get  HTTP_DNS_200  HTTP_200  HTTP_CORO_DNS_200  HTTP_CORO_200  method_get  hello world  HTTP_CORO_200 (0.00)[hello world]
-  Check url  /request  post  HTTP_DNS_200  HTTP_200  HTTP_CORO_DNS_200  HTTP_CORO_200  method_post  hello post  HTTP_CORO_DNS_200 (0.00)[hello post]
-
-*** Test Cases ***
-HTTP request 403
-  Check url  /error_403  get  HTTP_DNS_403  HTTP_403  HTTP_CORO_DNS_403  HTTP_CORO_403  method_get
-  Check url  /error_403  post  HTTP_DNS_403  HTTP_403  HTTP_CORO_DNS_403  HTTP_CORO_403  method_post
-
-
-*** Test Cases ***
-HTTP timeout
-  Check url  /timeout  get  HTTP_ERROR  HTTP_ERROR  HTTP_CORO_DNS_ERROR  HTTP_CORO_ERROR  method_get  IO timeout
-  Check url  /timeout  post  HTTP_DNS_ERROR  HTTP_ERROR  HTTP_CORO_DNS_ERROR  HTTP_CORO_ERROR  method_post  IO timeout
-
-
-*** Test Cases ***
-HTTP empty response
-  Check url  /empty  get  HTTP_ERROR  HTTP_ERROR  HTTP_CORO_DNS_ERROR  HTTP_CORO_ERROR  method_get  IO read error: unexpected EOF
-  Check url  /empty  post  HTTP_DNS_ERROR  HTTP_ERROR  HTTP_CORO_DNS_ERROR  HTTP_CORO_ERROR  method_post  IO read error: unexpected EOF
-
-SSL Large HTTP request
-  Scan File  ${MESSAGE}
-  Expect Symbol  HTTP_SSL_LARGE
-
-*** Keywords ***
-Http Setup
-  Run Dummy Http
-  Run Dummy Https
-  Rspamd Setup
-
-Http Teardown
-  ${http_pid} =  Get File  /tmp/dummy_http.pid
-  Shutdown Process With Children  ${http_pid}
-  ${https_pid} =  Get File  /tmp/dummy_https.pid
-  Shutdown Process With Children  ${https_pid}
-  Rspamd Teardown
-
-Run Dummy Http
-  ${result} =  Start Process  ${RSPAMD_TESTDIR}/util/dummy_http.py
-  Wait Until Created  /tmp/dummy_http.pid
-
-Run Dummy Https
-  ${result} =  Start Process  ${RSPAMD_TESTDIR}/util/dummy_https.py  ${RSPAMD_TESTDIR}/util/server.pem
-  Wait Until Created  /tmp/dummy_https.pid
-
-Check url
-  [Arguments]  ${url}  ${method}  @{expect_results}
-  ${result} =  Scan Message With Rspamc  --header=url:${url}  --header=method:${method}  ${MESSAGE}
-  FOR  ${expect}  IN  @{expect_results}
-    Check Rspamc  ${result}  ${expect}
-  END
diff --git a/test/functional/cases/231_tcp_down.robot b/test/functional/cases/231_tcp_down.robot
deleted file mode 100644 (file)
index 3403be6..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-*** Settings ***
-Test Setup      Rspamd Setup
-Test Teardown   Rspamd Teardown
-Library         Process
-Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
-Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
-Variables       ${RSPAMD_TESTDIR}/lib/vars.py
-
-*** Variables ***
-${CONFIG}             ${RSPAMD_TESTDIR}/configs/lua_test.conf
-${MESSAGE}            ${RSPAMD_TESTDIR}/messages/spam_message.eml
-${RSPAMD_LUA_SCRIPT}  ${RSPAMD_TESTDIR}/lua/tcp.lua
-${RSPAMD_SCOPE}       Test
-${RSPAMD_URL_TLD}     ${RSPAMD_TESTDIR}/../lua/unit/test_tld.dat
-
-*** Test Cases ***
-
-Sync API TCP get request when server is down
-  [Documentation]  We don't create HTTP server here, that's why
-  ...              all requests fail with "connection refused"
-  Check url  /request  get  HTTP_ASYNC_RESPONSE (0.00)[Socket error detected: Connection refused]
-  Check url  /content-length  HTTP_SYNC_WRITE_ERROR (0.00)[Socket error detected: Connection refused]
-
-
-*** Keywords ***
-Check url
-  [Arguments]  ${url}  ${method}  @{expect_results}
-  ${result} =  Scan Message With Rspamc  --header=url:${url}  --header=method:${method}  ${MESSAGE}
-  FOR  ${expect}  IN  @{expect_results}
-    Check Rspamc  ${result}  ${expect}
-  END
index 1ff2765a7ba6838001092d8d18752d55fbbde1b1..4c12c143377cc77d79e59e41e274d06f772939be 100644 (file)
@@ -7,7 +7,6 @@ Library         Process
 Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
 Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
 Variables       ${RSPAMD_TESTDIR}/lib/vars.py
-Suite Teardown  Terminate All Processes    kill=True
 
 
 *** Variables ***
index 5cf48fe18f5f5dbde31e60bbc67646cba1ba555b..d5055b07987af42815f88e2ec5a022db564af9e7 100644 (file)
@@ -26,3 +26,8 @@ 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
+
+Dynamic Config
+  Scan File  ${MESSAGE}
+  Expect Symbol With Score  SA_BODY_WORD  10
+  Expect Required Score  20
diff --git a/test/functional/configs/antivirus.conf b/test/functional/configs/antivirus.conf
deleted file mode 100644 (file)
index 8b971a5..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
-
-redis {
-  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
-}
-antivirus {
- clam {
-    attachments_only = false;
-    symbol = "CLAM_VIRUS";
-    type = "clamav";
-    servers = "127.0.0.1:{= env.PORT_CLAM =}";
-  }
-  fprot {
-    attachments_only = false;
-    symbol = "FPROT_VIRUS";
-    type = "fprot";
-    servers = "127.0.0.1:{= env.PORT_FPROT =}";
-    patterns {
-      FPROT_EICAR = "^EICAR_Test_File$";
-    }
-  }
-  fprot_duplicate {
-    prefix = "fp_dupe";
-    attachments_only = false;
-    symbol = "FPROT2_VIRUS_DUPLICATE_DEFAULT";
-    type = "fprot";
-    servers = "127.0.0.1:{= env.PORT_FPROT2_DUPLICATE =}";
-    patterns = [
-      {FPROT2_VIRUS_DUPLICATE_PATTERN = "^E"},
-      {FPROT2_VIRUS_DUPLICATE_NOPE1 = "^EI",
-      FPROT2_VIRUS_DUPLICATE_NOPE2 = "^EIC",
-      FPROT2_VIRUS_DUPLICATE_NOPE3 = "^EICA",
-      FPROT2_VIRUS_DUPLICATE_NOPE4 = "^EICAR",
-      FPROT2_VIRUS_DUPLICATE_NOPE5 = "^EICAR_"}
-    ];
-  }
-  avast {
-      attachments_only = false;
-      symbol = "AVAST_VIRUS";
-      type = "avast";
-      servers = "127.0.0.1:{= env.PORT_AVAST =}";
-  }
-}
diff --git a/test/functional/configs/arc.conf b/test/functional/configs/arc.conf
deleted file mode 100644 (file)
index 8a8a525..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
-
-arc { }
diff --git a/test/functional/configs/dmarc.conf b/test/functional/configs/dmarc.conf
deleted file mode 100644 (file)
index 130e561..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
-
-dmarc { }
-spf {
-  external_relay = [
-       "{= env.TESTDIR =}/configs/maps/external_relay_ip.list",
-  ];
-}
diff --git a/test/functional/configs/greylist.conf b/test/functional/configs/greylist.conf
deleted file mode 100644 (file)
index d47500c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
-
-redis {
-  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
-}
-greylist {
-  check_local = true;
-  timeout = 4;
-}
-
-actions {
-  greylist = 1;
-}
diff --git a/test/functional/configs/merged-local.conf b/test/functional/configs/merged-local.conf
new file mode 100644 (file)
index 0000000..1329a6e
--- /dev/null
@@ -0,0 +1,905 @@
+emails {
+  "whitelist" = [
+    "rspamd-test.com"
+  ]
+  rules {
+    "RSPAMD_EMAILBL_FULL" {
+        dnsbl = "test5.uribl";
+        replyto = true;
+        }
+      "RSPAMD_EMAILBL_DOMAINONLY" {
+        dnsbl = "test6.uribl";
+        domain_only = true;
+        replyto = true;
+      }
+  }
+}
+
+greylist {
+  check_local = true;
+  timeout = 4;
+}
+
+logging = {
+  type = "file",
+  level = "debug"
+  filename = "{= env.TMPDIR =}/rspamd.log"
+  log_usec = true;
+}
+
+mid = {
+    source = {
+        url = [
+            "https://maps.rspamd.com/rspamd/mid.inc.zst",
+            "fallback+file://{= env.TESTDIR =}/../../../conf/mid.inc",
+            "file://{= env.TESTDIR =}/configs/maps/mid.list"
+        ];
+    }
+}
+
+mime_types {
+    file = [
+      "https://maps.rspamd.com/rspamd/mime_types.inc.zst",
+      "fallback+file://{= env.TESTDIR =}/../../../conf/mime_types.inc"
+     ];
+    extension_map {
+        html = "text/html";
+        txt [
+            "message/disposition-notification",
+            "text/plain",
+            "text/rfc822-headers",
+        ]
+        pdf [
+            "application/octet-stream",
+            "application/pdf",
+        ]
+    }
+    filename_whitelist = "{= env.TESTDIR =}/configs/maps/mime_types.wl";
+}
+
+options = {
+  pidfile = "{= env.TMPDIR =}/rspamd.pid"
+  dns {
+    nameserver = ["8.8.8.8", "8.8.4.4"];
+    retransmits = 10;
+    timeout = 2s;
+        fake_records = [{
+        # non-existent records requested by 350_surbl tests
+        name = "114.73.21.104.test4.uribl", type = "a", rcode = "norec"},
+        {name = "153.23.128.52.test4.uribl", type = "a", rcode = "norec"},
+        {name = "158.136.181.135.test4.uribl", type = "a", rcode = "norec"},
+        {name = "177.115.236.44.test4.uribl", type = "a", rcode = "norec"},
+        {name = "180.136.102.34.test4.uribl", type = "a", rcode = "norec"},
+        {name = "180.144.67.172.test4.uribl", type = "a", rcode = "norec"},
+        {name = "2.7.9.4.5.1.8.6.0.0.0.0.0.0.0.0.0.0.0.0.7.3.0.3.0.0.7.4.6.0.6.2.test4.uribl", type = "a", rcode = "norec"},
+        {name = "217.228.62.64.test4.uribl", type = "a", rcode = "norec"},
+        {name = "34.216.184.93.test4.uribl", type = "a", rcode = "norec"},
+        {name = "4.b.0.9.3.4.c.a.0.0.0.0.0.0.0.0.0.0.0.0.1.3.0.3.0.0.7.4.6.0.6.2.test4.uribl", type = "a", rcode = "norec"},
+        {name = "4eikheqjb4rb3y4oxgnfxek9wrwnyii4.test.uribl", type = "a", rcode = "norec"},
+        {name = "6.4.9.1.8.c.5.2.3.9.8.1.8.4.2.0.1.0.0.0.0.2.2.0.0.0.8.2.6.0.6.2.test4.uribl", type = "a", rcode = "norec"},
+        {name = "69so7b146n15x6qkr8rj9x8iqb7zfr1s.test.uribl", type = "a", rcode = "norec"},
+        {name = "6cqpxfrojdnzawwjmacjwtstzwehxnzb.test.uribl", type = "a", rcode = "norec"},
+        {name = "7.5.2.e.9.5.e.f.f.f.1.9.c.3.0.f.0.0.0.0.0.0.0.0.1.0.c.3.0.0.6.2.test4.uribl", type = "a", rcode = "norec"},
+        {name = "baddomain.com.test2.uribl", type = "a", rcode = "norec"},
+        {name = "baddomain.com.test3.uribl", type = "a", rcode = "norec"},
+        {name = "bbjo9td11ewijyjkq8rsn4j3kxhthz4m.test.uribl", type = "a", rcode = "norec"},
+        {name = "emailbl.com.test2.uribl", type = "a", rcode = "norec"},
+        {name = "emailbl.com.test3.uribl", type = "a", rcode = "norec"},
+        {name = "emailbl.com.test6.uribl", type = "a", rcode = "norec"},
+        {name = "example.com.test3.uribl", type = "a", rcode = "norec"},
+        {name = "example.com.test6.uribl", type = "a", rcode = "norec"},
+        {name = "example.com.test7.uribl", type = "a", rcode = "norec"},
+        {name = "example.net.test3.uribl", type = "a", rcode = "norec"},
+        {name = "example.net.test7.uribl", type = "a", rcode = "norec"},
+        {name = "example.org.test2.uribl", type = "a", rcode = "norec"},
+        {name = "example.org.test3.uribl", type = "a", rcode = "norec"},
+        {name = "example.org.test7.uribl", type = "a", rcode = "norec"},
+        {name = "example.ru.test2.uribl", type = "a", rcode = "norec"},
+        {name = "example.ru.test7.uribl", type = "a", rcode = "norec"},
+        {name = "gdhhir83i5pjk6s8i3e5afwa4md7uns7.test.uribl", type = "a", rcode = "norec"},
+        {name = "k8qo8m33z19cqejfncirs85rf4nr9h3u.test.uribl", type = "a", rcode = "norec"},
+        {name = "kr1adm7tnzuudiftdt1g4t6yg1rbt1ez.test.uribl", type = "a", rcode = "norec"},
+        {name = "rspamd.com.test2.uribl", type = "a", rcode = "norec"},
+        {name = "rspamd.com.test3.uribl", type = "a", rcode = "norec"},
+        {name = "rspamd.com.test7.uribl", type = "a", rcode = "norec"},
+        {name = "rspamd.tk.test3.uribl", type = "a", rcode = "norec"},
+        {name = "rspamd.tk.test7.uribl", type = "a", rcode = "norec"},
+        {name = "sanchez.com.test2.uribl", type = "a", rcode = "norec"},
+        {name = "sanchez.com.test3.uribl", type = "a", rcode = "norec"},
+        {name = "sanchez.com.test7.uribl", type = "a", rcode = "norec"},
+        {name = "subdomain.emailbl.com.test6.uribl", type = "a", rcode = "norec"},
+        {name = "testtest.com.test2.uribl", type = "a", rcode = "norec"},
+        {name = "testtest.com.test3.uribl", type = "a", rcode = "norec"},
+        {name = "testtest.com.test7.uribl", type = "a", rcode = "norec"},
+        {name = "user.baddomain.com.test5.uribl", type = "a", rcode = "norec"},
+        {name = "user.example.com.test5.uribl", type = "a", rcode = "norec"},
+        {name = "xn--80arbjktj.xn--p1ai.test3.uribl", type = "a", rcode = "norec"},
+        {name = "xn--80arbjktj.xn--p1ai.test7.uribl", type = "a", rcode = "norec"},
+        {name = "y84tis6xzaf41h4p5kzxiw6puixnm43k.test.uribl", type = "a", rcode = "norec"},
+        # other stuff is here too! :\
+        { # 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"];
+        },
+        {
+          name = "eddsa._domainkey.cacophony.za.org",
+          type = "txt";
+          replies = ["v=DKIM1; k=ed25519; p=+nU+aC33ICeS4zx8VUjFYCtxj0fRbHWQn2gP2hTkm9w="];
+        },
+        {
+          name = "dkim._domainkey.invalid.za.org",
+          type = "txt";
+          replies = ["v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEEXmNGQq7PUrr9Mg4UakTFHgXBCy2DOztkrZm+0OrVWtiRzGluxBkbOWTBwuU3/Yw97yTphBMQxzWFN603/f/KPAQcF/Lc1l+6kmIBBxNXjjGuOK/3PYKZVntUdKmqcQBYfnHdzH2Tohbuyx1a7xqnv6VSChqQrZU4CwkeT3+eQIDAQAB"];
+        },
+        {
+          name = "eddsa._domainkey.invalid.za.org",
+          type = "txt";
+          replies = ["v=DKIM1; k=ed25519; p=Wkkrp5DJTvknDMGWYv8vm3p3sZjiQp03LZo80RregY8="];
+        },
+        {
+          name = "dkim._domainkey.rspamd.com",
+          type = "txt";
+          replies = ["v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCd/XhZBEGGAss48lEuMmwZv9lOFf6FTllBiQ3sPhdTpDdIPaW9TInW7iYnYD/bXHeVxYAyD/sKhYk6+qGBRu10rEi+iyPvLCIED+Boq0tEQosuKuV6Fjoomb+QhZY9KdjyZTjsrFPZ+wCkUY/30uTmpX2SwSqyxxlK0pUIsRgMAQIDAQAB"];
+        },
+        {
+          name = "_dmarc.rspamd.com",
+          type = "txt";
+          rcode = 'norec';
+        },
+        {
+          name = "dkim._domainkey.highsecure.ru",
+          type = "txt";
+          replies = ["p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDK4ZQYky30GH0Ak9OQ1fv3IdFNbpOtpa4S/PR20ZLgPXfd/FCA//ztUmu7kHlELI+/+4f8W+xX0oZlOc/cFxhopRjXZMlSsQqmWOZ40/GxWFBtcqafKu78FCqO7URqZUmMCM5Jlp4zt/yzH3dbYNG3i5PVlB5QtQnZvY+dvBL3dwIDAQAB"];
+        },
+        {
+          name = "_dmarc.cacophony.za.org",
+          type = "txt";
+          replies = ["v=DMARC1; p=none; sp=reject"];
+        },
+        {
+          name = "_dmarc.my.mom.za.org",
+          type = "txt";
+          replies = ["v=DMARC1; p=reject"];
+        },
+        {
+          name = "example.net",
+          type = "txt";
+          replies = ["v=spf1 -all"];
+        },
+        {
+          name = "fail4.org.org.za",
+          type = "txt";
+          replies = ["v=spf1 redirect=asdfsfewewrredfs"];
+        },
+        {
+          name = "_dmarc.reject.cacophony.za.org",
+          type = "txt";
+          replies = ["v=DMARC1; p=reject"];
+        },
+        {
+          name = "spf.cacophony.za.org",
+          type = "txt";
+          replies = ["v=spf1 ip4:8.8.4.4 -all"];
+        },
+        {
+          name = "fail7.org.org.za",
+          type = "a";
+          rcode = 'norec';
+        },
+        {
+          name = "fail6.org.org.za",
+          type = "txt";
+          replies = ["v=spf1 ip4:8.8.8.8 mx -all"];
+        },
+        {
+          name = "fail6.org.org.za",
+          type = "mx";
+          rcode = 'norec';
+        },
+        {
+          name = "fail7.org.org.za",
+          type = "aaaa";
+          rcode = 'norec';
+        },
+        {
+          name = "_dmarc.quarantine.cacophony.za.org",
+          type = "txt";
+          replies = ["v=DMARC1; p=quarantine"];
+        },
+        {
+          name = "_dmarc.yo.mom.za.org",
+          type = "txt";
+          replies = ["v=DMARC1; p=reject; aspf=s; adkim=s;"];
+        },
+        {
+          name = "yo.mom.za.org",
+          type = "txt";
+          replies = ["v=spf1 ip4:37.48.67.26 -all"];
+        },
+        {
+          name = "testdkim._domainkey.mom.za.org",
+          type = "txt";
+          replies = ["v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3v4VPE1QMHUzsMRbC8VzXNq82mDjiv9Gi1NB/YYC+vIYZT+sE/Uxnr0Clk8C2jgzEr3jcxgQEWZfMtEEg/EfEJvh4SrXWv9c0gw1EEfxKxX9i+r8yBQtc/EWospWVDkhF2lAvQAK1lV1ZiU7psJ6fh1CI39uZyWdAktZzWLf0zQIDAQAB"];
+        },
+        {
+          name = "_dmarc.rspamd.tk",
+          type = "txt";
+          replies = ["bio=a263adeab8acdcdb8b89e127b67d696061fdfbee"];
+        },
+        {
+          name = "fail2.org.org.za",
+          type = "txt";
+          replies = ["v=spf1 ip4:8.8.4.4 include:www.dnssec-failed.org -all"];
+        },
+        {
+          name = "fail3.org.org.za",
+          type = "txt";
+          replies = ["v=spf1 ip4:8.8.8.8 include:total.barf -all"];
+        },
+        {
+          name = "mom.za.org",
+          type = "txt";
+          replies = ["v=spf1 ip4:37.48.67.26 -all"];
+        },
+        {
+          name = "testdkim._domainkey.asdf.rspamd.tk", # testdkim._domainkey.asdf.rspamd.tk is an alias for rspamd.tk
+          type = "txt";
+          replies = ["bio=a263adeab8acdcdb8b89e127b67d696061fdfbee"];
+        },
+        {
+          name = "testdkim._domainkey.rspamd.tk", # testdkim._domainkey.rspamd.tk is an alias for rspamd.tk
+          type = "txt";
+          replies = ["bio=a263adeab8acdcdb8b89e127b67d696061fdfbee"];
+        },
+        {
+          name = "pass1.org.org.za",
+          type = "txt";
+          replies = ["v=spf1 include:pass2.org.org.za -all"];
+        },
+        {
+          name = "95.142.99.88.in-addr.arpa",
+          type = "ptr";
+          replies = ["mail.highsecure.ru"];
+        },
+        {
+          name = "mail.highsecure.ru",
+          type = "a";
+          replies = ["88.99.142.95"];
+        },
+        {
+          name = "mail.highsecure.ru",
+          type = "aaaa";
+          rcode = 'norec';
+        },
+        {
+          name = "1.0.66.128.in-addr.arpa",
+          type = "ptr";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "182.216.85.209.in-addr.arpa",
+          type = "ptr";
+          replies = ["mail-qt0-f182.google.com"];
+        },
+        {
+          name = "crazyspf.cacophony.za.org",
+          type = "txt";
+          replies = ["v=spf1 ptr:cacophony.za.org ptr:rspamd.com ptr:yahoo.com ptr:yahoo.net ptr:highsecure.ru -all"];
+        },
+        {
+          name = "pass2.org.org.za",
+          type = "txt";
+          replies = ["v=spf1 ip4:8.8.8.8 -all"];
+        },
+        {
+          name = "_dmarc.yoni.za.org",
+          type = "txt";
+          replies = ["v=DMARC1; p=reject; sp=none;"];
+        },
+        {
+          name = "fail10.org.org.za",
+          type = "txt";
+          replies = ["v=spf1 redirect=fail5.org.org.za"];
+        },
+        {
+          name = "fail11.org.org.za",
+          type = "txt";
+          replies = ["v=sPF1 ip4:8.8.8.8 -all"];
+        },
+        {
+          name = "fail5.org.org.za",
+          type = "txt";
+          replies = ["v=spf1 OMGBARF"];
+        },
+        {
+          name = "fail7.org.org.za",
+          type = "txt";
+          replies = ["v=spf1 ip4:8.8.8.8 a -all"];
+        },
+        {
+          name = "trusted.com",
+          type = "txt";
+          replies = ["v=spf1 ip4:192.168.1.1"];
+        },
+        {
+          name = "external.com",
+          type = "txt";
+          replies = ["v=spf1 ip4:37.48.67.26"];
+        },
+        {
+          name = "co.za",
+          type = "txt";
+          rcode = 'norec';
+        },
+        {
+          name = "testdkim1._domainkey.yoni.za.org",
+          type = "txt";
+          replies = ["v=DKIM1; k=rsa; p=BARF"];
+        },
+        {
+          name = "_dmarc.yoni.za.net",
+          type = "txt";
+          replies = ["v=DMARC1; p=none; sp=quarantine"];
+        },
+        {
+          name = "za",
+          type = "txt";
+          replies = ["Top-level domain for South Africa"];
+        },
+        {
+          name = "_dmarc.foo.yoni.za.org",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "_dmarc.foo.cacophony.za.org",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "_dmarc.foo.yoni.za.net",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "_dmarc.dnssec-failed.org",
+          type = "txt";
+          rcode = 'timeout';
+        },
+        {
+          name = "_dmarc.example.com",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "_dmarc.zero_pct.com",
+          type = "txt";
+          replies = ["v=DMARC1; p=reject; sp=quarantine; pct=0"];
+        },
+        {
+          name = "example.com",
+          type = "txt";
+          replies = ["$Id: example.com 4415 2015-08-24 20:12:23Z davids $", "v=spf1 -all"];
+        },
+        {
+          name = "example.com",
+          type = "a";
+          replies = ["93.184.216.34"];
+        },
+        {
+          name = "testdkim1._domainkey.dnssec-failed.org",
+          type = "txt";
+          rcode = 'timeout';
+        },
+        {
+          name = "total.barf",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "_dmarc.foo.cacophony.za.org",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "zzzzaaaa",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "asdfsfewewrredfs",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "95.142.99.88.asn.rspamd.com",
+          type = "txt";
+          replies = ["24940|88.99.0.0/16|DE|ripencc|"];
+        },
+        {
+          name = "2.a.d.1.1.d.e.f.f.f.0.0.4.5.0.5.d.6.2.0.6.b.a.a.8.c.7.0.1.0.a.2.asn6.rspamd.com",
+          type = "txt";
+          replies = ["20857|2a01:7c8::/32|NL|ripencc|"];
+        },
+        {
+          name = "2.a.d.1.1.d.e.f.f.f.0.0.4.5.0.5.d.6.2.0.6.b.a.a.8.c.7.0.1.0.a.2.rspamd.com",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "2.a.d.1.1.d.e.f.f.f.0.0.4.5.0.5.d.6.2.0.6.b.a.a.8.c.7.0.1.0.a.2.rspamd.com",
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "rspamd.com",
+          type = "txt";
+          replies = ["v=spf1 mx -all"];
+        },
+        {
+          name = "rspamd.com",
+          type = "mx";
+          replies = ["10 mail.highsecure.ru"];
+        },
+        {
+          name = "95.142.99.88.rspamd.com",
+          type = "a";
+          rcode = 'norec';
+        },
+        {
+          name = "95.142.99.88.rspamd.com",
+          type = "aaaa";
+          rcode = 'norec';
+        },
+        {
+          name = "2.0.0.127.rspamd.com",
+          type = "a";
+          replies = ["127.0.0.1"];
+        },
+        {
+          name = "8.8.8.8.asn.rspamd.com",
+          type = "txt";
+          replies = ["15169|8.8.8.0/24|US|arin|"];
+        },
+        {
+          name = "8.8.8.8.asn.rspamd.com",
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "10.0.1.10.asn.rspamd.com",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "10.0.1.10.asn.rspamd.com",
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "10.0.1.11.asn.rspamd.com",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "10.0.1.11.asn.rspamd.com",
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.rspamd.com",
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.rspamd.com",
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "test.com",
+          type = "txt";
+          replies = [""];
+        },
+        {
+          name = "other.com",
+          type = "txt";
+          rcode = 'norec';
+        },
+        {
+          name = "bob",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "mail.highsecure.ru",
+          type = "aaaa";
+          rcode = 'norec';
+        },
+        {
+          name = "mail.highsecure.ru",
+          type = "a";
+          replies = ["88.99.142.95"];
+        },
+        {
+          name = "4.3.2.1.rspamd.com",
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "4.3.2.1.asn.rspamd.com",
+          type = "txt";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "1.0.0.127.rspamd.com",
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "114.47.228.46.rspamd.com",
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "114.47.228.46.asn.rspamd.com",
+          type = "txt";
+          replies = ["34010|46.228.40.0/21|GB|ripencc|"];
+        },
+        {
+          name = "10.0.1.10.rspamd.com",
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "10.0.1.11.rspamd.com",
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "other.org",
+          type = "txt";
+          rcode = 'norec';
+        },
+        {
+          name = "8.8.8.8.rspamd.com",
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "rspamd.tk",
+          type = "txt";
+          replies = ["bio=a263adeab8acdcdb8b89e127b67d696061fdfbee"];
+        },
+        {
+          name = "fail1.org.org.za",
+          type = "txt";
+          replies = ["v=spf1 redirect=www.dnssec-failed.org"];
+        },
+        {
+          name = "www.dnssec-failed.org",
+          type = "txt";
+          rcode = 'timeout';
+        },
+        {
+          name = "www.dnssec-failed.org",
+          type = "mx";
+          rcode = 'timeout';
+        },
+        {
+          name = "www.dnssec-failed.org",
+          type = "a";
+          rcode = 'timeout';
+        },
+        {
+          name = "www.dnssec-failed.org",
+          type = "aaaa";
+          rcode = 'norec';
+        },
+        {
+          name = "cacophony.za.org",
+          type = "txt";
+          replies = ["v=spf1 redirect=asdfsfewewrredfs"];
+        },
+        {
+          name = "fail9.org.org.za",
+          type = "txt";
+          replies = ["v=spf1 ip4:8.8.8.8 mx:www.dnssec-failed.org -all"];
+        },
+        {
+          name = "fail8.org.org.za",
+          type = "txt";
+          replies = ["v=spf1 ip4:8.8.8.8 a:www.dnssec-failed.org -all"];
+        },
+        {
+          name = "1.2.3.4.fake.rbl";
+          type = "a";
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "2.2.3.4.fake.rbl";
+          type = "a";
+          replies = ["127.0.0.10"];
+        },
+        {
+          name = "3.2.3.4.fake.rbl";
+          type = "a";
+          replies = ["127.0.0.2", "127.0.0.3"];
+        },
+        {
+          name = "4.2.3.4.fake.rbl";
+          type = "a";
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "4.2.3.4.fake.wl";
+          type = "a";
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "4.3.2.1.fake.rbl";
+          type = "a";
+          rcode = 'nxdomain';
+        },
+        {
+          name = "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.fake.rbl";
+          type = "a";
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "131.193.18.151.fake.rbl";
+          type = "a";
+          replies = ["127.0.0.3"];
+        },
+        # SURBL tests
+        {
+          name = "rciuosbadgpq6b5wt436nhgnwzmfh9w9.test.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          # testtest.com
+          name = "rcf1ecxtxrrpfncqzsdaiezjkf7f1rzz.test.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "jhcszdsmo3wuj5mp8t38kdisdmr3ib3q.test.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "g9ifs3q39oh5jwru94cj7ffaqd6rfyq6.test.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "xn--80arbjktj.xn--p1ai.test2.uribl";
+          type = a;
+          replies = ["127.0.1.2"];
+        },
+        {
+          name = "мойсайт.рф.test2.uribl";
+          type = a;
+          replies = ["127.0.1.2"];
+        },
+        {
+          name = "user.emailbl.com.test5.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "user.subdomain.emailbl.com.test5.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "baddomain.com.test6.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "user.subdomain.baddomain.com.test5.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "example.com.test2.uribl";
+          type = a;
+          replies = ["127.0.1.2"];
+        },
+        {
+          name = "user.example.com.test2.uribl";
+          type = a;
+          replies = ["127.0.1.5"];
+        },
+        {
+          name = "example.net.test2.uribl";
+          type = a;
+          replies = ["127.0.1.4"];
+        },
+        {
+          name = "rspamd.tk.test2.uribl";
+          type = a;
+          replies = ["127.0.1.4"];
+        },
+        {
+          name = "example.org.test3.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "example.ru.test3.uribl";
+          type = a;
+          replies = ["127.0.0.12"];
+        },
+        {
+          name = "example.ru";
+          type = a;
+          replies = ["8.8.8.8", "8.8.8.9"];
+        },
+        {
+          name = "8.8.8.8.test4.uribl";
+          type = a;
+          replies = ["127.0.0.4", "127.0.0.11"];
+        },
+        {
+          name = "uppht14nj4fsoycu3huctg9d5psx9je4.test.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "rspamd-test.com.test2.uribl";
+          type = a;
+          replies = ["127.0.1.2"];
+        },
+        {
+          name = "9.8.8.8.test4.uribl";
+          type = a;
+          replies = ["127.0.0.3"];
+        },
+        {
+          name = "4.very.dirty.sanchez.com.test7.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "clean.dirty.sanchez.com.test7.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "not.dirty.sanchez.com.test7.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "41.black.sanchez.com.test7.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "black.sanchez.com.test7.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "dirty.sanchez.com.test8.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "very.dirty.sanchez.com.test8.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "41.black.sanchez.com.test8.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "black.sanchez.com.test8.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "example.com.test9.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "example.org.test9.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "8.8.8.8.test9.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "site.resolveme",
+          type = "a";
+          replies = ["127.0.0.1"];
+        },
+        {
+          name = "not-resolvable.com",
+          type = "a";
+          rcode = 'norec';
+        },
+        # TODO: add IPv6 tests
+        ];
+  }
+}
+
+phishing {
+  symbol = "PHISHING";
+  strict_domains = {
+    STRICT_PHISHING = [
+      "{= env.TESTDIR =}/configs/maps/strict.phishing",
+    ];
+    STRICTER_PHISHING = [
+      "{= env.TESTDIR =}/configs/maps/stricter.phishing"
+    ]
+  }
+}
+
+redis {
+  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
+  expand_keys = true;
+}
+
+regexp {
+  CONFIG_SELECTOR_RE_RCPT_SUBJECT {
+    re =  'test=/test@user.com some subject/$',
+    score = 100500,
+  }
+}
+
+spf {
+  external_relay = [
+        "{= env.TESTDIR =}/configs/maps/external_relay_ip.list",
+  ];
+}
+
+symbols {
+  FOUR_POINTS = {
+    score = 4.0,
+  }
+  SYM1 = {
+    score = 1.0,
+  }
+}
+
+worker "controller" {
+    bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}";
+    keypair {
+        pubkey = "{= env.KEY_PUB1 =}";
+        privkey = "{= env.KEY_PVT1 =}";
+    }
+}
+
+worker "normal" {
+    bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}";
+    keypair {
+        pubkey = "{= env.KEY_PUB1 =}";
+        privkey = "{= env.KEY_PVT1 =}";
+    }
+}
similarity index 50%
rename from test/functional/configs/multimap.conf
rename to test/functional/configs/merged-override.conf
index c59c1ac57e9576e23f0d2a19769e61ab7d7d3676..ab0779fdfdb7717ee695d01e91818c7a7662a01c 100644 (file)
@@ -1,12 +1,42 @@
-.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
-
-asn {
-}
-spf {}
-redis {
-  servers = "{= env.REDIS_ADDR =}:{= env.REDIS_PORT =}";
-  expand_keys = true;
+antivirus {
+ clam {
+    attachments_only = false;
+    symbol = "CLAM_VIRUS";
+    type = "clamav";
+    servers = "127.0.0.1:{= env.PORT_CLAM =}";
+  }
+  fprot {
+    attachments_only = false;
+    symbol = "FPROT_VIRUS";
+    type = "fprot";
+    servers = "127.0.0.1:{= env.PORT_FPROT =}";
+    patterns {
+      FPROT_EICAR = "^EICAR_Test_File$";
+    }
+  }
+  fprot_duplicate {
+    prefix = "fp_dupe";
+    attachments_only = false;
+    symbol = "FPROT2_VIRUS_DUPLICATE_DEFAULT";
+    type = "fprot";
+    servers = "127.0.0.1:{= env.PORT_FPROT2_DUPLICATE =}";
+    patterns = [
+      {FPROT2_VIRUS_DUPLICATE_PATTERN = "^E"},
+      {FPROT2_VIRUS_DUPLICATE_NOPE1 = "^EI",
+      FPROT2_VIRUS_DUPLICATE_NOPE2 = "^EIC",
+      FPROT2_VIRUS_DUPLICATE_NOPE3 = "^EICA",
+      FPROT2_VIRUS_DUPLICATE_NOPE4 = "^EICAR",
+      FPROT2_VIRUS_DUPLICATE_NOPE5 = "^EICAR_"}
+    ];
+  }
+  avast {
+      attachments_only = false;
+      symbol = "AVAST_VIRUS";
+      type = "avast";
+      servers = "127.0.0.1:{= env.PORT_AVAST =}";
+  }
 }
+
 multimap {
   DNSBL_MAP {
     type = "dnsbl";
@@ -209,8 +239,153 @@ multimap {
   }
 }
 
-symbols {
-  SYM1 = {
-    score = 1.0,
+rbl {
+  rbls {
+    fake {
+      from = true;
+      ipv4 = true;
+      ipv6 = true;
+      rbl = "fake.rbl";
+      symbol = "FAKE_RBL_UNKNOWN";
+      received = true;
+      symbols_prefixes = {
+        received = 'FAKE_RECEIVED_RBL',
+        from = 'FAKE_RBL',
+      }
+      unknown = true;
+      returncodes = {
+        "CODE_2" = "127.0.0.2";
+        "CODE_3" = "127.0.0.3";
+      }
+    }
+    fake_whitelist {
+      from = true;
+      ipv4 = true;
+      ipv6 = true;
+      received = true;
+      is_whitelist = true;
+      rbl = "fake.wl";
+      symbol = "FAKE_WL_RBL_UNKNOWN";
+      unknown = true;
+      returncodes = {
+        "FAKE_WL_RBL_CODE_2" = "127.0.0.2";
+        "FAKE_WL_RBL_CODE_3" = "127.0.0.3";
+      }
+    }
+    RSPAMD_EMAILBL {
+      rbl = "test8.uribl";
+      url_compose_map = "{= env.TESTDIR =}/configs/maps/url_compose_map_for_mails.list";
+      ignore_defaults = true;
+      emails = true;
+      emails_domainonly = true
+      returncodes = {
+        RSPAMD_EMAILBL = "127.0.0.2";
+      }
+    }
+    URIBL_NOCONTENT {
+      rbl = "test9.uribl";
+      ignore_defaults = true;
+      urls = true;
+    }
+    URIBL_WITHCONTENT {
+      rbl = "test9.uribl";
+      ignore_defaults = true;
+      urls = true;
+      content_urls = true;
+    }
+    URIBL_CONTENTONLY {
+      rbl = "test9.uribl";
+      ignore_defaults = true;
+      content_urls = true;
+      no_ip = true;
+    }
+    RBL_SELECTOR_SINGLE {
+      rbl = "test9.uribl";
+      ignore_defaults = true;
+      selector = "helo()";
+    }
+    RBL_SELECTOR_MULTIPLE {
+      rbl = "test9.uribl";
+      ignore_defaults = true;
+      selector = {
+        sel_from = "from('smtp'):domain";
+        sel_helo = "helo()";
+      }
+    }
+  }
+}
+
+surbl {
+    "whitelist" = [
+    "rspamd-test.com"
+  ];
+  rules {
+    "RSPAMD_URIBL" {
+      suffix = "test.uribl";
+      check_dkim = true;
+      check_emails = true;
+      images = false;
+      process_script =<<EOD
+function(url, suffix)
+  local cr = require "rspamd_cryptobox_hash"
+  local h = cr.create(url):base32():sub(1, 32)
+  return string.format("%s.%s", h, suffix)
+end
+EOD;
+    }
+    "DBL" {
+      suffix = "test2.uribl";
+      no_ip = true;
+      check_emails = true;
+      check_dkim = true;
+      ips = {
+        # spam domain
+        DBL_SPAM = "127.0.1.2";
+        # phish domain
+        DBL_PHISH = "127.0.1.4";
+      }
+    }
+    "URIBL_MULTI" {
+      suffix = "test3.uribl";
+      check_dkim = true;
+      check_emails = true;
+      bits {
+        URIBL_BLOCKED = 1;
+        URIBL_BLACK = 2;
+        URIBL_GREY = 4;
+        URIBL_RED = 8;
+      }
+    }
+    "SPAMHAUS_ZEN_URIBL" {
+      suffix = "test4.uribl";
+      resolve_ip = true;
+      check_emails = true;
+      ips {
+        URIBL_SBL = "127.0.0.2";
+        URIBL_SBL_CSS = "127.0.0.3";
+        URIBL_XBL = ["127.0.0.4", "127.0.0.5", "127.0.0.6", "127.0.0.7"];
+        URIBL_PBL = ["127.0.0.10", "127.0.0.11"];
+        URIBL_DROP = "127.0.0.9";
+      }
+    }
+    "RSPAMD_URIBL_IMAGES" {
+      suffix = "test.uribl";
+      check_dkim = true;
+      check_emails = false;
+      images = true;
+      process_script =<<EOD
+  function(url, suffix)
+    local cr = require "rspamd_cryptobox_hash"
+    local h = cr.create(url):base32():sub(1, 32)
+    return string.format("%s.%s", h, suffix)
+end
+EOD;
+    }
+    "BAD_SUBDOMAIN" {
+      suffix = "test7.uribl";
+      url_compose_map = "{= env.TESTDIR =}/configs/maps/url_compose_map.list";
+      check_dkim = true;
+      check_emails = false;
+    }
   }
 }
diff --git a/test/functional/configs/merged.conf b/test/functional/configs/merged.conf
new file mode 100644 (file)
index 0000000..132461d
--- /dev/null
@@ -0,0 +1,41 @@
+.include "{= env.INSTALLROOT =}/etc/rspamd/rspamd.conf"
+
+lua = "{= env.TESTDIR =}/lua/test_coverage.lua"
+
+# 101_lua
+lua = "{= env.TESTDIR =}/lua/conditions.lua"
+lua = "{= env.TESTDIR =}/lua/hashes.lua"
+lua = "{= env.TESTDIR =}/lua/maps_kv.lua"
+lua = "{= env.TESTDIR =}/lua/option_order.lua"
+lua = "{= env.TESTDIR =}/lua/recipients.lua"
+lua = "{= env.TESTDIR =}/lua/tlds.lua"
+
+# 104_get_from
+lua = "{= env.TESTDIR =}/lua/get_from.lua"
+
+# 220_http
+lua = "{= env.TESTDIR =}/lua/http.lua"
+
+# 230_tcp / 231_tcp_down
+lua = "{= env.TESTDIR =}/lua/tcp.lua"
+
+# 240_redis
+lua = "{= env.TESTDIR =}/lua/redis.lua"
+
+# 250_dns
+lua = "{= env.TESTDIR =}/lua/dns.lua"
+
+# 270_selector
+lua = "{= env.TESTDIR =}/lua/selector_test.lua"
+
+# 281_fnames
+lua = "{= env.TESTDIR =}/lua/test_fname.lua"
+
+# 310_udp
+lua = "{= env.TESTDIR =}/lua/udp.lua"
+
+# 350_magic
+lua = "{= env.TESTDIR =}/lua/magic.lua"
+
+.include(priority=1,duplicate=merge) "{= env.TESTDIR =}/configs/merged-local.conf"
+.include(priority=2,duplicate=replace) "{= env.TESTDIR =}/configs/merged-override.conf"
diff --git a/test/functional/configs/mid.conf b/test/functional/configs/mid.conf
deleted file mode 100644 (file)
index ce02429..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
-
-mid = {
-    source = {
-        url = [
-            "https://maps.rspamd.com/rspamd/mid.inc.zst",
-            "fallback+file://{= env.TESTDIR =}/../../../conf/mid.inc",
-            "file://{= env.TESTDIR =}/configs/maps/mid.list"
-        ];
-    }
-}
diff --git a/test/functional/configs/mime_types.conf b/test/functional/configs/mime_types.conf
deleted file mode 100644 (file)
index 82bd418..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
-
-mime_types {
-    file = [
-      "https://maps.rspamd.com/rspamd/mime_types.inc.zst",
-      "fallback+file://{= env.TESTDIR =}/../../../conf/mime_types.inc"
-     ];
-    extension_map {
-        html = "text/html";
-        txt [
-            "message/disposition-notification",
-            "text/plain",
-            "text/rfc822-headers",
-        ]
-        pdf [
-            "application/octet-stream",
-            "application/pdf",
-        ]
-    }
-    filename_whitelist = "{= env.TESTDIR =}/configs/maps/mime_types.wl";
-}
diff --git a/test/functional/configs/phishing.conf b/test/functional/configs/phishing.conf
deleted file mode 100644 (file)
index aa6eb8f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
-
-phishing {
-  symbol = "PHISHING";
-  strict_domains = {
-    STRICT_PHISHING = [
-      "{= env.TESTDIR =}/configs/maps/strict.phishing",
-    ];
-    STRICTER_PHISHING = [
-      "{= env.TESTDIR =}/configs/maps/stricter.phishing"
-    ]
-  }
-}
diff --git a/test/functional/configs/rbl.conf b/test/functional/configs/rbl.conf
deleted file mode 100644 (file)
index c5caa2e..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
-
-rbl {
-  rbls {
-    fake {
-      from = true;
-      ipv4 = true;
-      ipv6 = true;
-      rbl = "fake.rbl";
-      symbol = "FAKE_RBL_UNKNOWN";
-      received = true;
-      symbols_prefixes = {
-        received = 'FAKE_RECEIVED_RBL',
-        from = 'FAKE_RBL',
-      }
-      unknown = true;
-      returncodes = {
-        "CODE_2" = "127.0.0.2";
-        "CODE_3" = "127.0.0.3";
-      }
-    }
-    fake_whitelist {
-      from = true;
-      ipv4 = true;
-      ipv6 = true;
-      received = true;
-      is_whitelist = true;
-      rbl = "fake.wl";
-      symbol = "FAKE_WL_RBL_UNKNOWN";
-      unknown = true;
-      returncodes = {
-        "FAKE_WL_RBL_CODE_2" = "127.0.0.2";
-        "FAKE_WL_RBL_CODE_3" = "127.0.0.3";
-      }
-    }
-    RSPAMD_EMAILBL {
-      rbl = "test8.uribl";
-      url_compose_map = "{= env.TESTDIR =}/configs/maps/url_compose_map_for_mails.list";
-      ignore_defaults = true;
-      emails = true;
-      emails_domainonly = true
-      returncodes = {
-        RSPAMD_EMAILBL = "127.0.0.2";
-      }
-    }
-    URIBL_NOCONTENT {
-      rbl = "test9.uribl";
-      ignore_defaults = true;
-      urls = true;
-    }
-    URIBL_WITHCONTENT {
-      rbl = "test9.uribl";
-      ignore_defaults = true;
-      urls = true;
-      content_urls = true;
-    }
-    URIBL_CONTENTONLY {
-      rbl = "test9.uribl";
-      ignore_defaults = true;
-      content_urls = true;
-      no_ip = true;
-    }
-    RBL_SELECTOR_SINGLE {
-      rbl = "test9.uribl";
-      ignore_defaults = true;
-      selector = "helo()";
-    }
-    RBL_SELECTOR_MULTIPLE {
-      rbl = "test9.uribl";
-      ignore_defaults = true;
-      selector = {
-        sel_from = "from('smtp'):domain";
-        sel_helo = "helo()";
-      }
-    }
-  }
-}
diff --git a/test/functional/configs/selector.conf b/test/functional/configs/selector.conf
deleted file mode 100644 (file)
index b99ae56..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
-
-regexp {
-  CONFIG_SELECTOR_RE_RCPT_SUBJECT {
-    re =  'test=/test@user.com some subject/$',
-    score = 100500,
-  }
-}
-
-lua = "{= env.TESTDIR =}/lua/selector_test.lua"
diff --git a/test/functional/configs/surbl.conf b/test/functional/configs/surbl.conf
deleted file mode 100644 (file)
index fe63682..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf"
-
-surbl {
-    "whitelist" = [
-    "rspamd-test.com"
-  ];
-  rules {
-    "RSPAMD_URIBL" {
-      suffix = "test.uribl";
-      check_dkim = true;
-      check_emails = true;
-      images = false;
-      process_script =<<EOD
-function(url, suffix)
-  local cr = require "rspamd_cryptobox_hash"
-  local h = cr.create(url):base32():sub(1, 32)
-  return string.format("%s.%s", h, suffix)
-end
-EOD;
-    }
-    "DBL" {
-      suffix = "test2.uribl";
-      no_ip = true;
-      check_emails = true;
-      check_dkim = true;
-      ips = {
-        # spam domain
-        DBL_SPAM = "127.0.1.2";
-        # phish domain
-        DBL_PHISH = "127.0.1.4";
-      }
-    }
-    "URIBL_MULTI" {
-      suffix = "test3.uribl";
-      check_dkim = true;
-      check_emails = true;
-      bits {
-        URIBL_BLOCKED = 1;
-        URIBL_BLACK = 2;
-        URIBL_GREY = 4;
-        URIBL_RED = 8;
-      }
-    }
-    "SPAMHAUS_ZEN_URIBL" {
-      suffix = "test4.uribl";
-      resolve_ip = true;
-      check_emails = true;
-      ips {
-        URIBL_SBL = "127.0.0.2";
-        URIBL_SBL_CSS = "127.0.0.3";
-        URIBL_XBL = ["127.0.0.4", "127.0.0.5", "127.0.0.6", "127.0.0.7"];
-        URIBL_PBL = ["127.0.0.10", "127.0.0.11"];
-        URIBL_DROP = "127.0.0.9";
-      }
-    }
-    "RSPAMD_URIBL_IMAGES" {
-      suffix = "test.uribl";
-      check_dkim = true;
-      check_emails = false;
-      images = true;
-      process_script =<<EOD
-  function(url, suffix)
-    local cr = require "rspamd_cryptobox_hash"
-    local h = cr.create(url):base32():sub(1, 32)
-    return string.format("%s.%s", h, suffix)
-end
-EOD;
-    }
-    "BAD_SUBDOMAIN" {
-      suffix = "test7.uribl";
-      url_compose_map = "{= env.TESTDIR =}/configs/maps/url_compose_map.list";
-      check_dkim = true;
-      check_emails = false;
-    }
-  }
-}
-
-emails {
-  "whitelist" = [
-    "rspamd-test.com"
-  ]
-  rules {
-    "RSPAMD_EMAILBL_FULL" {
-        dnsbl = "test5.uribl";
-        replyto = true;
-        }
-      "RSPAMD_EMAILBL_DOMAINONLY" {
-        dnsbl = "test6.uribl";
-        domain_only = true;
-        replyto = true;
-      }
-  }
-}
index 865245e6272d672cbad11d3dd0cec8083e344451..e5132e3a72fe22bcf40d4dbb3fe2e0628084ea82 100644 (file)
@@ -242,6 +242,11 @@ Run Rspamd
   # We need to send output to files (or discard output) to avoid hanging Robot
   ...  stdout=${RSPAMD_TMPDIR}/rspamd.stdout  stderr=${RSPAMD_TMPDIR}/rspamd.stderr
 
+  # Log stdout/stderr
+  ${rspamd_output} =  Run Keyword If  ${result.rc} == 0  Get File  ${RSPAMD_TMPDIR}/rspamd.stdout
+  ...  ELSE  Get File  ${RSPAMD_TMPDIR}/rspamd.stderr
+  Log  ${rspamd_output}
+
   # Abort if it failed
   Should Be Equal As Integers  ${result.rc}  0
 
index 4e3267b41f040c7f54a3066eefcce2fcc35f8fd1..9282866dac7e818f042d21d025a42204b9bbb024 100644 (file)
@@ -1,8 +1,10 @@
 rspamd_config:register_symbol({
-  name = 'SIMPLE_TEST',
+  name = 'GET_FROM',
   score = 1.0,
   callback = function(task)
-    local a = task:get_from('mime')[1]
-    task:insert_result('GET_FROM', 0.0, a.name .. ',' .. a.addr .. ',' .. a.user .. ',' .. a.domain)
+    local a = task:get_from('mime')
+    if not a then return end
+    a = a[1]
+    return true, (a.name or '') .. ',' .. (a.addr or '') .. ',' .. (a.user or '') .. ',' .. (a.domain or '')
   end
 })
index d0ed4e7b7f661a1edd8a01d9e55e9043cf61a44b..c5b91ff3db026a9d1680552cf2cebb574384865b 100644 (file)
@@ -106,7 +106,7 @@ local function periodic(cfg, ev_base)
 end
 
 rspamd_config:register_symbol({
-  name = 'SIMPLE_TEST',
+  name = 'SIMPLE_HTTP_TEST',
   score = 1.0,
   callback = http_symbol,
   no_squeeze = true,
@@ -145,7 +145,7 @@ local function http_large_symbol(task)
   end
 end
 rspamd_config:register_symbol({
-  name = 'LARGE_TEST',
+  name = 'LARGE_HTTP_TEST',
   score = 1.0,
   callback = http_large_symbol,
   no_squeeze = true,
@@ -166,4 +166,4 @@ rspamd_config:add_on_load(function(cfg, ev_base, worker)
   end
 
   rspamd_config:add_periodic(ev_base, 0, periodic, false)
-end)
\ No newline at end of file
+end)
index b63b32c34642314e0dbe86af5f5af02c1fc622ef..a62d25ddd67efc3ff40c984380ca56626256111f 100644 (file)
@@ -2,17 +2,17 @@ local rspamd_ip = require 'rspamd_ip'
 local rspamd_logger = require 'rspamd_logger'
 
 local radix_map = rspamd_config:add_map ({
-  url = '${RADIX_MAP}',
+  url = rspamd_env.RADIX_MAP,
   type = 'radix',
 })
 
 local map_map = rspamd_config:add_map ({
-  url = '${MAP_MAP}',
+  url = rspamd_env.MAP_MAP,
   type = 'map',
 })
 
 local regexp_map = rspamd_config:add_map ({
-  url = '${REGEXP_MAP}',
+  url = rspamd_env.REGEXP_MAP,
   type = 'regexp',
 })