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;
}
protected boolean serverInProcess() {
return true;
}
@Test
public void emptyUnary() throws Exception {
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.
private void assertServerMetrics(String method, Status.Code code,
Collection<? extends MessageLite> requests, Collection<? extends MessageLite> responses) {
if (!serverInProcess()) {
return;
}
AssertionError checkFailure = null;
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) {
int uncompressedRequestsSize = 0;
for (MessageLite request : requests) {
@ -1885,7 +1892,7 @@ public abstract class AbstractInteropTest {
for (MessageLite response : responses) {
uncompressedResponsesSize += response.getSerializedSize();
}
if (server) {
if (server && serverInProcess()) {
assertEquals(
requests.size(), record.getMetricAsLongOrFail(RpcConstants.RPC_SERVER_REQUEST_COUNT));
assertEquals(
@ -1899,7 +1906,8 @@ public abstract class AbstractInteropTest {
// check if they are recorded.
assertNotNull(record.getMetric(RpcConstants.RPC_SERVER_REQUEST_BYTES));
assertNotNull(record.getMetric(RpcConstants.RPC_SERVER_RESPONSE_BYTES));
} else {
}
if (!server) {
assertEquals(
requests.size(), record.getMetricAsLongOrFail(RpcConstants.RPC_CLIENT_REQUEST_COUNT));
assertEquals(

View File

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