aboutsummaryrefslogtreecommitdiffstats
path: root/test/lua
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-03-03 12:19:48 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-03-03 12:19:48 +0000
commitf1b297d5138e6415d422a1a8d67ece351112646a (patch)
treef5b70198c24e2d37ff2404bb1f613f3c7fcd0348 /test/lua
parent92d4dde3cf20e52bad9fb2d17cf0d059c8f68fef (diff)
downloadrspamd-f1b297d5138e6415d422a1a8d67ece351112646a.tar.gz
rspamd-f1b297d5138e6415d422a1a8d67ece351112646a.zip
[Feature] Improve tests for siphash
- Add fuzz tests - Add variable length input tests - Check sanity of siphash implementation on start
Diffstat (limited to 'test/lua')
-rw-r--r--test/lua/unit/siphash.lua67
1 files changed, 55 insertions, 12 deletions
diff --git a/test/lua/unit/siphash.lua b/test/lua/unit/siphash.lua
index 1c773b45e..398060847 100644
--- a/test/lua/unit/siphash.lua
+++ b/test/lua/unit/siphash.lua
@@ -4,26 +4,69 @@ context("Siphash check functions", function()
local ffi = require("ffi")
ffi.cdef[[
void rspamd_cryptobox_init (void);
- size_t siphash24_test(bool generic);
+ size_t siphash24_test(bool generic, size_t niters, size_t len);
+ bool siphash24_fuzz (size_t cycles);
double rspamd_get_ticks (void);
]]
-
+
ffi.C.rspamd_cryptobox_init()
-
- test("Siphash test reference vectors", function()
+
+ test("Siphash test reference vectors (1KB)", function()
+ local t1 = ffi.C.rspamd_get_ticks()
+ local res = ffi.C.siphash24_test(true, 100000, 1024)
+ local t2 = ffi.C.rspamd_get_ticks()
+
+ print("Refrence siphash (1KB): " .. tostring(t2 - t1) .. " sec")
+ assert_not_equal(res, 0)
+ end)
+ test("Siphash test optimized vectors (1KB)", function()
+ local t1 = ffi.C.rspamd_get_ticks()
+ local res = ffi.C.siphash24_test(false, 100000, 1024)
+ local t2 = ffi.C.rspamd_get_ticks()
+
+ print("Optimized siphash (1KB): " .. tostring(t2 - t1) .. " sec")
+ assert_not_equal(res, 0)
+ end)
+ test("Siphash test reference vectors (5B)", function()
+ local t1 = ffi.C.rspamd_get_ticks()
+ local res = ffi.C.siphash24_test(true, 1000000, 5)
+ local t2 = ffi.C.rspamd_get_ticks()
+
+ print("Refrence siphash (5B): " .. tostring(t2 - t1) .. " sec")
+ assert_not_equal(res, 0)
+ end)
+ test("Siphash test optimized vectors (5B)", function()
+ local t1 = ffi.C.rspamd_get_ticks()
+ local res = ffi.C.siphash24_test(false, 1000000, 5)
+ local t2 = ffi.C.rspamd_get_ticks()
+
+ print("Optimized siphash (5B): " .. tostring(t2 - t1) .. " sec")
+ assert_not_equal(res, 0)
+ end)
+ test("Siphash test reference vectors (50B)", function()
local t1 = ffi.C.rspamd_get_ticks()
- local res = ffi.C.siphash24_test(true)
+ local res = ffi.C.siphash24_test(true, 1000000, 50)
local t2 = ffi.C.rspamd_get_ticks()
-
- print("Refrence siphash: " .. tostring(t2 - t1) .. " sec")
+
+ print("Refrence siphash (50B): " .. tostring(t2 - t1) .. " sec")
assert_not_equal(res, 0)
end)
- test("Siphash test optimized vectors", function()
+ test("Siphash test optimized vectors (50B)", function()
local t1 = ffi.C.rspamd_get_ticks()
- local res = ffi.C.siphash24_test(false)
+ local res = ffi.C.siphash24_test(false, 1000000, 50)
local t2 = ffi.C.rspamd_get_ticks()
-
- print("Optimized siphash: " .. tostring(t2 - t1) .. " sec")
+
+ print("Optimized siphash (50B): " .. tostring(t2 - t1) .. " sec")
+ assert_not_equal(res, 0)
+ end)
+ test("Siphash fuzz test (1000 iters)", function()
+ local res = ffi.C.siphash24_fuzz(1000)
+
+ assert_not_equal(res, 0)
+ end)
+ test("Siphash fuzz test (10000 iters)", function()
+ local res = ffi.C.siphash24_fuzz(10000)
+
assert_not_equal(res, 0)
end)
-end) \ No newline at end of file
+end)