@@ -828,6 +828,19 @@ public void handleEdsResource_noHealthyEndpoint() {
828828
829829 @ Test
830830 public void onlyLogicalDnsCluster_endpointsResolved () {
831+ do_onlyLogicalDnsCluster_endpointsResolved (false );
832+ }
833+
834+ @ Test
835+ public void oldListenerCallback_onlyLogicalDnsCluster_endpointsResolved () {
836+ do_onlyLogicalDnsCluster_endpointsResolved (true );
837+ }
838+
839+ void do_onlyLogicalDnsCluster_endpointsResolved (boolean useOldListenerCallback ) {
840+ if (useOldListenerCallback ) {
841+ nsRegistry .deregister (fakeNameResolverProvider );
842+ nsRegistry .register (new FakeNameResolverProvider (true ));
843+ }
831844 ClusterResolverConfig config = new ClusterResolverConfig (
832845 Collections .singletonList (logicalDnsDiscoveryMechanism ), roundRobin , false );
833846 deliverLbConfig (config );
@@ -856,42 +869,6 @@ public void onlyLogicalDnsCluster_endpointsResolved() {
856869 .get (XdsAttributes .ATTR_ADDRESS_NAME )).isEqualTo (DNS_HOST_NAME );
857870 assertThat (childBalancer .addresses .get (1 ).getAttributes ()
858871 .get (XdsAttributes .ATTR_ADDRESS_NAME )).isEqualTo (DNS_HOST_NAME );
859-
860- }
861-
862- @ Test
863- public void oldListenerCallback_onlyLogicalDnsCluster_endpointsResolved () {
864- nsRegistry .deregister (fakeNameResolverProvider );
865- nsRegistry .register (new FakeNameResolverProvider (true ));
866- ClusterResolverConfig config = new ClusterResolverConfig (
867- Collections .singletonList (logicalDnsDiscoveryMechanism ), roundRobin , false );
868- deliverLbConfig (config );
869- FakeNameResolver resolver = assertResolverCreated ("/" + DNS_HOST_NAME );
870- assertThat (childBalancers ).isEmpty ();
871- EquivalentAddressGroup endpoint1 = makeAddress ("endpoint-addr-1" );
872- EquivalentAddressGroup endpoint2 = makeAddress ("endpoint-addr-2" );
873- resolver .deliverEndpointAddresses (Arrays .asList (endpoint1 , endpoint2 ));
874-
875- assertThat (childBalancers ).hasSize (1 );
876- FakeLoadBalancer childBalancer = Iterables .getOnlyElement (childBalancers );
877- assertThat (childBalancer .name ).isEqualTo (PRIORITY_POLICY_NAME );
878- PriorityLbConfig priorityLbConfig = (PriorityLbConfig ) childBalancer .config ;
879- String priority = Iterables .getOnlyElement (priorityLbConfig .priorities );
880- PriorityChildConfig priorityChildConfig = priorityLbConfig .childConfigs .get (priority );
881- assertThat (priorityChildConfig .ignoreReresolution ).isFalse ();
882- assertThat (GracefulSwitchLoadBalancerAccessor .getChildProvider (priorityChildConfig .childConfig )
883- .getPolicyName ())
884- .isEqualTo (CLUSTER_IMPL_POLICY_NAME );
885- ClusterImplConfig clusterImplConfig = (ClusterImplConfig )
886- GracefulSwitchLoadBalancerAccessor .getChildConfig (priorityChildConfig .childConfig );
887- assertClusterImplConfig (clusterImplConfig , CLUSTER_DNS , null , LRS_SERVER_INFO , 300L , null ,
888- Collections .<DropOverload >emptyList (), "pick_first" );
889- assertAddressesEqual (Arrays .asList (endpoint1 , endpoint2 ), childBalancer .addresses );
890- assertThat (childBalancer .addresses .get (0 ).getAttributes ()
891- .get (XdsAttributes .ATTR_ADDRESS_NAME )).isEqualTo (DNS_HOST_NAME );
892- assertThat (childBalancer .addresses .get (1 ).getAttributes ()
893- .get (XdsAttributes .ATTR_ADDRESS_NAME )).isEqualTo (DNS_HOST_NAME );
894-
895872 }
896873
897874 @ Test
@@ -911,56 +888,20 @@ public void onlyLogicalDnsCluster_handleRefreshNameResolution() {
911888 }
912889
913890 @ Test
914- public void onlyLogicalDnsCluster_resolutionError_backoffAndRefresh () {
915- InOrder inOrder = Mockito .inOrder (helper , backoffPolicyProvider ,
916- backoffPolicy1 , backoffPolicy2 );
917- ClusterResolverConfig config = new ClusterResolverConfig (
918- Collections .singletonList (logicalDnsDiscoveryMechanism ), roundRobin , false );
919- deliverLbConfig (config );
920- FakeNameResolver resolver = assertResolverCreated ("/" + DNS_HOST_NAME );
921- assertThat (childBalancers ).isEmpty ();
922- Status error = Status .UNAVAILABLE .withDescription ("cannot reach DNS server" );
923- resolver .deliverError (error );
924- inOrder .verify (helper ).updateBalancingState (
925- eq (ConnectivityState .TRANSIENT_FAILURE ), pickerCaptor .capture ());
926- assertPicker (pickerCaptor .getValue (), error , null );
927- assertThat (resolver .refreshCount ).isEqualTo (0 );
928- inOrder .verify (backoffPolicyProvider ).get ();
929- inOrder .verify (backoffPolicy1 ).nextBackoffNanos ();
930- assertThat (fakeClock .getPendingTasks ()).hasSize (1 );
931- assertThat (Iterables .getOnlyElement (fakeClock .getPendingTasks ()).getDelay (TimeUnit .SECONDS ))
932- .isEqualTo (1L );
933- fakeClock .forwardTime (1L , TimeUnit .SECONDS );
934- assertThat (resolver .refreshCount ).isEqualTo (1 );
935-
936- error = Status .UNKNOWN .withDescription ("I am lost" );
937- resolver .deliverError (error );
938- inOrder .verify (helper ).updateBalancingState (
939- eq (ConnectivityState .TRANSIENT_FAILURE ), pickerCaptor .capture ());
940- inOrder .verify (backoffPolicy1 ).nextBackoffNanos ();
941- assertPicker (pickerCaptor .getValue (), error , null );
942- assertThat (fakeClock .getPendingTasks ()).hasSize (1 );
943- assertThat (Iterables .getOnlyElement (fakeClock .getPendingTasks ()).getDelay (TimeUnit .SECONDS ))
944- .isEqualTo (10L );
945- fakeClock .forwardTime (10L , TimeUnit .SECONDS );
946- assertThat (resolver .refreshCount ).isEqualTo (2 );
947-
948- // Succeed.
949- EquivalentAddressGroup endpoint1 = makeAddress ("endpoint-addr-1" );
950- EquivalentAddressGroup endpoint2 = makeAddress ("endpoint-addr-2" );
951- resolver .deliverEndpointAddresses (Arrays .asList (endpoint1 , endpoint2 ));
952- assertThat (childBalancers ).hasSize (1 );
953- assertAddressesEqual (Arrays .asList (endpoint1 , endpoint2 ),
954- Iterables .getOnlyElement (childBalancers ).addresses );
955-
956- assertThat (fakeClock .getPendingTasks ()).isEmpty ();
957- inOrder .verifyNoMoreInteractions ();
891+ public void resolutionError_backoffAndRefresh () {
892+ do_onlyLogicalDnsCluster_resolutionError_backoffAndRefresh (false );
958893 }
959894
960895 @ Test
961- public void oldListenerCallback_onlyLogicalDnsCluster_resolutionError_backoffAndRefresh () {
962- nsRegistry .deregister (fakeNameResolverProvider );
963- nsRegistry .register (new FakeNameResolverProvider (true ));
896+ public void oldListenerCallback_resolutionError_backoffAndRefresh () {
897+ do_onlyLogicalDnsCluster_resolutionError_backoffAndRefresh (true );
898+ }
899+
900+ void do_onlyLogicalDnsCluster_resolutionError_backoffAndRefresh (boolean useOldListenerCallback ) {
901+ if (useOldListenerCallback ) {
902+ nsRegistry .deregister (fakeNameResolverProvider );
903+ nsRegistry .register (new FakeNameResolverProvider (true ));
904+ }
964905 InOrder inOrder = Mockito .inOrder (helper , backoffPolicyProvider ,
965906 backoffPolicy1 , backoffPolicy2 );
966907 ClusterResolverConfig config = new ClusterResolverConfig (
@@ -1497,7 +1438,7 @@ protected void deliverError(Status error) {
14971438
14981439 private final class FakeLoadBalancerProvider extends LoadBalancerProvider {
14991440 private final String policyName ;
1500-
1441+
15011442 FakeLoadBalancerProvider (String policyName ) {
15021443 this .policyName = policyName ;
15031444 }
0 commit comments