From 3414828f7041e675007ba307989f64b926cddadb Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sun, 21 Jul 2019 09:19:04 +0100 Subject: [PATCH] [Test] Add large TCP request test --- test/functional/cases/230_tcp.robot | 11 +++++-- test/functional/configs/lua_test.conf | 1 + test/functional/configs/trivial.conf | 3 +- test/functional/lua/tcp.lua | 44 +++++++++++++++++++++++++++ 4 files changed, 55 insertions(+), 4 deletions(-) diff --git a/test/functional/cases/230_tcp.robot b/test/functional/cases/230_tcp.robot index cbdbc6640..deb141ebe 100644 --- a/test/functional/cases/230_tcp.robot +++ b/test/functional/cases/230_tcp.robot @@ -1,6 +1,6 @@ *** Settings *** -Test Setup Servers Setup -Test Teardown Servers Teardown +Suite Setup Servers Setup +Suite Teardown Servers Teardown Library Process Library ${TESTDIR}/lib/rspamd.py Resource ${TESTDIR}/lib/rspamd.robot @@ -11,7 +11,7 @@ Variables ${TESTDIR}/lib/vars.py ${URL_TLD} ${TESTDIR}/../lua/unit/test_tld.dat ${CONFIG} ${TESTDIR}/configs/lua_test.conf ${MESSAGE} ${TESTDIR}/messages/spam_message.eml -${RSPAMD_SCOPE} Test +${RSPAMD_SCOPE} Suite *** Test Cases *** Simple TCP request @@ -24,6 +24,11 @@ SSL TCP request Check Rspamc ${result} TCP_SSL_RESPONSE (0.00)[test] Check Rspamc ${result} TCP_SSL_RESPONSE_2 (0.00)[test2] +SSL Large TCP request + ${result} = Scan Message With Rspamc ${MESSAGE} + Check Rspamc ${result} TCP_SSL_LARGE (0.00) + Check Rspamc ${result} TCP_SSL_LARGE_2 (0.00) + Sync API TCP request ${result} = Scan Message With Rspamc ${MESSAGE} Check Rspamc ${result} HTTP_SYNC_RESPONSE diff --git a/test/functional/configs/lua_test.conf b/test/functional/configs/lua_test.conf index 67e1e8103..8ea65353f 100644 --- a/test/functional/configs/lua_test.conf +++ b/test/functional/configs/lua_test.conf @@ -25,6 +25,7 @@ logging = { type = "file", level = "debug" filename = "${TMPDIR}/rspamd.log" + log_usec = true; } metric = { name = "default", diff --git a/test/functional/configs/trivial.conf b/test/functional/configs/trivial.conf index 06aa194e3..c9b8927f2 100644 --- a/test/functional/configs/trivial.conf +++ b/test/functional/configs/trivial.conf @@ -13,7 +13,8 @@ logging = { log_urls = true; type = "file", level = "debug" - filename = "${TMPDIR}/rspamd.log" + filename = "${TMPDIR}/rspamd.log"; + log_usec = true; } metric = { name = "default", diff --git a/test/functional/lua/tcp.lua b/test/functional/lua/tcp.lua index a95497086..925a18913 100644 --- a/test/functional/lua/tcp.lua +++ b/test/functional/lua/tcp.lua @@ -59,6 +59,44 @@ local function http_simple_tcp_ssl_symbol(task) }) end +local function http_large_tcp_ssl_symbol(task) + local data = {} + + local function ssl_get_cb(err, rep, conn) + logger.errx(task, 'ssl_get_cb: got reply: %s, error: %s, conn: %s', rep, err, conn) + task:insert_result('TCP_SSL_LARGE_2', 1.0) + end + local function ssl_read_post_cb(err, conn) + logger.errx(task, 'ssl_large_read_post_cb: write done: error: %s, conn: %s', err, conn) + conn:add_read(ssl_get_cb) + end + local function ssl_read_cb(err, rep, conn) + logger.errx(task, 'ssl_large_read_cb: got reply: %s, error: %s, conn: %s', rep, err, conn) + conn:add_write(ssl_read_post_cb, data) + task:insert_result('TCP_SSL_LARGE', 1.0) + end + + if task:get_queue_id() == 'SSL Large TCP request' then + logger.errx(task, 'ssl_large_tcp_symbol: begin') + for i = 1,10000000 do + data[i] = 'test\n' + end + + rspamd_tcp:request({ + task = task, + callback = ssl_read_cb, + host = '127.0.0.1', + data = data, + read = true, + ssl = true, + ssl_noverify = true, + port = 14433, + }) + else + logger.errx(task, 'ssl_large_tcp_symbol: skip') + end +end + local function http_simple_tcp_symbol(task) logger.errx(task, 'connect_sync, before') @@ -211,6 +249,12 @@ rspamd_config:register_symbol({ callback = http_simple_tcp_ssl_symbol, no_squeeze = true }) +rspamd_config:register_symbol({ + name = 'LARGE_TCP_ASYNC_SSL_TEST', + score = 1.0, + callback = http_large_tcp_ssl_symbol, + no_squeeze = true +}) rspamd_config:register_symbol({ name = 'SIMPLE_TCP_TEST', score = 1.0, -- 2.39.5