1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
-- Test utf routines
context("UTF8 check functions", function()
local ffi = require("ffi")
ffi.cdef[[
void rspamd_str_lc_utf8 (char *str, unsigned int size);
void rspamd_str_lc (char *str, unsigned int size);
]]
test("UTF lowercase", function()
local cases = {
{"АбЫрвАлг", "абырвалг"},
{"АAБBвc", "аaбbвc"}
}
for _,c in ipairs(cases) do
local buf = ffi.new("char[?]", #c[1] + 1)
ffi.copy(buf, c[1])
ffi.C.rspamd_str_lc_utf8(buf, #c[1])
local s = ffi.string(buf)
assert_equal(s, c[2])
end
end)
test("ASCII lowercase", function()
local cases = {
{"AbCdEf", "abcdef"},
{"A", "a"},
{"AaAa", "aaaa"},
{"AaAaAaAa", "aaaaaaaa"}
}
for _,c in ipairs(cases) do
local buf = ffi.new("char[?]", #c[1] + 1)
ffi.copy(buf, c[1])
ffi.C.rspamd_str_lc(buf, #c[1])
local s = ffi.string(buf)
assert_equal(s, c[2])
end
end)
end)
|