You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

160_antivirus.robot 4.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. *** Settings ***
  2. Suite Setup Antivirus Setup
  3. Suite Teardown Antivirus Teardown
  4. Library Process
  5. Library ${TESTDIR}/lib/rspamd.py
  6. Resource ${TESTDIR}/lib/rspamd.robot
  7. Variables ${TESTDIR}/lib/vars.py
  8. *** Variables ***
  9. ${CONFIG} ${TESTDIR}/configs/plugins.conf
  10. ${MESSAGE} ${TESTDIR}/messages/spam_message.eml
  11. ${MESSAGE2} ${TESTDIR}/messages/freemail.eml
  12. ${REDIS_SCOPE} Suite
  13. ${RSPAMD_SCOPE} Suite
  14. ${URL_TLD} ${TESTDIR}/../lua/unit/test_tld.dat
  15. *** Test Cases ***
  16. CLAMAV MISS
  17. Run Dummy Clam ${PORT_CLAM}
  18. ${result} = Scan Message With Rspamc ${MESSAGE}
  19. Check Rspamc ${result} CLAM_VIRUS inverse=1
  20. Shutdown clamav
  21. CLAMAV HIT
  22. Run Dummy Clam ${PORT_CLAM} 1
  23. ${result} = Scan Message With Rspamc ${MESSAGE2}
  24. Check Rspamc ${result} CLAM_VIRUS
  25. Should Not Contain ${result.stdout} CLAMAV_VIRUS_FAIL
  26. Shutdown clamav
  27. CLAMAV CACHE HIT
  28. ${result} = Scan Message With Rspamc ${MESSAGE2}
  29. Check Rspamc ${result} CLAM_VIRUS
  30. Should Not Contain ${result.stdout} CLAMAV_VIRUS_FAIL
  31. CLAMAV CACHE MISS
  32. ${result} = Scan Message With Rspamc ${MESSAGE}
  33. Check Rspamc ${result} CLAM_VIRUS inverse=1
  34. Should Not Contain ${result.stdout} CLAMAV_VIRUS_FAIL
  35. FPROT MISS
  36. Run Dummy Fprot ${PORT_FPROT}
  37. ${result} = Scan Message With Rspamc ${MESSAGE2}
  38. Check Rspamc ${result} FPROT_VIRUS inverse=1
  39. Should Not Contain ${result.stdout} FPROT_EICAR
  40. Shutdown fport
  41. FPROT HIT - PATTERN
  42. Run Dummy Fprot ${PORT_FPROT} 1
  43. Run Dummy Fprot ${PORT_FPROT2_DUPLICATE} 1 /tmp/dummy_fprot_dupe.pid
  44. ${result} = Scan Message With Rspamc ${MESSAGE}
  45. Check Rspamc ${result} FPROT_EICAR
  46. Should Not Contain ${result.stdout} CLAMAV_VIRUS
  47. # Also check ordered pattern match
  48. Should Contain ${result.stdout} FPROT2_VIRUS_DUPLICATE_PATTERN
  49. Should Not Contain ${result.stdout} FPROT2_VIRUS_DUPLICATE_DEFAULT
  50. Should Not Contain ${result.stdout} FPROT2_VIRUS_DUPLICATE_NOPE
  51. Shutdown fport
  52. Shutdown fport duplicate
  53. FPROT CACHE HIT
  54. ${result} = Scan Message With Rspamc ${MESSAGE}
  55. Check Rspamc ${result} FPROT_EICAR
  56. Should Not Contain ${result.stdout} CLAMAV_VIRUS
  57. # Also check ordered pattern match
  58. Should Contain ${result.stdout} FPROT2_VIRUS_DUPLICATE_PATTERN
  59. Should Not Contain ${result.stdout} FPROT2_VIRUS_DUPLICATE_DEFAULT
  60. FPROT CACHE MISS
  61. ${result} = Scan Message With Rspamc ${MESSAGE2}
  62. Check Rspamc ${result} FPROT_VIRUS inverse=1
  63. AVAST MISS
  64. Run Dummy Avast ${PORT_AVAST}
  65. ${result} = Scan Message With Rspamc ${MESSAGE}
  66. Check Rspamc ${result} AVAST_VIRUS inverse=1
  67. Shutdown avast
  68. AVAST HIT
  69. Run Dummy Avast ${PORT_AVAST} 1
  70. ${result} = Scan Message With Rspamc ${MESSAGE2}
  71. Check Rspamc ${result} AVAST_VIRUS
  72. Should Not Contain ${result.stdout} AVAST_VIRUS_FAIL
  73. Shutdown avast
  74. AVAST CACHE HIT
  75. ${result} = Scan Message With Rspamc ${MESSAGE2}
  76. Check Rspamc ${result} AVAST_VIRUS
  77. Should Not Contain ${result.stdout} AVAST_VIRUS_FAIL
  78. AVAST CACHE MISS
  79. ${result} = Scan Message With Rspamc ${MESSAGE}
  80. Check Rspamc ${result} AVAST_VIRUS inverse=1
  81. Should Not Contain ${result.stdout} AVAST_VIRUS_FAIL
  82. *** Keywords ***
  83. Antivirus Setup
  84. ${PLUGIN_CONFIG} = Get File ${TESTDIR}/configs/antivirus.conf
  85. Set Suite Variable ${PLUGIN_CONFIG}
  86. Generic Setup PLUGIN_CONFIG
  87. Run Redis
  88. Antivirus Teardown
  89. Normal Teardown
  90. Shutdown Process With Children ${REDIS_PID}
  91. Shutdown clamav
  92. Shutdown fport
  93. Shutdown avast
  94. Terminate All Processes kill=True
  95. Shutdown clamav
  96. ${clamav_pid} = Get File if exists /tmp/dummy_clamav.pid
  97. Run Keyword if ${clamav_pid} Shutdown Process With Children ${clamav_pid}
  98. Shutdown fport
  99. ${fport_pid} = Get File if exists /tmp/dummy_fprot.pid
  100. Run Keyword if ${fport_pid} Shutdown Process With Children ${fport_pid}
  101. Shutdown fport duplicate
  102. ${fport_pid} = Get File if exists /tmp/dummy_fprot_dupe.pid
  103. Run Keyword if ${fport_pid} Shutdown Process With Children ${fport_pid}
  104. Shutdown avast
  105. ${avast_pid} = Get File if exists /tmp/dummy_avast.pid
  106. Run Keyword if ${avast_pid} Shutdown Process With Children ${avast_pid}
  107. Run Dummy Clam
  108. [Arguments] ${port} ${found}=
  109. ${result} = Start Process ${TESTDIR}/util/dummy_clam.py ${port} ${found}
  110. Wait Until Created /tmp/dummy_clamav.pid
  111. Run Dummy Fprot
  112. [Arguments] ${port} ${found}= ${pid}=/tmp/dummy_fprot.pid
  113. Start Process ${TESTDIR}/util/dummy_fprot.py ${port} ${found} ${pid}
  114. Wait Until Created ${pid}
  115. Run Dummy Avast
  116. [Arguments] ${port} ${found}=
  117. ${result} = Start Process ${TESTDIR}/util/dummy_avast.py ${port} ${found}
  118. Wait Until Created /tmp/dummy_avast.pid