fixed flaky related with the cname test (test all dns records in the same way

This commit is contained in:
HoneyryderChuck 2019-10-13 01:45:10 +01:00
parent 933d319b0b
commit a5b65ac78a

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true # frozen_string_literal: true
module ResolverHelpers module ResolverHelpers
include HTTPX
def test_resolver_api def test_resolver_api
assert resolver.respond_to?(:<<) assert resolver.respond_to?(:<<)
assert resolver.respond_to?(:closed?) assert resolver.respond_to?(:closed?)
@ -36,33 +38,31 @@ module ResolverHelpers
assert resolver.respond_to?(:close) assert resolver.respond_to?(:close)
end end
def test_parse_a_record def test_parse_dns_record
return unless resolver.respond_to?(:parse) return unless resolver.respond_to?(:parse)
connection = build_connection("http://ipv4.tlund.se/") connection_a = build_connection("http://ipv4.tlund.se/")
resolver.queries["ipv4.tlund.se"] = connection resolver.queries["ipv4.tlund.se"] = connection_a
resolver.parse(a_record) resolver.parse(a_record)
assert connection.addresses.include?("193.15.228.195") assert connection_a.addresses.include?("193.15.228.195")
end
def test_parse_aaaa_record Resolver.lookups.delete("ipv4.tlund.se")
return unless resolver.respond_to?(:parse)
connection = build_connection("http://ipv6.tlund.se/") connection_aaaa = build_connection("http://ipv6.tlund.se/")
resolver.queries["ipv6.tlund.se"] = connection resolver.queries["ipv6.tlund.se"] = connection_aaaa
resolver.parse(aaaa_record) resolver.parse(aaaa_record)
assert connection.addresses.include?("2a00:801:f::195") assert connection_aaaa.addresses.include?("2a00:801:f::195")
end
def test_parse_cname_record Resolver.lookups.delete("ipv6.tlund.se")
return unless resolver.respond_to?(:parse)
connection = build_connection("http://ipv4c.tlund.se/") connection_cname = build_connection("http://ipv4c.tlund.se/")
resolver.queries["ipv4c.tlund.se"] = connection resolver.queries["ipv4c.tlund.se"] = connection_cname
resolver.parse(cname_record) resolver.parse(cname_record)
assert connection.addresses.nil? assert connection_cname.addresses.nil?
assert !resolver.queries.key?("ipv4c.tlund.se") assert !resolver.queries.key?("ipv4c.tlund.se")
assert resolver.queries.key?("ipv4.tlund.se") assert resolver.queries.key?("ipv4.tlund.se")
Resolver.lookups.delete("ipv4.tlund.se")
end end
def test_append_hostname def test_append_hostname
@ -79,11 +79,11 @@ module ResolverHelpers
def setup def setup
super super
HTTPX::Resolver.purge_lookup_cache Resolver.purge_lookup_cache
end end
def build_connection(uri) def build_connection(uri)
connection = HTTPX::Connection.new("ssl", URI(uri), HTTPX::Options.new) connection = Connection.new("ssl", URI(uri), Options.new)
connection.extend(ConnectionExtensions) connection.extend(ConnectionExtensions)
connection connection
end end
@ -139,6 +139,10 @@ module ResolverHelpers
end end
end end
Resolver.singleton_class.class_eval do
attr_reader :lookups
end
module ConnectionExtensions module ConnectionExtensions
attr_reader :addresses attr_reader :addresses