]> source.dussan.org Git - rspamd.git/commitdiff
[Test] Improve address parsing unit tests
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 9 Jun 2019 08:51:58 +0000 (09:51 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 9 Jun 2019 08:51:58 +0000 (09:51 +0100)
test/lua/unit/addr.lua

index 03ceb2dbd036f095f4cdba075fdbd7c88dbf9c9b..a021b1cba89a05b18d28d25ea2d00b61c1db5300 100644 (file)
@@ -18,10 +18,22 @@ context("Inet addr check functions", function()
     {'./socket', true},
     {'[fe80::f919:8b26:ff93:3092%5]', true},
     {'[fe80::f919:8b26:ff93:3092]', true},
+    {'IPv6:::1', true},
+    {'IPv6:[::1]', true},
+    {'IPv6[:::1]', false},
+    {'[::]', true},
+    {'[1::]', true},
+    {'[000:01:02:003:004:5:6:007]', true}, -- leading zeros
+    {'[A:b:c:DE:fF:0:1:aC]', true}, -- mixed case
+    {'[::192.168.0.1]', true}, -- embedded ipv4
+    {'[1:2:192.168.0.1:5:6]', false}, -- poor octets
+    {'[::ffff:192.1.2]', false}, -- ipv4 without last octet (maybe should be true?)
+    {'[0:0::0:0:8]', true}, -- bogus zeros
+    {'[::192.168.0.0.1]', false}, -- invalid mapping
   }
 
   for i,c in ipairs(cases) do
-    test("Create inet addr from string " .. i, function()
+    test("Create inet addr from string " .. c[1] .. '; expect ' .. tostring(c[2]), function()
       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])