summaryrefslogtreecommitdiffstats
path: root/test/functional/cases/120_fuzzy
diff options
context:
space:
mode:
authorAndrew Lewis <nerf@judo.za.org>2016-08-14 17:28:46 +0200
committerAndrew Lewis <nerf@judo.za.org>2016-08-14 17:40:45 +0200
commit478a75e719c8c8bf2333465a34ccf3991746d141 (patch)
treed829a38503ad1a8433ee3b1ad9928043953a2c16 /test/functional/cases/120_fuzzy
parent34f661ef9808fd63b94ade8d57091a1c4f30a7e1 (diff)
downloadrspamd-478a75e719c8c8bf2333465a34ccf3991746d141.tar.gz
rspamd-478a75e719c8c8bf2333465a34ccf3991746d141.zip
[Test] Rework fuzzy tests
- Add fuzzy & negative match tests - Check attachment & text samples - Add suites for different algorithms; keyed/unkeyed - Move overwrite/delete tests into general suite
Diffstat (limited to 'test/functional/cases/120_fuzzy')
-rw-r--r--test/functional/cases/120_fuzzy/encrypted.robot18
-rw-r--r--test/functional/cases/120_fuzzy/fasthash-keyed.robot14
-rw-r--r--test/functional/cases/120_fuzzy/fasthash.robot14
-rw-r--r--test/functional/cases/120_fuzzy/general.robot14
-rw-r--r--test/functional/cases/120_fuzzy/lib.robot117
-rw-r--r--test/functional/cases/120_fuzzy/mumhash-keyed.robot14
-rw-r--r--test/functional/cases/120_fuzzy/mumhash.robot14
-rw-r--r--test/functional/cases/120_fuzzy/plain.robot18
-rw-r--r--test/functional/cases/120_fuzzy/siphash-keyed.robot14
-rw-r--r--test/functional/cases/120_fuzzy/siphash.robot14
-rw-r--r--test/functional/cases/120_fuzzy/xxhash-keyed.robot14
-rw-r--r--test/functional/cases/120_fuzzy/xxhash.robot14
12 files changed, 239 insertions, 40 deletions
diff --git a/test/functional/cases/120_fuzzy/encrypted.robot b/test/functional/cases/120_fuzzy/encrypted.robot
index 45408d7f8..21fd87908 100644
--- a/test/functional/cases/120_fuzzy/encrypted.robot
+++ b/test/functional/cases/120_fuzzy/encrypted.robot
@@ -1,20 +1,14 @@
*** Settings ***
-Suite Setup Encrypted Fuzzy Setup
+Suite Setup Fuzzy Setup Encrypted Siphash
Suite Teardown Generic Teardown
Resource lib.robot
*** Test Cases ***
Fuzzy Add
- Fuzzy Add Test
+ Fuzzy Multimessage Add Test
-Fuzzy Delete
- Fuzzy Delete Test
+Fuzzy Fuzzy
+ Fuzzy Multimessage Fuzzy Test
-Fuzzy Overwrite
- Fuzzy Overwrite Test
-
-*** Keywords ***
-Encrypted Fuzzy Setup
- Set Suite Variable ${SETTINGS_FUZZY_WORKER} "keypair": {"pubkey": "${KEY_PUB1}", "privkey": "${KEY_PVT1}"}; "encrypted_only": true;
- Set Suite Variable ${SETTINGS_FUZZY_CHECK} encryption_key = "${KEY_PUB1}";
- Generic Setup
+Fuzzy Miss
+ Fuzzy Multimessage Miss Test
diff --git a/test/functional/cases/120_fuzzy/fasthash-keyed.robot b/test/functional/cases/120_fuzzy/fasthash-keyed.robot
new file mode 100644
index 000000000..d135eaca0
--- /dev/null
+++ b/test/functional/cases/120_fuzzy/fasthash-keyed.robot
@@ -0,0 +1,14 @@
+*** Settings ***
+Suite Setup Fuzzy Setup Keyed Fasthash
+Suite Teardown Generic Teardown
+Resource lib.robot
+
+*** Test Cases ***
+Fuzzy Add
+ Fuzzy Multimessage Add Test
+
+Fuzzy Fuzzy
+ Fuzzy Multimessage Fuzzy Test
+
+Fuzzy Miss
+ Fuzzy Multimessage Miss Test
diff --git a/test/functional/cases/120_fuzzy/fasthash.robot b/test/functional/cases/120_fuzzy/fasthash.robot
new file mode 100644
index 000000000..75d596c73
--- /dev/null
+++ b/test/functional/cases/120_fuzzy/fasthash.robot
@@ -0,0 +1,14 @@
+*** Settings ***
+Suite Setup Fuzzy Setup Plain Fasthash
+Suite Teardown Generic Teardown
+Resource lib.robot
+
+*** Test Cases ***
+Fuzzy Add
+ Fuzzy Multimessage Add Test
+
+Fuzzy Fuzzy
+ Fuzzy Multimessage Fuzzy Test
+
+Fuzzy Miss
+ Fuzzy Multimessage Miss Test
diff --git a/test/functional/cases/120_fuzzy/general.robot b/test/functional/cases/120_fuzzy/general.robot
new file mode 100644
index 000000000..7d1b0171a
--- /dev/null
+++ b/test/functional/cases/120_fuzzy/general.robot
@@ -0,0 +1,14 @@
+*** Settings ***
+Suite Setup Fuzzy Setup Plain Siphash
+Suite Teardown Generic Teardown
+Resource lib.robot
+
+*** Test Cases ***
+Fuzzy Add
+ Fuzzy Multimessage Add Test
+
+Fuzzy Delete
+ Fuzzy Multimessage Delete Test
+
+Fuzzy Overwrite
+ Fuzzy Multimessage Overwrite Test
diff --git a/test/functional/cases/120_fuzzy/lib.robot b/test/functional/cases/120_fuzzy/lib.robot
index e5e9cbcb7..bde6e2dc5 100644
--- a/test/functional/cases/120_fuzzy/lib.robot
+++ b/test/functional/cases/120_fuzzy/lib.robot
@@ -1,48 +1,145 @@
*** Settings ***
+Library OperatingSystem
Library ${TESTDIR}/lib/rspamd.py
Resource ${TESTDIR}/lib/rspamd.robot
Variables ${TESTDIR}/lib/vars.py
*** Variables ***
+${ALGORITHM} ${EMPTY}
${CONFIG} ${TESTDIR}/configs/fuzzy.conf
${FLAG1_NUMBER} 50
${FLAG1_SYMBOL} R_TEST_FUZZY_DENIED
${FLAG2_NUMBER} 51
${FLAG2_SYMBOL} R_TEST_FUZZY_WHITE
-${MESSAGE} ${TESTDIR}/messages/bad_message.eml
+@{MESSAGES} ${TESTDIR}/messages/spam_message.eml ${TESTDIR}/messages/zip.eml
+@{RANDOM_MESSAGES} ${TESTDIR}/messages/bad_message.eml ${TESTDIR}/messages/zip-doublebad.eml
${RSPAMD_SCOPE} Suite
+${SETTINGS_FUZZY_WORKER} ${EMPTY}
+${SETTINGS_FUZZY_CHECK} ${EMPTY}
*** Keywords ***
Fuzzy Add Test
- Set Suite Variable ${RSPAMD_FUZZY_ADD} 0
+ [Arguments] ${message}
+ Set Suite Variable ${RSPAMD_FUZZY_ADD_${message}} 0
${result} = Run Rspamc -h ${LOCAL_ADDR}:${PORT_CONTROLLER} -w 10 -f
- ... ${FLAG1_NUMBER} fuzzy_add ${MESSAGE}
+ ... ${FLAG1_NUMBER} fuzzy_add ${message}
Check Rspamc ${result}
Sync Fuzzy Storage
- ${result} = Scan Message With Rspamc ${MESSAGE}
+ ${result} = Scan Message With Rspamc ${message}
Check Rspamc ${result} ${FLAG1_SYMBOL}
- Set Suite Variable ${RSPAMD_FUZZY_ADD} 1
+ Set Suite Variable ${RSPAMD_FUZZY_ADD_${message}} 1
Fuzzy Delete Test
- Run Keyword If ${RSPAMD_FUZZY_ADD} == 0 Fail "Fuzzy Add was not run"
+ [Arguments] ${message}
+ Run Keyword If ${RSPAMD_FUZZY_ADD_${message}} == 0 Fail "Fuzzy Add was not run"
${result} = Run Rspamc -h ${LOCAL_ADDR}:${PORT_CONTROLLER} -f ${FLAG1_NUMBER} fuzzy_del
- ... ${MESSAGE}
+ ... ${message}
Check Rspamc ${result}
Sync Fuzzy Storage
- ${result} = Scan Message With Rspamc ${MESSAGE}
+ ${result} = Scan Message With Rspamc ${message}
Follow Rspamd Log
Should Not Contain ${result.stdout} ${FLAG1_SYMBOL}
Should Be Equal As Integers ${result.rc} 0
+Fuzzy Fuzzy Test
+ [Arguments] ${message}
+ Run Keyword If ${RSPAMD_FUZZY_ADD_${message}} != 1 Fail "Fuzzy Add was not run"
+ @{path_info} = Path Splitter ${message}
+ @{fuzzy_files} = List Files In Directory @{pathinfo}[0] @{pathinfo][1].fuzzy* absolute=1
+ : FOR ${i} IN @{fuzzy_files}
+ \ ${result} = Scan Message With Rspamc ${i}
+ \ Check Rspamc ${result} ${FLAG1_SYMBOL}
+
+Fuzzy Miss Test
+ [Arguments] ${message}
+ ${result} = Scan Message With Rspamc ${message}
+ Check Rspamc ${result} ${FLAG1_SYMBOL} inverse=1
+
Fuzzy Overwrite Test
+ [Arguments] ${message}
${flag_numbers} = Create List ${FLAG1_NUMBER} ${FLAG2_NUMBER}
: FOR ${i} IN @{flag_numbers}
\ ${result} = Run Rspamc -h ${LOCAL_ADDR}:${PORT_CONTROLLER} -w 10
- \ ... -f ${i} fuzzy_add ${MESSAGE}
+ \ ... -f ${i} fuzzy_add ${message}
\ Check Rspamc ${result}
Sync Fuzzy Storage
- ${result} = Scan Message With Rspamc ${MESSAGE}
+ ${result} = Scan Message With Rspamc ${message}
Follow Rspamd Log
Should Not Contain ${result.stdout} ${FLAG1_SYMBOL}
Should Contain ${result.stdout} ${FLAG2_SYMBOL}
Should Be Equal As Integers ${result.rc} 0
+
+Fuzzy Setup Encrypted
+ [Arguments] ${algorithm}
+ ${worker_settings} = Set Variable "keypair": {"pubkey": "${KEY_PUB1}", "privkey": "${KEY_PVT1}"}; "encrypted_only": true;
+ ${check_settings} = Set Variable encryption_key = "${KEY_PUB1}";
+ Fuzzy Setup Generic ${algorithm} ${worker_settings} ${check_settings}
+
+Fuzzy Setup Encrypted Keyed
+ [Arguments] ${algorithm}
+ ${worker_settings} = Set Variable "keypair": {"pubkey": "${KEY_PUB1}", "privkey": "${KEY_PVT1}"}; "encrypted_only": true;
+ ${check_settings} = Set Variable fuzzy_key = "mYN888sydwLTfE32g2hN"; fuzzy_shingles_key = "hXUCgul9yYY3Zlk1QIT2"; encryption_key = "${KEY_PUB1}";
+ Fuzzy Setup Generic ${algorithm} ${worker_settings} ${check_settings}
+
+Fuzzy Setup Plain
+ [Arguments] ${algorithm}
+ Fuzzy Setup Generic ${algorithm} ${EMPTY} ${EMPTY}
+
+Fuzzy Setup Keyed
+ [Arguments] ${algorithm}
+ ${check_settings} = Set Variable fuzzy_key = "mYN888sydwLTfE32g2hN"; fuzzy_shingles_key = "hXUCgul9yYY3Zlk1QIT2";
+ Fuzzy Setup Generic ${algorithm} ${EMPTY} ${check_settings}
+
+Fuzzy Setup Generic
+ [Arguments] ${algorithm} ${worker_settings} ${check_settings}
+ Set Suite Variable ${SETTINGS_FUZZY_WORKER} ${worker_settings}
+ Set Suite Variable ${SETTINGS_FUZZY_CHECK} ${check_settings}
+ Set Suite Variable ${ALGORITHM} ${algorithm}
+ Generic Setup
+
+Fuzzy Setup Plain Fasthash
+ Fuzzy Setup Plain fasthash
+
+Fuzzy Setup Plain Mumhash
+ Fuzzy Setup Plain mumhash
+
+Fuzzy Setup Plain Siphash
+ Fuzzy Setup Plain siphash
+
+Fuzzy Setup Plain Xxhash
+ Fuzzy Setup Plain xxhash
+
+Fuzzy Setup Keyed Fasthash
+ Fuzzy Setup Keyed fasthash
+
+Fuzzy Setup Keyed Mumhash
+ Fuzzy Setup Keyed mumhash
+
+Fuzzy Setup Keyed Siphash
+ Fuzzy Setup Keyed siphash
+
+Fuzzy Setup Keyed Xxhash
+ Fuzzy Setup Keyed xxhash
+
+Fuzzy Setup Encrypted Siphash
+ Fuzzy Setup Encrypted siphash
+
+Fuzzy Multimessage Add Test
+ : FOR ${i} IN @{MESSAGES}
+ \ Fuzzy Add Test ${i}
+
+Fuzzy Multimessage Fuzzy Test
+ : FOR ${i} IN @{MESSAGES}
+ \ Fuzzy Fuzzy Test ${i}
+
+Fuzzy Multimessage Miss Test
+ : FOR ${i} IN @{RANDOM_MESSAGES}
+ \ Fuzzy Miss Test ${i}
+
+Fuzzy Multimessage Delete Test
+ : FOR ${i} IN @{MESSAGES}
+ \ Fuzzy Delete Test ${i}
+
+Fuzzy Multimessage Overwrite Test
+ : FOR ${i} IN @{MESSAGES}
+ \ Fuzzy Overwrite Test ${i}
diff --git a/test/functional/cases/120_fuzzy/mumhash-keyed.robot b/test/functional/cases/120_fuzzy/mumhash-keyed.robot
new file mode 100644
index 000000000..cfef38e57
--- /dev/null
+++ b/test/functional/cases/120_fuzzy/mumhash-keyed.robot
@@ -0,0 +1,14 @@
+*** Settings ***
+Suite Setup Fuzzy Setup Keyed Mumhash
+Suite Teardown Generic Teardown
+Resource lib.robot
+
+*** Test Cases ***
+Fuzzy Add
+ Fuzzy Multimessage Add Test
+
+Fuzzy Fuzzy
+ Fuzzy Multimessage Fuzzy Test
+
+Fuzzy Miss
+ Fuzzy Multimessage Miss Test
diff --git a/test/functional/cases/120_fuzzy/mumhash.robot b/test/functional/cases/120_fuzzy/mumhash.robot
new file mode 100644
index 000000000..6e2714b64
--- /dev/null
+++ b/test/functional/cases/120_fuzzy/mumhash.robot
@@ -0,0 +1,14 @@
+*** Settings ***
+Suite Setup Fuzzy Setup Plain Mumhash
+Suite Teardown Generic Teardown
+Resource lib.robot
+
+*** Test Cases ***
+Fuzzy Add
+ Fuzzy Multimessage Add Test
+
+Fuzzy Fuzzy
+ Fuzzy Multimessage Fuzzy Test
+
+Fuzzy Miss
+ Fuzzy Multimessage Miss Test
diff --git a/test/functional/cases/120_fuzzy/plain.robot b/test/functional/cases/120_fuzzy/plain.robot
deleted file mode 100644
index 2fc2fd5ef..000000000
--- a/test/functional/cases/120_fuzzy/plain.robot
+++ /dev/null
@@ -1,18 +0,0 @@
-*** Settings ***
-Suite Setup Generic Setup
-Suite Teardown Generic Teardown
-Resource lib.robot
-
-*** Variables ***
-${SETTINGS_FUZZY_WORKER} ${EMPTY}
-${SETTINGS_FUZZY_CHECK} ${EMPTY}
-
-*** Test Cases ***
-Fuzzy Add
- Fuzzy Add Test
-
-Fuzzy Delete
- Fuzzy Delete Test
-
-Fuzzy Overwrite
- Fuzzy Overwrite Test
diff --git a/test/functional/cases/120_fuzzy/siphash-keyed.robot b/test/functional/cases/120_fuzzy/siphash-keyed.robot
new file mode 100644
index 000000000..6ed321ca9
--- /dev/null
+++ b/test/functional/cases/120_fuzzy/siphash-keyed.robot
@@ -0,0 +1,14 @@
+*** Settings ***
+Suite Setup Fuzzy Setup Keyed Siphash
+Suite Teardown Generic Teardown
+Resource lib.robot
+
+*** Test Cases ***
+Fuzzy Add
+ Fuzzy Multimessage Add Test
+
+Fuzzy Fuzzy
+ Fuzzy Multimessage Fuzzy Test
+
+Fuzzy Miss
+ Fuzzy Multimessage Miss Test
diff --git a/test/functional/cases/120_fuzzy/siphash.robot b/test/functional/cases/120_fuzzy/siphash.robot
new file mode 100644
index 000000000..5ede462de
--- /dev/null
+++ b/test/functional/cases/120_fuzzy/siphash.robot
@@ -0,0 +1,14 @@
+*** Settings ***
+Suite Setup Fuzzy Setup Plain Siphash
+Suite Teardown Generic Teardown
+Resource lib.robot
+
+*** Test Cases ***
+Fuzzy Add
+ Fuzzy Multimessage Add Test
+
+Fuzzy Fuzzy
+ Fuzzy Multimessage Fuzzy Test
+
+Fuzzy Miss
+ Fuzzy Multimessage Miss Test
diff --git a/test/functional/cases/120_fuzzy/xxhash-keyed.robot b/test/functional/cases/120_fuzzy/xxhash-keyed.robot
new file mode 100644
index 000000000..b9840dc0d
--- /dev/null
+++ b/test/functional/cases/120_fuzzy/xxhash-keyed.robot
@@ -0,0 +1,14 @@
+*** Settings ***
+Suite Setup Fuzzy Setup Keyed Xxhash
+Suite Teardown Generic Teardown
+Resource lib.robot
+
+*** Test Cases ***
+Fuzzy Add
+ Fuzzy Multimessage Add Test
+
+Fuzzy Fuzzy
+ Fuzzy Multimessage Fuzzy Test
+
+Fuzzy Miss
+ Fuzzy Multimessage Miss Test
diff --git a/test/functional/cases/120_fuzzy/xxhash.robot b/test/functional/cases/120_fuzzy/xxhash.robot
new file mode 100644
index 000000000..4cb7fef75
--- /dev/null
+++ b/test/functional/cases/120_fuzzy/xxhash.robot
@@ -0,0 +1,14 @@
+*** Settings ***
+Suite Setup Fuzzy Setup Plain Xxhash
+Suite Teardown Generic Teardown
+Resource lib.robot
+
+*** Test Cases ***
+Fuzzy Add
+ Fuzzy Multimessage Add Test
+
+Fuzzy Fuzzy
+ Fuzzy Multimessage Fuzzy Test
+
+Fuzzy Miss
+ Fuzzy Multimessage Miss Test