test/test.lua

1
-- Tests Copas with a simple Echo server
2
--
3
-- Run the test file and the connect to the server by telnet on the used port
4
-- to stop the test just send the command "quit"
5
 
6
require"luaevent"
7
require"socket"
8
local oldPrint = print
9
print = function(...)
10
	oldPrint("SRV", ...)
11
end
12
 
13
local function echoHandler(skt)
14
  while true do
15
    local data,ret = luaevent.receive(skt, 10)
16
    --print("GOT: ", data, ret)
17
    if data == "quit" or ret == 'closed' then
18
      break
19
    end
20
    luaevent.send(skt, data)
21
    collectgarbage()
22
  end
23
  skt:close()
24
  --print("DONE")
25
end
26
local server = assert(socket.bind("localhost", 20000))
27
server:settimeout(0)
28
local coro = coroutine.create
29
coroutine.create = function(...)
30
	local ret = coro(...)
31
	return ret
32
end
33
luaevent.addserver(server, echoHandler)
34
luaevent.loop()