aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-12-19 21:43:16 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-12-19 21:43:16 +0000
commitbdbb4b48f5163a521fe8a5adb47cafa6edf92aeb (patch)
treed8ea7ae35802c11aa9b5dbbd7a3a850569104339
parenta9f583d9108cfcdc4973bc6374e0d078dbb868c9 (diff)
downloadrspamd-bdbb4b48f5163a521fe8a5adb47cafa6edf92aeb.tar.gz
rspamd-bdbb4b48f5163a521fe8a5adb47cafa6edf92aeb.zip
[Test] Add preliminary rfc2047 test
-rw-r--r--test/lua/unit/rfc2047.lua53
-rw-r--r--test/lua/unit/task.lua4
2 files changed, 55 insertions, 2 deletions
diff --git a/test/lua/unit/rfc2047.lua b/test/lua/unit/rfc2047.lua
new file mode 100644
index 000000000..726a99890
--- /dev/null
+++ b/test/lua/unit/rfc2047.lua
@@ -0,0 +1,53 @@
+--[[
+Copyright (c) 2016, 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.
+]]--
+
+context("RFC2047 decoding", function()
+ local ffi = require("ffi")
+
+ ffi.cdef[[
+ const char * rspamd_mime_header_decode (void *pool, const char *in, size_t inlen);
+ void * rspamd_mempool_new (size_t sz, const char *name);
+ void rspamd_mempool_destroy (void *pool);
+ ]]
+
+ test("Decode rfc2047 tokens", function()
+ -- Test -> expected
+ local cases = {
+ {"=?US-ASCII*EN?Q?Keith_Moore?= <moore@cs.utk.edu>", "Keith Moore <moore@cs.utk.edu>"},
+ }
+
+ local pool = ffi.C.rspamd_mempool_new(4096, "lua")
+
+ for _,c in ipairs(cases) do
+ local res = ffi.C.rspamd_mime_header_decode(pool, c[1], #c[1])
+ res = ffi.string(res)
+ assert_equal(res, c[2], res .. " not equal " .. c[2])
+ assert_not_nil(res, "cannot decode " .. c[1])
+ end
+
+ ffi.C.rspamd_mempool_destroy(pool)
+ end)
+end)
diff --git a/test/lua/unit/task.lua b/test/lua/unit/task.lua
index ed61fb3c5..2825a076f 100644
--- a/test/lua/unit/task.lua
+++ b/test/lua/unit/task.lua
@@ -27,8 +27,8 @@ context("Task processing", function()
}
test("Process a simple task", function()
- local cfg = rspamd_util.config_from_ucl(config)
- assert_not_nil(cfg)
+ --local cfg = rspamd_util.config_from_ucl(config)
+ --assert_not_nil(cfg)
local msg = [[
From: <>