Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(480)

Unified Diff: net/dns/host_resolver_impl_unittest.cc

Issue 1163903002: Remove "Default Address Family" behavior from the HostResolver. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: No need for protected Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/dns/host_resolver_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/dns/host_resolver_impl_unittest.cc
diff --git a/net/dns/host_resolver_impl_unittest.cc b/net/dns/host_resolver_impl_unittest.cc
index 9166350121612230cce81d872c16a364793492ec..2b5c6e3a876728a3fe081b32514108a824813e49 100644
--- a/net/dns/host_resolver_impl_unittest.cc
+++ b/net/dns/host_resolver_impl_unittest.cc
@@ -416,6 +416,17 @@ class LookupAttemptHostResolverProc : public HostResolverProc {
base::ConditionVariable all_done_;
};
+class TestHostResolverImpl : public HostResolverImpl {
pauljensen 2015/06/03 16:26:06 How about adding a comment mentioning that use of
cbentzel 2015/06/03 22:58:08 Done.
+ public:
+ TestHostResolverImpl(const Options& options, NetLog* net_log)
+ : HostResolverImpl(options, net_log) {}
+
+ ~TestHostResolverImpl() override {}
+
+ private:
+ bool IsIPv6Reachable(const BoundNetLog& net_log) override { return true; }
+};
+
} // namespace
class HostResolverImplTest : public testing::Test {
@@ -474,7 +485,7 @@ class HostResolverImplTest : public testing::Test {
const HostResolverImpl::ProcTaskParams& params) {
HostResolverImpl::Options options = DefaultOptions();
options.max_concurrent_resolves = max_concurrent_resolves;
- resolver_.reset(new HostResolverImpl(options, NULL));
+ resolver_.reset(new TestHostResolverImpl(options, NULL));
resolver_->set_proc_params_for_test(params);
}
@@ -854,7 +865,7 @@ TEST_F(HostResolverImplTest, StartWithinCallback) {
// Turn off caching for this host resolver.
HostResolver::Options options = DefaultOptions();
options.enable_caching = false;
- resolver_.reset(new HostResolverImpl(options, NULL));
+ resolver_.reset(new TestHostResolverImpl(options, NULL));
resolver_->set_proc_params_for_test(DefaultParams(proc_.get()));
for (size_t i = 0; i < 4; ++i) {
@@ -1176,100 +1187,6 @@ TEST_F(HostResolverImplTest, QueueOverflow) {
}
}
-// Tests that after changing the default AddressFamily to IPV4, requests
-// with UNSPECIFIED address family map to IPV4.
-TEST_F(HostResolverImplTest, SetDefaultAddressFamily_IPv4) {
- CreateSerialResolver(); // To guarantee order of resolutions.
-
- proc_->AddRule("h1", ADDRESS_FAMILY_IPV4, "1.0.0.1");
- proc_->AddRule("h1", ADDRESS_FAMILY_IPV6, "::2");
-
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_IPV4);
-
- CreateRequest("h1", 80, MEDIUM, ADDRESS_FAMILY_UNSPECIFIED);
- CreateRequest("h1", 80, MEDIUM, ADDRESS_FAMILY_IPV4);
- CreateRequest("h1", 80, MEDIUM, ADDRESS_FAMILY_IPV6);
-
- // Start all of the requests.
- for (size_t i = 0; i < requests_.size(); ++i) {
- EXPECT_EQ(ERR_IO_PENDING, requests_[i]->Resolve()) << i;
- }
-
- proc_->SignalMultiple(requests_.size());
-
- // Wait for all the requests to complete.
- for (size_t i = 0u; i < requests_.size(); ++i) {
- EXPECT_EQ(OK, requests_[i]->WaitForResult()) << i;
- }
-
- // Since the requests all had the same priority and we limited the thread
- // count to 1, they should have completed in the same order as they were
- // requested. Moreover, request0 and request1 will have been serviced by
- // the same job.
-
- MockHostResolverProc::CaptureList capture_list = proc_->GetCaptureList();
- ASSERT_EQ(2u, capture_list.size());
-
- EXPECT_EQ("h1", capture_list[0].hostname);
- EXPECT_EQ(ADDRESS_FAMILY_IPV4, capture_list[0].address_family);
-
- EXPECT_EQ("h1", capture_list[1].hostname);
- EXPECT_EQ(ADDRESS_FAMILY_IPV6, capture_list[1].address_family);
-
- // Now check that the correct resolved IP addresses were returned.
- EXPECT_TRUE(requests_[0]->HasOneAddress("1.0.0.1", 80));
- EXPECT_TRUE(requests_[1]->HasOneAddress("1.0.0.1", 80));
- EXPECT_TRUE(requests_[2]->HasOneAddress("::2", 80));
-}
-
-// This is the exact same test as SetDefaultAddressFamily_IPv4, except the
-// default family is set to IPv6 and the family of requests is flipped where
-// specified.
-TEST_F(HostResolverImplTest, SetDefaultAddressFamily_IPv6) {
- CreateSerialResolver(); // To guarantee order of resolutions.
-
- // Don't use IPv6 replacements here since some systems don't support it.
- proc_->AddRule("h1", ADDRESS_FAMILY_IPV4, "1.0.0.1");
- proc_->AddRule("h1", ADDRESS_FAMILY_IPV6, "::2");
-
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_IPV6);
-
- CreateRequest("h1", 80, MEDIUM, ADDRESS_FAMILY_UNSPECIFIED);
- CreateRequest("h1", 80, MEDIUM, ADDRESS_FAMILY_IPV6);
- CreateRequest("h1", 80, MEDIUM, ADDRESS_FAMILY_IPV4);
-
- // Start all of the requests.
- for (size_t i = 0; i < requests_.size(); ++i) {
- EXPECT_EQ(ERR_IO_PENDING, requests_[i]->Resolve()) << i;
- }
-
- proc_->SignalMultiple(requests_.size());
-
- // Wait for all the requests to complete.
- for (size_t i = 0u; i < requests_.size(); ++i) {
- EXPECT_EQ(OK, requests_[i]->WaitForResult()) << i;
- }
-
- // Since the requests all had the same priority and we limited the thread
- // count to 1, they should have completed in the same order as they were
- // requested. Moreover, request0 and request1 will have been serviced by
- // the same job.
-
- MockHostResolverProc::CaptureList capture_list = proc_->GetCaptureList();
- ASSERT_EQ(2u, capture_list.size());
-
- EXPECT_EQ("h1", capture_list[0].hostname);
- EXPECT_EQ(ADDRESS_FAMILY_IPV6, capture_list[0].address_family);
-
- EXPECT_EQ("h1", capture_list[1].hostname);
- EXPECT_EQ(ADDRESS_FAMILY_IPV4, capture_list[1].address_family);
-
- // Now check that the correct resolved IP addresses were returned.
- EXPECT_TRUE(requests_[0]->HasOneAddress("::2", 80));
- EXPECT_TRUE(requests_[1]->HasOneAddress("::2", 80));
- EXPECT_TRUE(requests_[2]->HasOneAddress("1.0.0.1", 80));
-}
-
// Make sure that the address family parameter is respected when raw IPs are
// passed in.
TEST_F(HostResolverImplTest, AddressFamilyWithRawIPs) {
@@ -1336,7 +1253,7 @@ TEST_F(HostResolverImplTest, MultipleAttempts) {
// (500ms * 3).
params.unresponsive_delay = base::TimeDelta::FromMilliseconds(500);
- resolver_.reset(new HostResolverImpl(DefaultOptions(), NULL));
+ resolver_.reset(new TestHostResolverImpl(DefaultOptions(), NULL));
resolver_->set_proc_params_for_test(params);
// Resolve "host1".
@@ -1403,6 +1320,8 @@ TEST_F(HostResolverImplTest, NameCollision127_0_53_53) {
}
TEST_F(HostResolverImplTest, IsIPv6Reachable) {
+ // We need to use the real resolver here.
+ resolver_.reset(new HostResolverImpl(DefaultOptions(), nullptr));
// Verify that two consecutive calls return the same value.
TestNetLog net_log;
BoundNetLog bound_net_log = BoundNetLog::Make(&net_log, NetLog::SOURCE_NONE);
@@ -1492,10 +1411,8 @@ class HostResolverImplDnsTest : public HostResolverImplTest {
const HostResolverImpl::ProcTaskParams& params) override {
HostResolverImpl::Options options = DefaultOptions();
options.max_concurrent_resolves = max_concurrent_resolves;
- resolver_.reset(new HostResolverImpl(options, NULL));
+ resolver_.reset(new TestHostResolverImpl(options, NULL));
resolver_->set_proc_params_for_test(params);
- // Disable IPv6 support probing.
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_UNSPECIFIED);
dns_client_ = new MockDnsClient(DnsConfig(), dns_rules_);
resolver_->SetDnsClient(scoped_ptr<DnsClient>(dns_client_));
}
@@ -1525,8 +1442,6 @@ class HostResolverImplDnsTest : public HostResolverImplTest {
// Test successful and fallback resolutions in HostResolverImpl::DnsTask.
TEST_F(HostResolverImplDnsTest, DnsTask) {
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_IPV4);
-
proc_->AddRuleForAllFamilies("nx_succeed", "192.168.1.102");
// All other hostnames will fail in proc_.
@@ -1538,9 +1453,12 @@ TEST_F(HostResolverImplDnsTest, DnsTask) {
ChangeDnsConfig(CreateValidDnsConfig());
- EXPECT_EQ(ERR_IO_PENDING, CreateRequest("ok_fail", 80)->Resolve());
- EXPECT_EQ(ERR_IO_PENDING, CreateRequest("nx_fail", 80)->Resolve());
- EXPECT_EQ(ERR_IO_PENDING, CreateRequest("nx_succeed", 80)->Resolve());
+ EXPECT_EQ(ERR_IO_PENDING,
+ CreateRequest("ok_fail", 80, IDLE, ADDRESS_FAMILY_IPV4)->Resolve());
pauljensen 2015/06/03 16:26:06 Any particular reason you changed the priority fro
cbentzel 2015/06/03 22:58:08 Fewer characters to type. I'll change to MEDIUM si
+ EXPECT_EQ(ERR_IO_PENDING,
+ CreateRequest("nx_fail", 80, IDLE, ADDRESS_FAMILY_IPV4)->Resolve());
+ EXPECT_EQ(ERR_IO_PENDING, CreateRequest("nx_succeed", 80, IDLE,
+ ADDRESS_FAMILY_IPV4)->Resolve());
proc_->SignalMultiple(requests_.size());
@@ -1559,7 +1477,6 @@ TEST_F(HostResolverImplDnsTest, DnsTask) {
// Test successful and failing resolutions in HostResolverImpl::DnsTask when
// fallback to ProcTask is disabled.
TEST_F(HostResolverImplDnsTest, NoFallbackToProcTask) {
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_IPV4);
set_fallback_to_proctask(false);
proc_->AddRuleForAllFamilies("nx_succeed", "192.168.1.102");
@@ -1579,8 +1496,10 @@ TEST_F(HostResolverImplDnsTest, NoFallbackToProcTask) {
ChangeDnsConfig(CreateValidDnsConfig());
- EXPECT_EQ(ERR_IO_PENDING, CreateRequest("ok_abort", 80)->Resolve());
- EXPECT_EQ(ERR_IO_PENDING, CreateRequest("nx_abort", 80)->Resolve());
+ EXPECT_EQ(ERR_IO_PENDING, CreateRequest("ok_abort", 80, IDLE,
+ ADDRESS_FAMILY_IPV4)->Resolve());
+ EXPECT_EQ(ERR_IO_PENDING, CreateRequest("nx_abort", 80, IDLE,
+ ADDRESS_FAMILY_IPV4)->Resolve());
// Simulate the case when the preference or policy has disabled the DNS client
// causing AbortDnsTasks.
@@ -1590,8 +1509,10 @@ TEST_F(HostResolverImplDnsTest, NoFallbackToProcTask) {
// First request is resolved by MockDnsClient, others should fail due to
// disabled fallback to ProcTask.
- EXPECT_EQ(ERR_IO_PENDING, CreateRequest("ok_fail", 80)->Resolve());
- EXPECT_EQ(ERR_IO_PENDING, CreateRequest("nx_fail", 80)->Resolve());
+ EXPECT_EQ(ERR_IO_PENDING,
+ CreateRequest("ok_fail", 80, IDLE, ADDRESS_FAMILY_IPV4)->Resolve());
+ EXPECT_EQ(ERR_IO_PENDING,
+ CreateRequest("nx_fail", 80, IDLE, ADDRESS_FAMILY_IPV4)->Resolve());
proc_->SignalMultiple(requests_.size());
// Aborted due to Network Change.
@@ -1606,7 +1527,6 @@ TEST_F(HostResolverImplDnsTest, NoFallbackToProcTask) {
// Test behavior of OnDnsTaskFailure when Job is aborted.
TEST_F(HostResolverImplDnsTest, OnDnsTaskFailureAbortedJob) {
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_IPV4);
ChangeDnsConfig(CreateValidDnsConfig());
EXPECT_EQ(ERR_IO_PENDING, CreateRequest("nx_abort", 80)->Resolve());
// Abort all jobs here.
@@ -1618,7 +1538,6 @@ TEST_F(HostResolverImplDnsTest, OnDnsTaskFailureAbortedJob) {
EXPECT_EQ(ERR_IO_PENDING, requests_[0]->result());
// Repeat test with Fallback to ProcTask disabled
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_IPV4);
set_fallback_to_proctask(false);
ChangeDnsConfig(CreateValidDnsConfig());
EXPECT_EQ(ERR_IO_PENDING, CreateRequest("nx_abort", 80)->Resolve());
@@ -1823,12 +1742,11 @@ TEST_F(HostResolverImplDnsTest, DontDisableDnsClientOnSporadicFailure) {
TEST_F(HostResolverImplDnsTest, DualFamilyLocalhost) {
// Use regular SystemHostResolverCall!
scoped_refptr<HostResolverProc> proc(new SystemHostResolverProc());
- resolver_.reset(new HostResolverImpl(DefaultOptions(), NULL));
+ resolver_.reset(new TestHostResolverImpl(DefaultOptions(), NULL));
resolver_->set_proc_params_for_test(DefaultParams(proc.get()));
resolver_->SetDnsClient(
scoped_ptr<DnsClient>(new MockDnsClient(DnsConfig(), dns_rules_)));
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_IPV4);
pauljensen 2015/06/03 16:26:06 By removing this, have you stopped this test from
cbentzel 2015/06/03 22:58:08 Great catch. I noticed on my machine that localh
cbentzel 2015/06/04 13:06:42 OK, I looked at this some more. The old version o
// Get the expected output.
AddressList addrlist;
@@ -1882,10 +1800,10 @@ TEST_F(HostResolverImplDnsTest, DualFamilyLocalhost) {
// Cancel a request with a single DNS transaction active.
TEST_F(HostResolverImplDnsTest, CancelWithOneTransactionActive) {
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_IPV4);
ChangeDnsConfig(CreateValidDnsConfig());
- EXPECT_EQ(ERR_IO_PENDING, CreateRequest("ok", 80)->Resolve());
+ EXPECT_EQ(ERR_IO_PENDING,
+ CreateRequest("ok", 80, IDLE, ADDRESS_FAMILY_IPV4)->Resolve());
EXPECT_EQ(1u, num_running_dispatcher_jobs());
requests_[0]->Cancel();
@@ -1895,7 +1813,6 @@ TEST_F(HostResolverImplDnsTest, CancelWithOneTransactionActive) {
// Cancel a request with a single DNS transaction active and another pending.
TEST_F(HostResolverImplDnsTest, CancelWithOneTransactionActiveOnePending) {
CreateSerialResolver();
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_UNSPECIFIED);
ChangeDnsConfig(CreateValidDnsConfig());
EXPECT_EQ(ERR_IO_PENDING, CreateRequest("ok", 80)->Resolve());
@@ -1907,7 +1824,6 @@ TEST_F(HostResolverImplDnsTest, CancelWithOneTransactionActiveOnePending) {
// Cancel a request with two DNS transactions active.
TEST_F(HostResolverImplDnsTest, CancelWithTwoTransactionsActive) {
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_UNSPECIFIED);
ChangeDnsConfig(CreateValidDnsConfig());
EXPECT_EQ(ERR_IO_PENDING, CreateRequest("ok", 80)->Resolve());
@@ -1922,7 +1838,6 @@ TEST_F(HostResolverImplDnsTest, DeleteWithActiveTransactions) {
// At most 10 Jobs active at once.
CreateResolverWithLimitsAndParams(10u, DefaultParams(proc_.get()));
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_UNSPECIFIED);
ChangeDnsConfig(CreateValidDnsConfig());
// First active job is an IPv4 request.
@@ -1943,7 +1858,6 @@ TEST_F(HostResolverImplDnsTest, DeleteWithActiveTransactions) {
// Cancel a request with only the IPv6 transaction active.
TEST_F(HostResolverImplDnsTest, CancelWithIPv6TransactionActive) {
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_UNSPECIFIED);
ChangeDnsConfig(CreateValidDnsConfig());
EXPECT_EQ(ERR_IO_PENDING, CreateRequest("6slow_ok", 80)->Resolve());
@@ -1960,7 +1874,6 @@ TEST_F(HostResolverImplDnsTest, CancelWithIPv6TransactionActive) {
// Cancel a request with only the IPv4 transaction pending.
TEST_F(HostResolverImplDnsTest, CancelWithIPv4TransactionPending) {
set_fallback_to_proctask(false);
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_UNSPECIFIED);
ChangeDnsConfig(CreateValidDnsConfig());
EXPECT_EQ(ERR_IO_PENDING, CreateRequest("4slow_ok", 80)->Resolve());
@@ -1976,7 +1889,6 @@ TEST_F(HostResolverImplDnsTest, CancelWithIPv4TransactionPending) {
// Test cases where AAAA completes first.
TEST_F(HostResolverImplDnsTest, AAAACompletesFirst) {
set_fallback_to_proctask(false);
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_UNSPECIFIED);
ChangeDnsConfig(CreateValidDnsConfig());
EXPECT_EQ(ERR_IO_PENDING, CreateRequest("4slow_ok", 80)->Resolve());
@@ -2014,7 +1926,6 @@ TEST_F(HostResolverImplDnsTest, AAAACompletesFirst) {
TEST_F(HostResolverImplDnsTest, SerialResolver) {
CreateSerialResolver();
set_fallback_to_proctask(false);
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_UNSPECIFIED);
ChangeDnsConfig(CreateValidDnsConfig());
EXPECT_EQ(ERR_IO_PENDING, CreateRequest("ok", 80)->Resolve());
@@ -2033,7 +1944,6 @@ TEST_F(HostResolverImplDnsTest, SerialResolver) {
TEST_F(HostResolverImplDnsTest, AAAAStartsAfterOtherJobFinishes) {
CreateResolverWithLimitsAndParams(2u, DefaultParams(proc_.get()));
set_fallback_to_proctask(false);
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_UNSPECIFIED);
ChangeDnsConfig(CreateValidDnsConfig());
EXPECT_EQ(ERR_IO_PENDING, CreateRequest("ok", 80, MEDIUM,
@@ -2092,7 +2002,6 @@ TEST_F(HostResolverImplDnsTest, InvalidDnsConfigWithPendingRequests) {
// prioritized dispatcher slot.
CreateResolverWithLimitsAndParams(3u, DefaultParams(proc_.get()));
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_UNSPECIFIED);
ChangeDnsConfig(CreateValidDnsConfig());
proc_->AddRuleForAllFamilies("slow_nx1", "192.168.0.1");
@@ -2133,7 +2042,6 @@ TEST_F(HostResolverImplDnsTest,
for (size_t limit = 1u; limit < 6u; ++limit) {
CreateResolverWithLimitsAndParams(limit, DefaultParams(proc_.get()));
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_UNSPECIFIED);
ChangeDnsConfig(CreateValidDnsConfig());
// Queue up enough failures to disable DnsTasks. These will all fall back
@@ -2180,7 +2088,6 @@ TEST_F(HostResolverImplDnsTest, ManuallyDisableDnsClientWithPendingRequests) {
// prioritized dispatcher slot.
CreateResolverWithLimitsAndParams(3u, DefaultParams(proc_.get()));
- resolver_->SetDefaultAddressFamily(ADDRESS_FAMILY_UNSPECIFIED);
ChangeDnsConfig(CreateValidDnsConfig());
proc_->AddRuleForAllFamilies("slow_ok1", "192.168.0.1");
« no previous file with comments | « net/dns/host_resolver_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698