From 9fd6b8960a32eba78e5092b945b57c57cc184897 Mon Sep 17 00:00:00 2001 From: Roman Tsisyk <roman@tsisyk.com> Date: Mon, 15 Dec 2014 18:01:53 +0300 Subject: [PATCH] Follow up #658 fixes --- src/lua/bsdsocket.lua | 2 +- test/box/bsdsocket.result | 6 +++--- test/box/bsdsocket.test | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lua/bsdsocket.lua b/src/lua/bsdsocket.lua index 266e2aad60..0b705fee46 100644 --- a/src/lua/bsdsocket.lua +++ b/src/lua/bsdsocket.lua @@ -584,7 +584,7 @@ local function readline_check(self, eols, limit) end end if shortest == nil and #rbuf >= limit then - return string.sub(rbuf, limit) + return string.sub(rbuf, 1, limit) end return shortest end diff --git a/test/box/bsdsocket.result b/test/box/bsdsocket.result index 1b58940408..b9c1304207 100644 --- a/test/box/bsdsocket.result +++ b/test/box/bsdsocket.result @@ -1120,13 +1120,13 @@ lua server:close() --- - true ... -lua body = "a 10\nb 15\nx" +lua body = "a 10\nb 15\nabc" --- ... lua remaining = #body --- ... -lua server = box.socket.tcp_server("unix/", "%s", function(s) s:write(body) s:read() end) +lua server = box.socket.tcp_server("unix/", "%s", function(s) s:write(body) s:read(100500) end) --- ... lua client = box.socket.tcp_connect("unix/", "%s") @@ -1155,7 +1155,7 @@ lua remaining = remaining - #buf lua buf = client:read({ size = remaining, delimiter = "[\r\n]+"}) --- ... -lua buf == "x" +lua buf == "abc" --- - true ... diff --git a/test/box/bsdsocket.test b/test/box/bsdsocket.test index 706061dd31..9e3c7454ef 100644 --- a/test/box/bsdsocket.test +++ b/test/box/bsdsocket.test @@ -361,9 +361,9 @@ exec admin "lua client:close()" exec admin "lua server:close()" ## gh-658: socket:read() incorrectly handles size and delimiter together -exec admin 'lua body = "a 10\\nb 15\\nx"' +exec admin 'lua body = "a 10\\nb 15\\nabc"' exec admin 'lua remaining = #body' -exec admin 'lua server = box.socket.tcp_server("unix/", "%s", function(s) s:write(body) s:read() end)'.format(path) +exec admin 'lua server = box.socket.tcp_server("unix/", "%s", function(s) s:write(body) s:read(100500) end)'.format(path) exec admin 'lua client = box.socket.tcp_connect("unix/", "%s")'.format(path) exec admin 'lua buf = client:read({ size = remaining, delimiter = "[\\r\\n]+"})' exec admin 'lua buf == "a 10\\n"' @@ -372,7 +372,7 @@ exec admin 'lua buf = client:read({ size = remaining, delimiter = "[\\r\\n]+"})' exec admin 'lua buf == "b 15\\n"' exec admin 'lua remaining = remaining - #buf' exec admin 'lua buf = client:read({ size = remaining, delimiter = "[\\r\\n]+"})' -exec admin 'lua buf == "x"' +exec admin 'lua buf == "abc"' exec admin 'lua remaining = remaining - #buf' exec admin 'lua remaining == 0' exec admin 'lua buf = client:read({ size = remaining, delimiter = "[\\r\\n]+"})' -- GitLab