From 1c33cc894bb3e9578b1eae5da0435684349cbffe Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 9 Mar 2015 23:01:05 +0000 Subject: [PATCH] Add basic base32 tests. --- test/lua/unit/base32.lua | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 test/lua/unit/base32.lua diff --git a/test/lua/unit/base32.lua b/test/lua/unit/base32.lua new file mode 100644 index 000000000..d0a40cdd8 --- /dev/null +++ b/test/lua/unit/base32.lua @@ -0,0 +1,34 @@ +-- Test zbase32 encoding/decoding + +context("Base32 encodning", function() + local ffi = require("ffi") + ffi.cdef[[ + void ottery_rand_bytes(void *buf, size_t n); + unsigned ottery_rand_unsigned(void); + unsigned char* rspamd_decode_base32 (const char *in, size_t inlen, size_t *outlen); + char * rspamd_encode_base32 (const unsigned char *in, size_t inlen); + void g_free(void *ptr); + ]] + + local function random_buf(max_size) + local l = ffi.C.ottery_rand_unsigned() + local buf = ffi.new("unsigned char[?]", l) + ffi.C.ottery_rand_bytes(buf, l) + + return buf, l + end + + test("Base32 exact test", function() + local cases = { + {'test123', 'wm3g84fg13cy'}, + {'hello', 'em3ags7p'} + } + + for _,c in ipairs(cases) do + local b = ffi.C.rspamd_encode_base32(c[1], #c[1]) + local s = ffi.string(b) + ffi.C.g_free(b) + assert_equal(s, c[2], s .. " not equal " .. c[2]) + end + end) +end) \ No newline at end of file -- 2.39.5