diff options
author | Andrew Lewis <nerf@judo.za.org> | 2016-06-27 21:11:07 +0200 |
---|---|---|
committer | Andrew Lewis <nerf@judo.za.org> | 2016-06-27 23:27:26 +0200 |
commit | e8a7a6327950349aa897ce84e507d4fd94f43834 (patch) | |
tree | 1185e854673c7e220b56ada9fd4ef714f40bdcaf /test/functional/lua | |
parent | 3bb4e1cd86c65a854bcfe4e7d0bb0a1c64347fc7 (diff) | |
download | rspamd-e8a7a6327950349aa897ce84e507d4fd94f43834.tar.gz rspamd-e8a7a6327950349aa897ce84e507d4fd94f43834.zip |
[Test] New functional test framework
Diffstat (limited to 'test/functional/lua')
-rw-r--r-- | test/functional/lua/deps.lua | 32 | ||||
-rw-r--r-- | test/functional/lua/flags.lua | 37 |
2 files changed, 69 insertions, 0 deletions
diff --git a/test/functional/lua/deps.lua b/test/functional/lua/deps.lua new file mode 100644 index 000000000..581825400 --- /dev/null +++ b/test/functional/lua/deps.lua @@ -0,0 +1,32 @@ +local logger = require "rspamd_logger" + +local cb = function(task) + task:insert_result('TOP', 1.0) +end + +local cb_dep1 = function(task) + if task:get_symbol('TOP') then + task:insert_result('DEP1', 1.0) + end +end + +local cb_gen = function(num) + local cb_dep = function(task) + if task:get_symbol('DEP' .. tostring(num)) then + task:insert_result('DEP' .. tostring(num + 1), 1.0) + end + end + + return cb_dep +end + +local id = rspamd_config:register_callback_symbol(1.0, cb) +rspamd_config:register_virtual_symbol('TOP', 1.0, id) + +rspamd_config:register_symbol('DEP1', 1.0, cb_dep1) +rspamd_config:register_dependency('DEP1', 'TOP') + +for i = 2,10 do + rspamd_config:register_symbol('DEP' .. tostring(i), 1.0, cb_gen(i - 1)) + rspamd_config:register_dependency('DEP' .. tostring(i), 'DEP' .. tostring(i - 1)) +end
\ No newline at end of file diff --git a/test/functional/lua/flags.lua b/test/functional/lua/flags.lua new file mode 100644 index 000000000..61f135f1c --- /dev/null +++ b/test/functional/lua/flags.lua @@ -0,0 +1,37 @@ +--[[ +Copyright (c) 2015, Vsevolod Stakhov <vsevolod@highsecure.ru> +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]]-- + +local logger = require "rspamd_logger" + +rspamd_config:register_post_filter(function(task) + task:set_flag('no_stat') + task:set_flag('no_log', false) + task:set_flag('no_log', true) + task:set_flag('skip', true) + task:set_flag('extended_urls') + + task:insert_result('FLAGS_SYM', 1.0, table.concat(task:get_flags(), ',')) +end) |