local ok, net = pcall(require, "lb:net") if not ok then return end describe("ipaddr", function() test("invalid ipaddr throws", function() assert(not pcall(net.ipaddr, "invalid ip")) end) test("comparison", function() local a = net.ipaddr("10.0.0.1") local b = net.ipaddr("10.0.0.1") local c = net.ipaddr("10.0.0.2") assert(a ~= nil and a ~= {} and a ~= "10.0.0.1" and a ~= 167772161) assert(a == a and a == b and a ~= c and b ~= c and c == c and c ~= a) assert(a <= b and a < c and a <= c and b < c and b <= c and a <= a and c <= c) assert(not (a < b or a > b or a > c or b > c or a >= c or b >= c)) end) test("tostring", function() local ip = net.ipaddr("10.0.0.1") assert(tostring(ip) == "10.0.0.1") end) end) describe("tcp", function() describe("socket", function() test("bind", function() local socket = net.bind_tcp("127.0.0.1") -- binds to the correct port assert(tostring(socket:local_addr():ip()) == "127.0.0.1") assert(socket:local_addr():port() ~= 0) -- should not be able to rebind socket assert(not pcall(socket.bind, socket, net.socketaddr("127.0.0.1"))) end) end) end)