| 
					
				 | 
			
			
				@@ -31,8 +31,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include "test/core/util/test_config.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 constexpr int kMinResolutionPeriodMs = 1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// Provide some slack when checking intervals, to allow for test timing issues. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-constexpr int kMinResolutionPeriodForCheckMs = 900; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 extern grpc_address_resolver_vtable* grpc_resolve_address_impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static grpc_address_resolver_vtable* default_resolve_address; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -76,9 +74,16 @@ static void test_resolve_address_impl(const char* name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     grpc_millis now = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         grpc_timespec_to_millis_round_up(gpr_now(GPR_CLOCK_MONOTONIC)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    GPR_ASSERT(now - last_resolution_time >= kMinResolutionPeriodForCheckMs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPR_ASSERT(now - last_resolution_time >= kMinResolutionPeriodMs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     last_resolution_time = now; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // For correct time diff comparisons, make sure that any subsequent calls 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // to grpc_core::ExecCtx::Get()->Now() on this thread don't return a time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // which is earlier than that returned by the call(s) to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // gpr_now(GPR_CLOCK_MONOTONIC) within this function. This is important 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // because the resolver's last_resolution_timestamp_ will be taken from 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // grpc_core::ExecCtx::Get()->Now() right after this returns. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grpc_core::ExecCtx::Get()->InvalidateNow(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static grpc_error* test_blocking_resolve_address_impl( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -109,14 +114,21 @@ static grpc_ares_request* test_dns_lookup_ares_locked( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   gpr_log(GPR_DEBUG, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           "last_resolution_time:%" PRId64 " now:%" PRId64 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           " min_time_between:%d", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          last_resolution_time, now, kMinResolutionPeriodForCheckMs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          last_resolution_time, now, kMinResolutionPeriodMs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (last_resolution_time == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     last_resolution_time = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         grpc_timespec_to_millis_round_up(gpr_now(GPR_CLOCK_MONOTONIC)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    GPR_ASSERT(now - last_resolution_time >= kMinResolutionPeriodForCheckMs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GPR_ASSERT(now - last_resolution_time >= kMinResolutionPeriodMs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     last_resolution_time = now; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // For correct time diff comparisons, make sure that any subsequent calls 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // to grpc_core::ExecCtx::Get()->Now() on this thread don't return a time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // which is earlier than that returned by the call(s) to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // gpr_now(GPR_CLOCK_MONOTONIC) within this function. This is important 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // because the resolver's last_resolution_timestamp_ will be taken from 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // grpc_core::ExecCtx::Get()->Now() right after this returns. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grpc_core::ExecCtx::Get()->InvalidateNow(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |