Skip to content

Commit 9bc1a93

Browse files
committed
xds: Add test that uses real DnsNR with ClusterResolverLB
This can detect failures like the UnsupportedOperationException from ebffb0a.
1 parent cc1cbe9 commit 9bc1a93

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

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

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,17 @@
2424
import com.google.protobuf.Any;
2525
import com.google.protobuf.Struct;
2626
import com.google.protobuf.Value;
27+
import io.envoyproxy.envoy.config.cluster.v3.Cluster;
2728
import io.envoyproxy.envoy.config.cluster.v3.Cluster.LbPolicy;
2829
import io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy;
2930
import io.envoyproxy.envoy.config.cluster.v3.LoadBalancingPolicy.Policy;
31+
import io.envoyproxy.envoy.config.core.v3.Address;
32+
import io.envoyproxy.envoy.config.core.v3.SocketAddress;
3033
import io.envoyproxy.envoy.config.core.v3.TypedExtensionConfig;
34+
import io.envoyproxy.envoy.config.endpoint.v3.ClusterLoadAssignment;
35+
import io.envoyproxy.envoy.config.endpoint.v3.Endpoint;
36+
import io.envoyproxy.envoy.config.endpoint.v3.LbEndpoint;
37+
import io.envoyproxy.envoy.config.endpoint.v3.LocalityLbEndpoints;
3138
import io.envoyproxy.envoy.extensions.load_balancing_policies.wrr_locality.v3.WrrLocality;
3239
import io.grpc.CallOptions;
3340
import io.grpc.Channel;
@@ -42,6 +49,7 @@
4249
import io.grpc.testing.protobuf.SimpleRequest;
4350
import io.grpc.testing.protobuf.SimpleResponse;
4451
import io.grpc.testing.protobuf.SimpleServiceGrpc;
52+
import java.net.InetSocketAddress;
4553
import org.junit.Rule;
4654
import org.junit.Test;
4755
import org.junit.runner.RunWith;
@@ -179,4 +187,34 @@ public void pingPong_ringHash() {
179187
.build();
180188
assertEquals(goldenResponse, blockingStub.unaryRpc(request));
181189
}
190+
191+
@Test
192+
public void pingPong_logicalDns() {
193+
InetSocketAddress serverAddress =
194+
(InetSocketAddress) dataPlane.getServer().getListenSockets().get(0);
195+
controlPlane.setCdsConfig(
196+
ControlPlaneRule.buildCluster().toBuilder()
197+
.setType(Cluster.DiscoveryType.LOGICAL_DNS)
198+
.setLoadAssignment(
199+
ClusterLoadAssignment.newBuilder().addEndpoints(
200+
LocalityLbEndpoints.newBuilder().addLbEndpoints(
201+
LbEndpoint.newBuilder().setEndpoint(
202+
Endpoint.newBuilder().setAddress(
203+
Address.newBuilder().setSocketAddress(
204+
SocketAddress.newBuilder()
205+
.setAddress("localhost")
206+
.setPortValue(serverAddress.getPort()))))))
207+
.build())
208+
.build());
209+
210+
ManagedChannel channel = dataPlane.getManagedChannel();
211+
SimpleServiceGrpc.SimpleServiceBlockingStub blockingStub = SimpleServiceGrpc.newBlockingStub(
212+
channel);
213+
SimpleRequest request = SimpleRequest.newBuilder()
214+
.build();
215+
SimpleResponse goldenResponse = SimpleResponse.newBuilder()
216+
.setResponseMessage("Hi, xDS!")
217+
.build();
218+
assertEquals(goldenResponse, blockingStub.unaryRpc(request));
219+
}
182220
}

0 commit comments

Comments
 (0)