Skip to content

Commit e136990

Browse files
committed
api: Add grpclb test for EAG toString summarization
1 parent 682c7c8 commit e136990

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

grpclb/src/test/java/io/grpc/grpclb/GrpclbNameResolverTest.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import java.net.InetAddress;
4747
import java.net.InetSocketAddress;
4848
import java.net.UnknownHostException;
49+
import java.util.ArrayList;
4950
import java.util.Collections;
5051
import java.util.List;
5152
import java.util.concurrent.Executor;
@@ -211,6 +212,40 @@ public ConfigOrError answer(InvocationOnMock invocation) {
211212
verify(mockResourceResolver).resolveSrv("_grpclb._tcp." + hostName);
212213
}
213214

215+
@Test
216+
public void resolve_presentResourceResolver_manyBalancerAddressesSummarizedInToString()
217+
throws Exception {
218+
int addressCount = 1000;
219+
InetAddress backendAddr = InetAddress.getByAddress(new byte[] {127, 0, 0, 0});
220+
String lbName = "foo.example.com."; // original name in SRV record
221+
SrvRecord srvRecord = new SrvRecord(lbName, 8080);
222+
List<InetAddress> lbAddrs = new ArrayList<>();
223+
for (int i = 0; i < addressCount; i++) {
224+
lbAddrs.add(InetAddress.getByAddress(new byte[] {10, 1, 0, (byte) (i + 1)}));
225+
}
226+
AddressResolver mockAddressResolver = mock(AddressResolver.class);
227+
when(mockAddressResolver.resolveAddress(hostName))
228+
.thenReturn(Collections.singletonList(backendAddr));
229+
when(mockAddressResolver.resolveAddress(lbName))
230+
.thenReturn(lbAddrs);
231+
ResourceResolver mockResourceResolver = mock(ResourceResolver.class);
232+
when(mockResourceResolver.resolveTxt(anyString())).thenReturn(Collections.<String>emptyList());
233+
when(mockResourceResolver.resolveSrv(anyString()))
234+
.thenReturn(Collections.singletonList(srvRecord));
235+
236+
resolver.setAddressResolver(mockAddressResolver);
237+
resolver.setResourceResolver(mockResourceResolver);
238+
239+
resolver.start(mockListener);
240+
assertThat(fakeClock.runDueTasks()).isEqualTo(1);
241+
verify(mockListener).onResult2(resultCaptor.capture());
242+
ResolutionResult result = resultCaptor.getValue();
243+
EquivalentAddressGroup resolvedBalancerAddr =
244+
Iterables.getOnlyElement(result.getAttributes().get(GrpclbConstants.ATTR_LB_ADDRS));
245+
assertThat(resolvedBalancerAddr.getAddresses().size()).isEqualTo(addressCount);
246+
assertThat(resolvedBalancerAddr.toString()).contains("... ");
247+
}
248+
214249
@Test
215250
public void resolve_nullResourceResolver() throws Exception {
216251
InetAddress backendAddr = InetAddress.getByAddress(new byte[] {127, 0, 0, 0});
@@ -341,4 +376,5 @@ public void resolve_addressAndBalancersLookupFail_neverLookupServiceConfig() thr
341376
verify(mockResourceResolver, never()).resolveTxt("_grpc_config." + hostName);
342377
verify(mockResourceResolver).resolveSrv("_grpclb._tcp." + hostName);
343378
}
379+
344380
}

0 commit comments

Comments
 (0)