diff options
Diffstat (limited to 'test/resolv')
-rw-r--r-- | test/resolv/test_dns.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/resolv/test_dns.rb b/test/resolv/test_dns.rb index 9a9c33ea84..3fce206c6b 100644 --- a/test/resolv/test_dns.rb +++ b/test/resolv/test_dns.rb @@ -105,6 +105,30 @@ class TestResolvDNS < Test::Unit::TestCase } end + def test_query_ipv4_address_timeout + with_udp('127.0.0.1', 0) {|u| + _, port , _, host = u.addr + start = nil + rv = Resolv::DNS.open(:nameserver_port => [[host, port]]) {|dns| + dns.timeouts = 0.1 + start = Time.now + dns.getresources("foo.example.org", Resolv::DNS::Resource::IN::A) + } + diff = Time.now - start + assert rv.empty?, "unexpected: #{rv.inspect} (expected empty)" + assert_in_delta 0.1, diff, 0.05 + + rv = Resolv::DNS.open(:nameserver_port => [[host, port]]) {|dns| + dns.timeouts = [ 0.1, 0.2 ] + start = Time.now + dns.getresources("foo.example.org", Resolv::DNS::Resource::IN::A) + } + diff = Time.now - start + assert rv.empty?, "unexpected: #{rv.inspect} (expected empty)" + assert_in_delta 0.3, diff, 0.05 + } + end + def test_no_server u = UDPSocket.new u.bind("127.0.0.1", 0) |