diff options
Diffstat (limited to 'net/dns/host_resolver_impl_unittest.cc')
-rw-r--r-- | net/dns/host_resolver_impl_unittest.cc | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/net/dns/host_resolver_impl_unittest.cc b/net/dns/host_resolver_impl_unittest.cc index d71db2f..9a886a7 100644 --- a/net/dns/host_resolver_impl_unittest.cc +++ b/net/dns/host_resolver_impl_unittest.cc @@ -899,7 +899,8 @@ TEST_F(HostResolverImplTest, BypassCache) { EXPECT_EQ(2u, proc_->GetCaptureList().size()); } -// Test that IP address changes flush the cache. +// Test that IP address changes flush the cache but initial DNS config reads do +// not. TEST_F(HostResolverImplTest, FlushCacheOnIPAddressChange) { proc_->SignalMultiple(2u); // One before the flush, one after. @@ -910,6 +911,11 @@ TEST_F(HostResolverImplTest, FlushCacheOnIPAddressChange) { req = CreateRequest("host1", 75); EXPECT_EQ(OK, req->Resolve()); // Should complete synchronously. + // Verify initial DNS config read does not flush cache. + NetworkChangeNotifier::NotifyObserversOfInitialDNSConfigReadForTests(); + req = CreateRequest("host1", 75); + EXPECT_EQ(OK, req->Resolve()); // Should complete synchronously. + // Flush cache by triggering an IP address change. NetworkChangeNotifier::NotifyObserversOfIPAddressChangeForTests(); base::MessageLoop::current()->RunUntilIdle(); // Notification happens async. @@ -936,6 +942,20 @@ TEST_F(HostResolverImplTest, AbortOnIPAddressChanged) { EXPECT_EQ(0u, resolver_->GetHostCache()->size()); } +// Test that initial DNS config read signals do not abort pending requests. +TEST_F(HostResolverImplTest, DontAbortOnInitialDNSConfigRead) { + Request* req = CreateRequest("host1", 70); + EXPECT_EQ(ERR_IO_PENDING, req->Resolve()); + + EXPECT_TRUE(proc_->WaitFor(1u)); + // Triggering initial DNS config read signal. + NetworkChangeNotifier::NotifyObserversOfInitialDNSConfigReadForTests(); + base::MessageLoop::current()->RunUntilIdle(); // Notification happens async. + proc_->SignalAll(); + + EXPECT_EQ(OK, req->WaitForResult()); +} + // Obey pool constraints after IP address has changed. TEST_F(HostResolverImplTest, ObeyPoolConstraintsAfterIPAddressChange) { // Runs at most one job at a time. |