summaryrefslogtreecommitdiff
path: root/test/socket/test_tcp.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/socket/test_tcp.rb')
-rw-r--r--test/socket/test_tcp.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/socket/test_tcp.rb b/test/socket/test_tcp.rb
new file mode 100644
index 0000000000..9320164096
--- /dev/null
+++ b/test/socket/test_tcp.rb
@@ -0,0 +1,25 @@
+begin
+ require "socket"
+ require "test/unit"
+rescue LoadError
+end
+
+
+class TestTCPSocket < Test::Unit::TestCase
+ def test_recvfrom # [ruby-dev:24705]
+ svr = TCPServer.new("localhost", 0)
+ Thread.new {
+ s = svr.accept
+ s.print("x"*0x1000)
+ }
+ addr = svr.addr
+ s = TCPSocket.open(addr[2], addr[1])
+ Thread.new {
+ Thread.pass
+ ObjectSpace.each_object(String) {|s|
+ s.replace "a" if s.length == 0x10000
+ }
+ }
+ assert_raise(SocketError) {s.recvfrom(0x10000)}
+ end
+end if defined?(TCPSocket)