--- /dev/null
+*** Settings ***
+Suite Setup Generic Setup
+Suite Teardown Simple Teardown
+Library ${TESTDIR}/lib/rspamd.py
+Resource ${TESTDIR}/lib/rspamd.robot
+Variables ${TESTDIR}/lib/vars.py
+
+*** Variables ***
+${CONFIG} ${TESTDIR}/configs/lua_script.conf
+${LUA_SCRIPT} ${TESTDIR}/lua/magic.lua
+${RSPAMD_SCOPE} Suite
+${URL_TLD} ${TESTDIR}/../lua/unit/test_tld.dat
+
+*** Test Cases ***
+Magic detections bundle 1
+ ${result} = Scan Message With Rspamc ${TESTDIR}/messages/gargantua.eml
+ Should Contain ${result.stdout} MAGIC_SYM_ZIP_2
+ Should Contain ${result.stdout} MAGIC_SYM_RAR_3
\ No newline at end of file
--- /dev/null
+rspamd_config.MAGIC_SYM = {
+ callback = function(task)
+ local parts = task:get_parts()
+
+ for i,p in ipairs(parts) do
+ local ext = p:get_detected_ext()
+
+ if ext then
+ task:insert_result('MAGIC_SYM_' .. ext:upper() .. '_' .. tostring(i), 1.0)
+ end
+ end
+ end,
+ type = 'callback'
+}
\ No newline at end of file
--- /dev/null
+From: <user@example.com>
+To: undisclosed-recipients:;
+Content-Type: multipart/mixed; boundary=XXX
+
+--XXX
+Content-Type: application/octet-stream
+Content-Transfer-Encoding: base64
+
+UEsDBBQDAAAAADxGUzwAAAAAAAAAAAAAAAACAAAAdC9QSwMECgMAAAAAHUZTPIiw
+JDICAAAAAgAAAAcAAAB0L3QudHh0NDJQSwECPwMUAwAAAAA8RlM8AAAAAAAAAAAA
+AAAAAgAAAAAAAAAAABCA6EEAAAAAdC9QSwECPwMKAwAAAAAdRlM8iLAkMgIAAAAC
+AAAABwAAAAAAAAAAACCAoIEgAAAAdC90LnR4dFBLBQYAAAAAAgACAGUAAABHAAAA
+AAA=
+
+--XXX
+Content-Type: application/octet-stream
+Content-Transfer-Encoding: base64
+
+UmFyIRoHAM+QcwAADQAAAAAAAABs53QggCcACwAAAAIAAAADiLAkMh0+UzwdMwcA
+oIEAAHRcdC50eHQRC/TEnu9/Np/2WmMfdOCAIQAAAAAAAAAAAAMAAAAAPD5TPBQw
+AQDoQQAAdMQ9ewBABwA=
+--XXX--
\ No newline at end of file