aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/functional/cases/flags.lua37
-rw-r--r--test/functional/cases/task_flags.sh17
-rw-r--r--test/functional/configs/lua_test.conf10
-rw-r--r--test/functional/functions.sh2
4 files changed, 65 insertions, 1 deletions
diff --git a/test/functional/cases/flags.lua b/test/functional/cases/flags.lua
new file mode 100644
index 000000000..61f135f1c
--- /dev/null
+++ b/test/functional/cases/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)
diff --git a/test/functional/cases/task_flags.sh b/test/functional/cases/task_flags.sh
new file mode 100644
index 000000000..501d242cb
--- /dev/null
+++ b/test/functional/cases/task_flags.sh
@@ -0,0 +1,17 @@
+# Test rspamd_task:get|set_flags functions
+
+. ${TEST_DIRNAME}/functions.sh
+
+sed -e 's|@@LUA_SCRIPT@@|${TESTDIR}/cases/flags.lua|' < \
+ "$TEST_DIRNAME/configs/lua_test.conf" > \
+ "$TMPDIR/rspamd.conf"
+export RSPAMD_CONFIG="$TMPDIR/rspamd.conf" \
+ STATSDIR=${TMPDIR}
+run_rspamd
+
+run_rspamc symbols \
+ "$TEST_DIRNAME/messages/spam_message.eml"
+check_output 'skip,extended_urls,no_log,no_stat'
+
+run_rspamc stat
+check_output 'Messages scanned: 0' \ No newline at end of file
diff --git a/test/functional/configs/lua_test.conf b/test/functional/configs/lua_test.conf
index bc1377a77..f43ceb49a 100644
--- a/test/functional/configs/lua_test.conf
+++ b/test/functional/configs/lua_test.conf
@@ -25,5 +25,15 @@ worker {
privkey = "oswsyqndpj3swqa4yqm4yzoyih83otqkeoxpo9km95o46ixh6quy";
}
}
+worker {
+ type = controller
+ bind_socket = localhost:56790
+ count = 1
+ keypair {
+ pubkey = "y3ms1knmetxf8gdeixkf74b6tbpxqugmxzqksnjodiqei7tksyty";
+ privkey = "oswsyqndpj3swqa4yqm4yzoyih83otqkeoxpo9km95o46ixh6quy";
+ }
+ secure_ip = ["127.0.0.1", "::1"];
+}
lua = @@LUA_SCRIPT@@;
diff --git a/test/functional/functions.sh b/test/functional/functions.sh
index 84393d325..7a7ec47fc 100644
--- a/test/functional/functions.sh
+++ b/test/functional/functions.sh
@@ -96,7 +96,7 @@ run_rspamc() {
_rspamc="$TEST_DIRNAME/../../src/client/rspamc"
case $_command in
- learn_spam|learn_ham|fuzzy_add|fuzzy_del|stats) _host="localhost:56790" ;;
+ learn_spam|learn_ham|fuzzy_add|fuzzy_del|stat) _host="localhost:56790" ;;
*) _host="localhost:56789" ;;
esac