From 0c4639c3e9cf3e076d1f294c211517507e160192 Mon Sep 17 00:00:00 2001 From: luaneko Date: Fri, 27 Jun 2025 03:29:29 +1000 Subject: [PATCH] Add basic tcp socket test --- crates/lb/src/net.rs | 6 +++++- crates/lb/tests/net.lua | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 crates/lb/tests/net.lua diff --git a/crates/lb/src/net.rs b/crates/lb/src/net.rs index 3c36cf2..49d3856 100644 --- a/crates/lb/src/net.rs +++ b/crates/lb/src/net.rs @@ -124,7 +124,11 @@ impl lb_netlib { } extern "Lua-C" fn __parse_skaddr(&self, addr: &str) -> Result { - Ok(addr.parse()?) + Ok(if let Ok(addr) = addr.parse() { + SocketAddr::new(addr, 0).into() // default port 0 + } else { + addr.parse::()?.into() + }) } /// Creates a new TCP socket configured for IPv4. diff --git a/crates/lb/tests/net.lua b/crates/lb/tests/net.lua new file mode 100644 index 0000000..1bc2fc5 --- /dev/null +++ b/crates/lb/tests/net.lua @@ -0,0 +1,17 @@ +local ok, net = pcall(require, "lb:net") +if not ok then return 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)