From 3cd10f5ab6cda5c4a8db829dd38f25168edcfc4a Mon Sep 17 00:00:00 2001 From: Diego Nehab Date: Mon, 11 Jun 2007 23:44:54 +0000 Subject: Crashy bug fixed in recvraw. Also fixed returns on closed socket. --- test/testclnt.lua | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- test/testmesg.lua | 2 +- 2 files changed, 61 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/testclnt.lua b/test/testclnt.lua index 304cfd3..2f4ffad 100644 --- a/test/testclnt.lua +++ b/test/testclnt.lua @@ -498,7 +498,63 @@ remote(string.format([[ end ------------------------------------------------------------------------ - +function test_readafterclose() + local back, partial, err + local str = 'little string' + reconnect() + pass("trying repeated '*a' pattern") + remote (string.format ([[ + data:send('%s') + data:close() + data = nil + ]], str)) + back, err, partial = data:receive("*a") + assert(back == str, "unexpected data read") + back, err, partial = data:receive("*a") + assert(back == nil and err == "closed", "should have returned 'closed'") + print("ok") + reconnect() + pass("trying active close before '*a'") + remote (string.format ([[ + data:close() + data = nil + ]])) + data:close() + back, err, partial = data:receive("*a") + assert(back == nil and err == "closed", "should have returned 'closed'") + print("ok") + reconnect() + pass("trying active close before '*l'") + remote (string.format ([[ + data:close() + data = nil + ]])) + data:close() + back, err, partial = data:receive() + assert(back == nil and err == "closed", "should have returned 'closed'") + print("ok") + reconnect() + pass("trying active close before raw 1") + remote (string.format ([[ + data:close() + data = nil + ]])) + data:close() + back, err, partial = data:receive(1) + assert(back == nil and err == "closed", "should have returned 'closed'") + print("ok") + reconnect() + pass("trying active close before raw 0") + remote (string.format ([[ + data:close() + data = nil + ]])) + data:close() + back, err, partial = data:receive(0) + assert(back == nil and err == "closed", "should have returned 'closed'") + print("ok") +os.exit() +end test("method registration") test_methods(socket.tcp(), { @@ -541,6 +597,9 @@ test_methods(socket.udp(), { "settimeout" }) +test("testing read after close") +test_readafterclose() + test("select function") test_selectbugs() diff --git a/test/testmesg.lua b/test/testmesg.lua index 04305f4..580693b 100644 --- a/test/testmesg.lua +++ b/test/testmesg.lua @@ -62,7 +62,7 @@ source = smtp.message{ headers = { ["ConTenT-tYpE"] = 'image/png; name="luasocket.png"', ["content-disposition"] = 'attachment; filename="luasocket.png"', - ["content-description"] = 'a beautiful image', + ["content-description"] = 'our logo', ["content-transfer-encoding"] = "BASE64" }, body = ltn12.source.chain( -- cgit v1.2.3-55-g6feb