Bug #14571 » add-failing-tests.patch
| test/resolv/test_dns.rb (working copy) | ||
|---|---|---|
|
require 'resolv'
|
||
|
require 'socket'
|
||
|
require 'tempfile'
|
||
|
require 'timeout'
|
||
|
require 'minitest/mock'
|
||
|
class TestResolvDNS < Test::Unit::TestCase
|
||
|
def setup
|
||
| ... | ... | |
|
}
|
||
|
assert_operator(2**14, :<, m.to_s.length)
|
||
|
end
|
||
|
def test_timeout_without_leaking_file_descriptors_connected
|
||
|
socket = nil
|
||
|
bind_random_port = lambda do |udpsock, bind_host="0.0.0.0"|
|
||
|
socket = udpsock
|
||
|
sleep 3
|
||
|
end
|
||
|
Resolv::DNS.stub(:bind_random_port, bind_random_port) do
|
||
|
r = Resolv::DNS.new(nameserver_port: [['127.0.0.1', 53]])
|
||
|
begin
|
||
|
Timeout.timeout(0.5) { r.getname("8.8.8.8") }
|
||
|
rescue Timeout::Error
|
||
|
end
|
||
|
end
|
||
|
assert(socket.closed?, "file descriptor leaked")
|
||
|
end
|
||
|
def test_timeout_without_leaking_file_descriptors_unconnected
|
||
|
socket = nil
|
||
|
bind_random_port = lambda do |udpsock, bind_host="0.0.0.0"|
|
||
|
socket = udpsock
|
||
|
sleep 3
|
||
|
end
|
||
|
Resolv::DNS.stub(:bind_random_port, bind_random_port) do
|
||
|
r = Resolv::DNS.new
|
||
|
begin
|
||
|
Timeout.timeout(0.5) { r.getname("8.8.8.8") }
|
||
|
rescue Timeout::Error
|
||
|
end
|
||
|
end
|
||
|
assert(socket.closed?, "file descriptor leaked")
|
||
|
end
|
||
|
end
|
||