diff --git a/test/box/bsdsocket.result b/test/box/bsdsocket.result
index a1443a1f7c75967785d3aede83d33a1525b9dead..ed1c49e1642f90abf06db144c852ee19c2146e9e 100644
--- a/test/box/bsdsocket.result
+++ b/test/box/bsdsocket.result
@@ -1207,3 +1207,34 @@ os.remove(path)
 ---
 - true
 ...
+longstring = string.rep("abc", 65535)
+---
+...
+server = socket.tcp_server('unix/', path, function(s) s:write(longstring) end)
+---
+...
+client = socket.tcp_connect('unix/', path)
+---
+...
+client:read(#longstring) == longstring
+---
+- true
+...
+client = socket.tcp_connect('unix/', path)
+---
+...
+client:read(#longstring + 1) == longstring
+---
+- true
+...
+client = socket.tcp_connect('unix/', path)
+---
+...
+client:read(#longstring - 1) == string.sub(longstring, 1, #longstring - 1)
+---
+- true
+...
+os.remove(path)
+---
+- true
+...
diff --git a/test/box/bsdsocket.test.lua b/test/box/bsdsocket.test.lua
index 1d51a54a7a2b01499f2bde878b73478597871901..2c6cd38cdc0f9902b6e5826a34fa5f4dac14d513 100644
--- a/test/box/bsdsocket.test.lua
+++ b/test/box/bsdsocket.test.lua
@@ -390,17 +390,29 @@ os.remove(path)
 
 
 server = socket.tcp_server('unix/', path, function(s) s:write('Hello, world') end)
-
 server ~= nil
-
 fiber.sleep(.5)
+client = socket.tcp_connect('unix/', path)
+client ~= nil
+client:read(123)
+server:stop()
+os.remove(path)
+
+
+longstring = string.rep("abc", 65535)
+
+server = socket.tcp_server('unix/', path, function(s) s:write(longstring) end)
 
 client = socket.tcp_connect('unix/', path)
+client:read(#longstring) == longstring
+
+client = socket.tcp_connect('unix/', path)
+client:read(#longstring + 1) == longstring
+
+client = socket.tcp_connect('unix/', path)
+client:read(#longstring - 1) == string.sub(longstring, 1, #longstring - 1)
 
-client ~= nil
 
-client:read(123)
 
-server:stop()
 
 os.remove(path)