blob: c34121dfd8b7bb176c35d534acc297021e0f11f1 (
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
|
*** Settings ***
Suite Setup Antivirus Setup
Suite Teardown Antivirus Teardown
Library Process
Library ${TESTDIR}/lib/rspamd.py
Resource ${TESTDIR}/lib/rspamd.robot
Variables ${TESTDIR}/lib/vars.py
*** Variables ***
${CONFIG} ${TESTDIR}/configs/plugins.conf
${MESSAGE} ${TESTDIR}/messages/spam_message.eml
${MESSAGE2} ${TESTDIR}/messages/freemail.eml
${REDIS_SCOPE} Suite
${RSPAMD_SCOPE} Suite
${URL_TLD} ${TESTDIR}/../lua/unit/test_tld.dat
*** Test Cases ***
CLAMAV MISS
Run Dummy Clam ${PORT_CLAM}
${result} = Scan Message With Rspamc ${MESSAGE}
Check Rspamc ${result} CLAM_VIRUS inverse=1
Shutdown clamav
CLAMAV HIT
Run Dummy Clam ${PORT_CLAM} 1
${result} = Scan Message With Rspamc ${MESSAGE2}
Check Rspamc ${result} CLAM_VIRUS
Should Not Contain ${result.stdout} CLAMAV_VIRUS_FAIL
Shutdown clamav
CLAMAV CACHE HIT
${result} = Scan Message With Rspamc ${MESSAGE2}
Check Rspamc ${result} CLAM_VIRUS
Should Not Contain ${result.stdout} CLAMAV_VIRUS_FAIL
CLAMAV CACHE MISS
${result} = Scan Message With Rspamc ${MESSAGE}
Check Rspamc ${result} CLAM_VIRUS inverse=1
Should Not Contain ${result.stdout} CLAMAV_VIRUS_FAIL
FPROT MISS
Run Dummy Fprot ${PORT_FPROT}
${result} = Scan Message With Rspamc ${MESSAGE2}
Check Rspamc ${result} FPROT_VIRUS inverse=1
Should Not Contain ${result.stdout} FPROT_EICAR
Shutdown fport
FPROT HIT - PATTERN
Run Dummy Fprot ${PORT_FPROT} 1
Run Dummy Fprot ${PORT_FPROT2_DUPLICATE} 1 /tmp/dummy_fprot_dupe.pid
${result} = Scan Message With Rspamc ${MESSAGE}
Check Rspamc ${result} FPROT_EICAR
Should Not Contain ${result.stdout} CLAMAV_VIRUS
# Also check ordered pattern match
Should Contain ${result.stdout} FPROT2_VIRUS_DUPLICATE_PATTERN
Should Not Contain ${result.stdout} FPROT2_VIRUS_DUPLICATE_DEFAULT
Should Not Contain ${result.stdout} FPROT2_VIRUS_DUPLICATE_NOPE
Shutdown fport
Shutdown fport duplicate
FPROT CACHE HIT
${result} = Scan Message With Rspamc ${MESSAGE}
Check Rspamc ${result} FPROT_EICAR
Should Not Contain ${result.stdout} CLAMAV_VIRUS
# Also check ordered pattern match
Should Contain ${result.stdout} FPROT2_VIRUS_DUPLICATE_PATTERN
Should Not Contain ${result.stdout} FPROT2_VIRUS_DUPLICATE_DEFAULT
FPROT CACHE MISS
${result} = Scan Message With Rspamc ${MESSAGE2}
Check Rspamc ${result} FPROT_VIRUS inverse=1
*** Keywords ***
Antivirus Setup
${PLUGIN_CONFIG} = Get File ${TESTDIR}/configs/antivirus.conf
Set Suite Variable ${PLUGIN_CONFIG}
Generic Setup PLUGIN_CONFIG
Run Redis
Antivirus Teardown
Normal Teardown
Shutdown Process With Children ${REDIS_PID}
Shutdown clamav
Shutdown fport
Terminate All Processes kill=True
Shutdown clamav
${clamav_pid} = Get File if exists /tmp/dummy_clamav.pid
Run Keyword if ${clamav_pid} Shutdown Process With Children ${clamav_pid}
Shutdown fport
${fport_pid} = Get File if exists /tmp/dummy_fprot.pid
Run Keyword if ${fport_pid} Shutdown Process With Children ${fport_pid}
Shutdown fport duplicate
${fport_pid} = Get File if exists /tmp/dummy_fprot_dupe.pid
Run Keyword if ${fport_pid} Shutdown Process With Children ${fport_pid}
Run Dummy Clam
[Arguments] ${port} ${found}=
${result} = Start Process ${TESTDIR}/util/dummy_clam.py ${port} ${found}
Wait Until Created /tmp/dummy_clamav.pid
Run Dummy Fprot
[Arguments] ${port} ${found}= ${pid}=/tmp/dummy_fprot.pid
Start Process ${TESTDIR}/util/dummy_fprot.py ${port} ${found} ${pid}
Wait Until Created ${pid}
|