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 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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. *** Keywords ***
  64. Antivirus Setup
  65. ${PLUGIN_CONFIG} = Get File ${TESTDIR}/configs/antivirus.conf
  66. Set Suite Variable ${PLUGIN_CONFIG}
  67. Generic Setup PLUGIN_CONFIG
  68. Run Redis
  69. Antivirus Teardown
  70. Normal Teardown
  71. Shutdown Process With Children ${REDIS_PID}
  72. Shutdown clamav
  73. Shutdown fport
  74. Terminate All Processes kill=True
  75. Shutdown clamav
  76. ${clamav_pid} = Get File if exists /tmp/dummy_clamav.pid
  77. Run Keyword if ${clamav_pid} Shutdown Process With Children ${clamav_pid}
  78. Shutdown fport
  79. ${fport_pid} = Get File if exists /tmp/dummy_fprot.pid
  80. Run Keyword if ${fport_pid} Shutdown Process With Children ${fport_pid}
  81. Shutdown fport duplicate
  82. ${fport_pid} = Get File if exists /tmp/dummy_fprot_dupe.pid
  83. Run Keyword if ${fport_pid} Shutdown Process With Children ${fport_pid}
  84. Run Dummy Clam
  85. [Arguments] ${port} ${found}=
  86. ${result} = Start Process ${TESTDIR}/util/dummy_clam.py ${port} ${found}
  87. Wait Until Created /tmp/dummy_clamav.pid
  88. Run Dummy Fprot
  89. [Arguments] ${port} ${found}= ${pid}=/tmp/dummy_fprot.pid
  90. Start Process ${TESTDIR}/util/dummy_fprot.py ${port} ${found} ${pid}
  91. Wait Until Created ${pid}