aboutsummaryrefslogtreecommitdiffstats
path: root/test/functional
diff options
context:
space:
mode:
authorAndrew Lewis <nerf@judo.za.org>2016-11-18 11:59:32 +0200
committerAndrew Lewis <nerf@judo.za.org>2016-11-18 11:59:32 +0200
commite42c3953abdc41ffbd14fb299c8aa948b6beceee (patch)
tree3ad5c34095ebcf42b2b23443b92c2ab150532894 /test/functional
parenta1bac50090b1742f09cac1b3a1eb55b8de62ded9 (diff)
downloadrspamd-e42c3953abdc41ffbd14fb299c8aa948b6beceee.tar.gz
rspamd-e42c3953abdc41ffbd14fb299c8aa948b6beceee.zip
[Test] Some basic tests for hashes in Lua
Diffstat (limited to 'test/functional')
-rw-r--r--test/functional/cases/101_lua.robot5
-rw-r--r--test/functional/lua/hashes.lua68
2 files changed, 73 insertions, 0 deletions
diff --git a/test/functional/cases/101_lua.robot b/test/functional/cases/101_lua.robot
index e7df19716..867ecd2cd 100644
--- a/test/functional/cases/101_lua.robot
+++ b/test/functional/cases/101_lua.robot
@@ -40,6 +40,11 @@ TLD parts
${result} = Scan Message With Rspamc ${MESSAGE}
Check Rspamc ${result} TEST_TLD (1.00)[no worry]
+Hashes
+ [Setup] Lua Setup ${TESTDIR}/lua/hashes.lua
+ ${result} = Scan Message With Rspamc ${MESSAGE}
+ Check Rspamc ${result} TEST_HASHES (1.00)[no worry]
+
*** Keywords ***
Lua Setup
[Arguments] ${LUA_SCRIPT}
diff --git a/test/functional/lua/hashes.lua b/test/functional/lua/hashes.lua
new file mode 100644
index 000000000..d934770e5
--- /dev/null
+++ b/test/functional/lua/hashes.lua
@@ -0,0 +1,68 @@
+rspamd_config:register_symbol({
+ name = 'TEST_HASHES',
+ score = 1.0,
+ callback = function()
+ local hash = require 'rspamd_cryptobox_hash'
+ local logger = require 'rspamd_logger'
+
+ local worry = {}
+ local test_data = {
+ {
+ ['str'] = 'asdf.qwerty.123',
+ ['hex'] = 'bf22dd95750034b9af93f0e4e5954aca3506bbcdbc051d91bd9af2d1a8fc294e848626b1c1751e58b44c4d3ea69dec5efa5a214dc59c77b1a9ca3bde3babac9d',
+ },
+ {
+ ['specific'] = 'md5',
+ ['str'] = 'asdf.qwerty.123',
+ ['hex'] = 'cf25ddc406c50de0c13de2b79d127646',
+ },
+ {
+ ['init'] = 'asdf.qwerty.123',
+ ['str'] = 'asdf.qwerty.123',
+ ['hex'] = 'bf22dd95750034b9af93f0e4e5954aca3506bbcdbc051d91bd9af2d1a8fc294e848626b1c1751e58b44c4d3ea69dec5efa5a214dc59c77b1a9ca3bde3babac9d',
+ ['reset'] = true,
+ },
+ {
+ ['init'] = 'asdf.qwerty.123',
+ ['str'] = 'asdf.qwerty.123',
+ ['hex'] = 'e445046aa21a705dcce1343795630f88bc0196a0070011fdce789d5a2a349a8f85349834ade555ca21439f65fdc4dbcf82dcff7fcc559ef11c508507515c1532',
+ },
+ {
+ ['init'] = 'asdf.qwerty.123',
+ ['specific'] = 'md5',
+ ['str'] = 'asdf.qwerty.123',
+ ['hex'] = '9ef941c4d050e43b1e665300f4fbe054',
+ },
+ {
+ ['init'] = 'asdf.qwerty.123',
+ ['specific'] = 'md5',
+ ['str'] = 'asdf.qwerty.123',
+ ['hex'] = 'cf25ddc406c50de0c13de2b79d127646',
+ ['reset'] = true,
+ },
+ }
+
+ for _, t in ipairs(test_data) do
+ local h
+ if not t['specific'] then
+ h = hash.create(t['init'])
+ else
+ h = hash.create_specific(t['specific'], t['init'])
+ end
+ if t['reset'] then
+ h:reset()
+ end
+ h:update(t['str'])
+ if not (h:hex() == t['hex']) then
+ t['error'] = 'sum mismatch: ' .. h:hex()
+ table.insert(worry, logger.slog('%1', t))
+ end
+ end
+
+ if (#worry == 0) then
+ return true, "no worry"
+ else
+ return true, table.concat(worry, ",")
+ end
+ end
+})