summaryrefslogtreecommitdiffstats
path: root/test/functional/lua/udp.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/lua/udp.lua')
-rw-r--r--test/functional/lua/udp.lua81
1 files changed, 81 insertions, 0 deletions
diff --git a/test/functional/lua/udp.lua b/test/functional/lua/udp.lua
new file mode 100644
index 0000000..0ed4b15
--- /dev/null
+++ b/test/functional/lua/udp.lua
@@ -0,0 +1,81 @@
+--[[[
+-- Just a test for UDP API
+--]]
+
+local rspamd_udp = require "rspamd_udp"
+local logger = require "rspamd_logger"
+
+-- [[ old fashioned callback api ]]
+local function simple_udp_async_symbol(task)
+ logger.errx(task, 'udp_symbol: begin')
+ local function udp_cb(success, data)
+ logger.errx(task, 'udp_cb: got reply: %s', data)
+
+ if success then
+ task:insert_result('UDP_SUCCESS', 1.0, data)
+ else
+ task:insert_result('UDP_FAIL', 1.0, data)
+ end
+ end
+ rspamd_udp:sendto({
+ task = task,
+ callback = udp_cb,
+ host = '127.0.0.1',
+ data = {'hello', 'world'},
+ port = 5005,
+ })
+end
+
+rspamd_config:register_symbol({
+ name = 'UDP_SUCCESS',
+ score = 0.0,
+ callback = simple_udp_async_symbol,
+})
+
+local function send_only_udp(task)
+ logger.errx(task, 'udp_symbol_sendonly: begin')
+ if rspamd_udp:sendto({
+ task = task,
+ host = '127.0.0.1',
+ data = {'hoho'},
+ port = 5005,
+ }) then
+
+ task:insert_result('UDP_SENDTO', 1.0)
+ end
+end
+
+rspamd_config:register_symbol({
+ name = 'UDP_SENDTO',
+ score = 0.0,
+ callback = send_only_udp,
+})
+
+local function udp_failed_cb(task)
+ logger.errx(task, 'udp_failed_cb: begin')
+ local function udp_cb(success, data)
+ logger.errx(task, 'udp_failed_cb: got reply: %s', data)
+
+ if success then
+ task:insert_result('UDP_SUCCESS', 1.0, data)
+ else
+ task:insert_result('UDP_FAIL', 1.0, data)
+ end
+ end
+ rspamd_udp:sendto({
+ task = task,
+ callback = udp_cb,
+ host = '127.0.0.1',
+ data = {'hello', 'world'},
+ port = 5006,
+ retransmits = 2,
+ timeout = 0.1,
+ })
+end
+
+rspamd_config:register_symbol({
+ name = 'UDP_FAIL',
+ score = 0.0,
+ callback = udp_failed_cb,
+})
+-- ]]