blob: 02e0a0af5a5f65875d388b0abc9d143bc15ee4d7 (
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
*** Settings ***
Library OperatingSystem
Library ${RSPAMD_TESTDIR}/lib/rspamd.py
Resource ${RSPAMD_TESTDIR}/lib/rspamd.robot
Variables ${RSPAMD_TESTDIR}/lib/vars.py
*** Variables ***
${CONFIG} ${RSPAMD_TESTDIR}/configs/fuzzy.conf
${FLAG1_SYMBOL} R_TEST_FUZZY_DENIED
${FLAG2_SYMBOL} R_TEST_FUZZY_WHITE
${REDIS_SCOPE} Suite
${RSPAMD_FLAG1_NUMBER} 50
${RSPAMD_FLAG2_NUMBER} 51
${RSPAMD_FUZZY_BACKEND} redis
${RSPAMD_FUZZY_ENCRYPTED_ONLY} false
${RSPAMD_FUZZY_ENCRYPTION_KEY} null
${RSPAMD_FUZZY_INCLUDE} ${RSPAMD_TESTDIR}/configs/empty.conf
${RSPAMD_FUZZY_KEY} null
${RSPAMD_FUZZY_SHINGLES_KEY} null
${RSPAMD_SCOPE} Suite
${SETTINGS_FUZZY_CHECK} ${EMPTY}
${SETTINGS_FUZZY_WORKER} ${EMPTY}
@{MESSAGES_SKIP} ${RSPAMD_TESTDIR}/messages/priority.eml
@{MESSAGES} ${RSPAMD_TESTDIR}/messages/spam_message.eml ${RSPAMD_TESTDIR}/messages/zip.eml
@{RANDOM_MESSAGES} ${RSPAMD_TESTDIR}/messages/bad_message.eml ${RSPAMD_TESTDIR}/messages/zip-doublebad.eml
*** Keywords ***
Fuzzy Skip Add Test Base
[Arguments] ${message}
Set Suite Variable ${RSPAMD_FUZZY_ADD_${message}} 0
${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} -w 10 -f
... ${RSPAMD_FLAG1_NUMBER} fuzzy_add ${message}
Check Rspamc ${result}
Sync Fuzzy Storage
Scan File ${message}
Expect Symbol R_TEST_FUZZY_DENIED
Create File ${RSPAMD_TMPDIR}/skip_hash.map.tmp 2d875d4737c59c4822fd01dadeba52a329de3933f766c6f167904c6a426bbfa7ea63a66bf807b25c5ee853baee58bfb18d3b423fcd13cfa7c3d77a840039a1ea
Move File ${RSPAMD_TMPDIR}/skip_hash.map.tmp ${RSPAMD_TMPDIR}/skip_hash.map
Sleep 1s Wait for reload
Scan File ${message}
Do Not Expect Symbol R_TEST_FUZZY_DENIED
Fuzzy Add Test
[Arguments] ${message}
Set Suite Variable ${RSPAMD_FUZZY_ADD_${message}} 0
${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} -w 10 -f
... ${RSPAMD_FLAG1_NUMBER} fuzzy_add ${message}
Check Rspamc ${result}
Sync Fuzzy Storage
Scan File ${message}
Expect Symbol ${FLAG1_SYMBOL}
Set Suite Variable ${RSPAMD_FUZZY_ADD_${message}} 1
Fuzzy Delete Test
[Arguments] ${message}
IF ${RSPAMD_FUZZY_ADD_${message}} == 0
Fail "Fuzzy Add was not run"
END
${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} -f ${RSPAMD_FLAG1_NUMBER} fuzzy_del
... ${message}
Check Rspamc ${result}
Sync Fuzzy Storage
Scan File ${message}
Do Not Expect Symbol ${FLAG1_SYMBOL}
Fuzzy Fuzzy Test
[Arguments] ${message}
IF ${RSPAMD_FUZZY_ADD_${message}} != 1
Fail "Fuzzy Add was not run"
END
@{path_info} = Path Splitter ${message}
@{fuzzy_files} = List Files In Directory ${pathinfo}[0] pattern=${pathinfo}[1].fuzzy* absolute=1
FOR ${i} IN @{fuzzy_files}
Scan File ${i}
Expect Symbol ${FLAG1_SYMBOL}
END
Fuzzy Miss Test
[Arguments] ${message}
Scan File ${message}
Do Not Expect Symbol ${FLAG1_SYMBOL}
Fuzzy Overwrite Test
[Arguments] ${message}
${flag_numbers} = Create List ${RSPAMD_FLAG1_NUMBER} ${RSPAMD_FLAG2_NUMBER}
FOR ${i} IN @{flag_numbers}
${result} = Run Rspamc -h ${RSPAMD_LOCAL_ADDR}:${RSPAMD_PORT_CONTROLLER} -w 10
... -f ${i} fuzzy_add ${message}
Check Rspamc ${result}
END
Sync Fuzzy Storage
Scan File ${message}
Do Not Expect Symbol ${FLAG1_SYMBOL}
Expect Symbol ${FLAG2_SYMBOL}
Fuzzy Setup Encrypted
[Arguments] ${algorithm}
Set Suite Variable ${RSPAMD_FUZZY_ALGORITHM} ${algorithm}
Set Suite Variable ${RSPAMD_FUZZY_ENCRYPTED_ONLY} true
Set Suite Variable ${RSPAMD_FUZZY_ENCRYPTION_KEY} ${RSPAMD_KEY_PUB1}
Set Suite Variable ${RSPAMD_FUZZY_INCLUDE} ${RSPAMD_TESTDIR}/configs/fuzzy-encryption-key.conf
Rspamd Redis Setup
Fuzzy Setup Encrypted Keyed
[Arguments] ${algorithm}
Set Suite Variable ${RSPAMD_FUZZY_ALGORITHM} ${algorithm}
Set Suite Variable ${RSPAMD_FUZZY_ENCRYPTED_ONLY} true
Set Suite Variable ${RSPAMD_FUZZY_ENCRYPTION_KEY} ${RSPAMD_KEY_PUB1}
Set Suite Variable ${RSPAMD_FUZZY_KEY} mYN888sydwLTfE32g2hN
Set Suite Variable ${RSPAMD_FUZZY_SHINGLES_KEY} hXUCgul9yYY3Zlk1QIT2
Rspamd Redis Setup
Fuzzy Setup Plain
[Arguments] ${algorithm}
Set Suite Variable ${RSPAMD_FUZZY_ALGORITHM} ${algorithm}
Rspamd Redis Setup
Fuzzy Setup Keyed
[Arguments] ${algorithm}
Set Suite Variable ${RSPAMD_FUZZY_ALGORITHM} ${algorithm}
Set Suite Variable ${RSPAMD_FUZZY_KEY} mYN888sydwLTfE32g2hN
Set Suite Variable ${RSPAMD_FUZZY_SHINGLES_KEY} hXUCgul9yYY3Zlk1QIT2
Rspamd Redis 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 Skip Hash Test Message
FOR ${i} IN @{MESSAGES_SKIP}
Fuzzy Skip Add Test Base ${i}
END
Fuzzy Multimessage Add Test
FOR ${i} IN @{MESSAGES}
Fuzzy Add Test ${i}
END
Fuzzy Multimessage Fuzzy Test
FOR ${i} IN @{MESSAGES}
Fuzzy Fuzzy Test ${i}
END
Fuzzy Multimessage Miss Test
FOR ${i} IN @{RANDOM_MESSAGES}
Fuzzy Miss Test ${i}
END
Fuzzy Multimessage Delete Test
FOR ${i} IN @{MESSAGES}
Fuzzy Delete Test ${i}
END
Fuzzy Multimessage Overwrite Test
FOR ${i} IN @{MESSAGES}
Fuzzy Overwrite Test ${i}
END
|