Add basic tcp listener test
This commit is contained in:
@@ -49,14 +49,20 @@ describe("tcp", function()
|
||||
-- sendbuf
|
||||
socket:set_sendbuf(4096)
|
||||
assert(socket:sendbuf() >= 4096)
|
||||
assert(not pcall(socket.set_sendbuf, socket, 0))
|
||||
assert(not pcall(socket.set_sendbuf, socket, -1))
|
||||
-- recvbuf
|
||||
socket:set_recvbuf(4096)
|
||||
assert(socket:recvbuf() >= 4096)
|
||||
assert(not pcall(socket.set_recvbuf, socket, 0))
|
||||
assert(not pcall(socket.set_recvbuf, socket, -1))
|
||||
-- linger
|
||||
socket:set_linger(0)
|
||||
assert(socket:linger() == 0)
|
||||
socket:set_linger(2)
|
||||
assert(math.abs(socket:linger() - 2) < 0.1)
|
||||
socket:set_linger(-1)
|
||||
assert(socket:linger() == 0)
|
||||
-- nodelay
|
||||
socket:set_nodelay(true)
|
||||
assert(socket:nodelay() == true)
|
||||
@@ -72,4 +78,39 @@ describe("tcp", function()
|
||||
assert(not pcall(socket.local_addr, socket))
|
||||
end)
|
||||
end)
|
||||
|
||||
describe("listener", function()
|
||||
test("accept", function()
|
||||
local listener = net.listen_tcp("127.0.0.1", 0)
|
||||
local addr = listener:local_addr()
|
||||
local accepted = false
|
||||
local client = net.tcp()
|
||||
local accepted_stream
|
||||
listener:on_accept(function(stream)
|
||||
accepted = true
|
||||
accepted_stream = stream
|
||||
-- configure stream
|
||||
stream:set_nodelay(true)
|
||||
assert(stream:nodelay() == true)
|
||||
end)
|
||||
-- connect client
|
||||
local client_stream = client:connect(addr)
|
||||
local server_stream = listener()
|
||||
assert(accepted)
|
||||
assert(accepted_stream ~= nil)
|
||||
-- check addresses
|
||||
assert(server_stream:local_addr() ~= nil)
|
||||
assert(server_stream:peer_addr() ~= nil)
|
||||
assert(client_stream:local_addr() ~= nil)
|
||||
assert(client_stream:peer_addr() ~= nil)
|
||||
-- test data transfer
|
||||
server_stream:write("hello")
|
||||
local buf = client_stream:read(5)
|
||||
assert(buf ~= nil and #buf == 5)
|
||||
assert(buf == "hello")
|
||||
-- shutdown
|
||||
server_stream:shutdown()
|
||||
client_stream:shutdown()
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user