diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-10-09 23:52:23 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-10-09 23:52:23 +0000 |
commit | 38e6235235a556dfa28175b541a3cd42b480a319 (patch) | |
tree | ca07b6c466c401bc9559d9b6810d115c34f8c4cb /test | |
parent | 24e5e374107bfa02bd9dda971067cb34473e265e (diff) | |
download | ruby-38e6235235a556dfa28175b541a3cd42b480a319.tar.gz |
udpsocket.c: memory leaks
* ext/socket/udpsocket.c (udp_connect, udp_bind, udp_send): fix
memory leaks at closed socket.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/socket/test_udp.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/socket/test_udp.rb b/test/socket/test_udp.rb index 7d28ec2628..56933375d7 100644 --- a/test/socket/test_udp.rb +++ b/test/socket/test_udp.rb @@ -69,4 +69,31 @@ class TestSocket_UDPSocket < Test::Unit::TestCase ensure u.close if u end + + def test_bind_no_memory_leak + assert_no_memory_leak(["-rsocket"], <<-"end;", <<-"end;", rss: true) + s = UDPSocket.new + s.close + end; + 100_000.times {begin s.bind("127.0.0.1", 1) rescue IOError; end} + end; + end + + def test_connect_no_memory_leak + assert_no_memory_leak(["-rsocket"], <<-"end;", <<-"end;", rss: true) + s = UDPSocket.new + s.close + end; + 100_000.times {begin s.connect("127.0.0.1", 1) rescue IOError; end} + end; + end + + def test_send_no_memory_leak + assert_no_memory_leak(["-rsocket"], <<-"end;", <<-"end;", rss: true) + s = UDPSocket.new + s.close + end; + 100_000.times {begin s.send("\0"*100, 0, "127.0.0.1", 1) rescue IOError; end} + end; + end end if defined?(UDPSocket) |