Skip to content

Commit c39bccf

Browse files
committed
Logically parameterize duplicated tests
1 parent 4a41c19 commit c39bccf

File tree

1 file changed

+25
-84
lines changed

1 file changed

+25
-84
lines changed

xds/src/test/java/io/grpc/xds/ClusterResolverLoadBalancerTest.java

Lines changed: 25 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)