blob: 0458b98bf8300e1696fc97658b0805b08b157d0a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
*** 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
@{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
[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}
Check Rspamc ${result}
Sync Fuzzy Storage
${result} = Scan Message With Rspamc ${message}
Check Rspamc ${result} ${FLAG1_SYMBOL}
Set Suite Variable ${RSPAMD_FUZZY_ADD_${message}} 1
Fuzzy Delete Test
[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}
Check Rspamc ${result}
Sync Fuzzy Storage
${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] pattern=@{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}
\ Check Rspamc ${result}
Sync Fuzzy Storage
${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}
Fuzzy Teardown
${port_normal} = Create List ${SOCK_STREAM} ${LOCAL_ADDR} ${PORT_NORMAL}
${port_fuzzy} = Create List ${SOCK_DGRAM} ${LOCAL_ADDR} ${PORT_FUZZY}
${port_controller} = Create List ${SOCK_STREAM} ${LOCAL_ADDR} ${PORT_CONTROLLER}
${ports} = Create List ${port_normal} ${port_fuzzy} ${port_controller}
Generic Teardown @{ports}
|