summaryrefslogtreecommitdiff
path: root/test/socket/test_tcp.rb
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-28 15:42:09 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-28 15:42:09 +0000
commiteb9f446ebf64dde94f69daa5cdbc2d84ce68eb4d (patch)
treef19b6b36f83c848b1facfb153fb7cf5460794c02 /test/socket/test_tcp.rb
parentb73eaef7a802b0fdbaa5b700e79e6fe477b67efa (diff)
* ext/socket/unixsocket.c (rsock_init_unixsock): Open a socket
after path length check. This fixes a fd leak by TestSocket_UNIXSocket#test_too_long_path. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/socket/test_tcp.rb')
-rw-r--r--test/socket/test_tcp.rb51
1 files changed, 25 insertions, 26 deletions
diff --git a/test/socket/test_tcp.rb b/test/socket/test_tcp.rb
index 73747929e3..7328897d1e 100644
--- a/test/socket/test_tcp.rb
+++ b/test/socket/test_tcp.rb
@@ -45,36 +45,35 @@ class TestSocket_TCPSocket < Test::Unit::TestCase
end
def test_recvfrom
- svr = TCPServer.new("localhost", 0)
- th = Thread.new {
- c = svr.accept
- c.write "foo"
- c.close
+ TCPServer.open("localhost", 0) {|svr|
+ th = Thread.new {
+ c = svr.accept
+ c.write "foo"
+ c.close
+ }
+ addr = svr.addr
+ TCPSocket.open(addr[3], addr[1]) {|sock|
+ assert_equal(["foo", nil], sock.recvfrom(0x10000))
+ }
+ th.join
}
- addr = svr.addr
- sock = TCPSocket.open(addr[3], addr[1])
- assert_equal(["foo", nil], sock.recvfrom(0x10000))
- ensure
- th.kill if th
- th.join if th
end
def test_encoding
- svr = TCPServer.new("localhost", 0)
- th = Thread.new {
- c = svr.accept
- c.write "foo\r\n"
- c.close
+ TCPServer.open("localhost", 0) {|svr|
+ th = Thread.new {
+ c = svr.accept
+ c.write "foo\r\n"
+ c.close
+ }
+ addr = svr.addr
+ TCPSocket.open(addr[3], addr[1]) {|sock|
+ assert_equal(true, sock.binmode?)
+ s = sock.gets
+ assert_equal("foo\r\n", s)
+ assert_equal(Encoding.find("ASCII-8BIT"), s.encoding)
+ }
+ th.join
}
- addr = svr.addr
- sock = TCPSocket.open(addr[3], addr[1])
- assert_equal(true, sock.binmode?)
- s = sock.gets
- assert_equal("foo\r\n", s)
- assert_equal(Encoding.find("ASCII-8BIT"), s.encoding)
- ensure
- th.kill if th
- th.join if th
- sock.close if sock
end
end if defined?(TCPSocket)