Fix interop_test client.

This commit is contained in:
Kun Zhang 2017-10-10 13:46:51 -07:00 committed by GitHub
parent 61d5baa5f2
commit 1e02b65c08
2 changed files with 27 additions and 15 deletions

View File

@ -288,6 +288,10 @@ public abstract class AbstractInteropTest {
return true; return true;
} }
protected boolean serverInProcess() {
return true;
}
@Test @Test
public void emptyUnary() throws Exception { public void emptyUnary() throws Exception {
assertEquals(EMPTY, blockingStub.emptyCall(EMPTY)); assertEquals(EMPTY, blockingStub.emptyCall(EMPTY));
@ -1754,6 +1758,9 @@ public abstract class AbstractInteropTest {
@SuppressWarnings("AssertionFailureIgnored") // Failure is checked in the end by the passed flag. @SuppressWarnings("AssertionFailureIgnored") // Failure is checked in the end by the passed flag.
private void assertServerMetrics(String method, Status.Code code, private void assertServerMetrics(String method, Status.Code code,
Collection<? extends MessageLite> requests, Collection<? extends MessageLite> responses) { Collection<? extends MessageLite> requests, Collection<? extends MessageLite> responses) {
if (!serverInProcess()) {
return;
}
AssertionError checkFailure = null; AssertionError checkFailure = null;
boolean passed = false; boolean passed = false;
@ -1875,7 +1882,7 @@ public abstract class AbstractInteropTest {
} }
} }
private static void checkCensusMetrics(MetricsRecord record, boolean server, private void checkCensusMetrics(MetricsRecord record, boolean server,
Collection<? extends MessageLite> requests, Collection<? extends MessageLite> responses) { Collection<? extends MessageLite> requests, Collection<? extends MessageLite> responses) {
int uncompressedRequestsSize = 0; int uncompressedRequestsSize = 0;
for (MessageLite request : requests) { for (MessageLite request : requests) {
@ -1885,7 +1892,7 @@ public abstract class AbstractInteropTest {
for (MessageLite response : responses) { for (MessageLite response : responses) {
uncompressedResponsesSize += response.getSerializedSize(); uncompressedResponsesSize += response.getSerializedSize();
} }
if (server) { if (server && serverInProcess()) {
assertEquals( assertEquals(
requests.size(), record.getMetricAsLongOrFail(RpcConstants.RPC_SERVER_REQUEST_COUNT)); requests.size(), record.getMetricAsLongOrFail(RpcConstants.RPC_SERVER_REQUEST_COUNT));
assertEquals( assertEquals(
@ -1899,7 +1906,8 @@ public abstract class AbstractInteropTest {
// check if they are recorded. // check if they are recorded.
assertNotNull(record.getMetric(RpcConstants.RPC_SERVER_REQUEST_BYTES)); assertNotNull(record.getMetric(RpcConstants.RPC_SERVER_REQUEST_BYTES));
assertNotNull(record.getMetric(RpcConstants.RPC_SERVER_RESPONSE_BYTES)); assertNotNull(record.getMetric(RpcConstants.RPC_SERVER_RESPONSE_BYTES));
} else { }
if (!server) {
assertEquals( assertEquals(
requests.size(), record.getMetricAsLongOrFail(RpcConstants.RPC_CLIENT_REQUEST_COUNT)); requests.size(), record.getMetricAsLongOrFail(RpcConstants.RPC_CLIENT_REQUEST_COUNT));
assertEquals( assertEquals(

View File

@ -19,6 +19,7 @@ package io.grpc.testing.integration;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.io.Files; import com.google.common.io.Files;
import io.grpc.ManagedChannel; import io.grpc.ManagedChannel;
import io.grpc.internal.AbstractManagedChannelImplBuilder;
import io.grpc.internal.GrpcUtil; import io.grpc.internal.GrpcUtil;
import io.grpc.internal.testing.TestUtils; import io.grpc.internal.testing.TestUtils;
import io.grpc.netty.GrpcSslContexts; import io.grpc.netty.GrpcSslContexts;
@ -316,6 +317,7 @@ public class TestServiceClient {
private class Tester extends AbstractInteropTest { private class Tester extends AbstractInteropTest {
@Override @Override
protected ManagedChannel createChannel() { protected ManagedChannel createChannel() {
AbstractManagedChannelImplBuilder<?> builder;
if (!useOkHttp) { if (!useOkHttp) {
SslContext sslContext = null; SslContext sslContext = null;
if (useTestCa) { if (useTestCa) {
@ -326,23 +328,23 @@ public class TestServiceClient {
throw new RuntimeException(ex); throw new RuntimeException(ex);
} }
} }
NettyChannelBuilder builder = NettyChannelBuilder nettyBuilder =
NettyChannelBuilder.forAddress(serverHost, serverPort) NettyChannelBuilder.forAddress(serverHost, serverPort)
.flowControlWindow(65 * 1024) .flowControlWindow(65 * 1024)
.negotiationType(useTls ? NegotiationType.TLS : NegotiationType.PLAINTEXT) .negotiationType(useTls ? NegotiationType.TLS : NegotiationType.PLAINTEXT)
.sslContext(sslContext); .sslContext(sslContext);
if (serverHostOverride != null) { if (serverHostOverride != null) {
builder.overrideAuthority(serverHostOverride); nettyBuilder.overrideAuthority(serverHostOverride);
} }
if (fullStreamDecompression) { if (fullStreamDecompression) {
builder.enableFullStreamDecompression(); nettyBuilder.enableFullStreamDecompression();
} }
return builder.build(); builder = nettyBuilder;
} else { } else {
OkHttpChannelBuilder builder = OkHttpChannelBuilder.forAddress(serverHost, serverPort); OkHttpChannelBuilder okBuilder = OkHttpChannelBuilder.forAddress(serverHost, serverPort);
if (serverHostOverride != null) { if (serverHostOverride != null) {
// Force the hostname to match the cert the server uses. // Force the hostname to match the cert the server uses.
builder.overrideAuthority( okBuilder.overrideAuthority(
GrpcUtil.authorityFromHostAndPort(serverHostOverride, serverPort)); GrpcUtil.authorityFromHostAndPort(serverHostOverride, serverPort));
} }
if (useTls) { if (useTls) {
@ -351,23 +353,25 @@ public class TestServiceClient {
? TestUtils.newSslSocketFactoryForCa(Platform.get().getProvider(), ? TestUtils.newSslSocketFactoryForCa(Platform.get().getProvider(),
TestUtils.loadCert("ca.pem")) TestUtils.loadCert("ca.pem"))
: (SSLSocketFactory) SSLSocketFactory.getDefault(); : (SSLSocketFactory) SSLSocketFactory.getDefault();
builder.sslSocketFactory(factory); okBuilder.sslSocketFactory(factory);
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} else { } else {
builder.usePlaintext(true); okBuilder.usePlaintext(true);
} }
if (fullStreamDecompression) { if (fullStreamDecompression) {
builder.enableFullStreamDecompression(); okBuilder.enableFullStreamDecompression();
} }
return builder.build(); builder = okBuilder;
} }
io.grpc.internal.TestingAccessor.setStatsContextFactory(builder, getClientStatsFactory());
return builder.build();
} }
@Override @Override
protected boolean metricsExpected() { protected boolean serverInProcess() {
// Server-side metrics won't be found, because server is a separate process. // Server is a separate process.
return false; return false;
} }
} }