2015-03-14 23:25:54 +01:00
|
|
|
-- inet addr tests
|
|
|
|
|
|
|
|
context("Inet addr check functions", function()
|
|
|
|
local ffi = require("ffi")
|
2018-07-31 12:46:38 +02:00
|
|
|
|
2015-03-14 23:25:54 +01:00
|
|
|
ffi.cdef[[
|
|
|
|
typedef struct rspamd_inet_addr_s rspamd_inet_addr_t;
|
|
|
|
bool rspamd_parse_inet_address (rspamd_inet_addr_t **target,
|
|
|
|
const char *src);
|
2018-03-29 16:03:00 +02:00
|
|
|
void rspamd_inet_address_free (rspamd_inet_addr_t *addr);
|
2015-03-14 23:25:54 +01:00
|
|
|
]]
|
2018-03-30 10:59:53 +02:00
|
|
|
|
|
|
|
local cases = {
|
|
|
|
{'192.168.1.1', true},
|
|
|
|
{'2a01:4f8:190:43b5::99', true},
|
|
|
|
{'256.1.1.1', false},
|
|
|
|
{'/tmp/socket', true},
|
|
|
|
{'./socket', true},
|
2018-07-31 12:46:38 +02:00
|
|
|
{'[fe80::f919:8b26:ff93:3092%5]', true},
|
|
|
|
{'[fe80::f919:8b26:ff93:3092]', true},
|
2018-03-30 10:59:53 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
for i,c in ipairs(cases) do
|
|
|
|
test("Create inet addr from string " .. i, function()
|
2015-03-14 23:25:54 +01:00
|
|
|
local ip = ffi.new("rspamd_inet_addr_t* [1]");
|
|
|
|
local res = ffi.C.rspamd_parse_inet_address(ip, c[1])
|
|
|
|
assert_equal(res, c[2], "Expect " .. tostring(c[2]) .. " while parsing " .. c[1])
|
|
|
|
if res then
|
2017-04-29 14:15:21 +02:00
|
|
|
ffi.C.rspamd_inet_address_free(ip[0])
|
2015-03-14 23:25:54 +01:00
|
|
|
end
|
2018-03-30 10:59:53 +02:00
|
|
|
end)
|
|
|
|
|
|
|
|
end
|
2015-03-14 23:25:54 +01:00
|
|
|
end)
|