mirror of https://github.com/grpc/grpc-java.git
interop-testing: client compressed tests without probing (#4279)
This commit is contained in:
parent
5af2515f3e
commit
03a00aa8cf
|
|
@ -390,7 +390,7 @@ public abstract class AbstractInteropTest {
|
|||
* Tests client per-message compression for unary calls. The Java API does not support inspecting
|
||||
* a message's compression level, so this is primarily intended to run against a gRPC C++ server.
|
||||
*/
|
||||
public void clientCompressedUnary() throws Exception {
|
||||
public void clientCompressedUnary(boolean probe) throws Exception {
|
||||
assumeEnoughMemory();
|
||||
final SimpleRequest expectCompressedRequest =
|
||||
SimpleRequest.newBuilder()
|
||||
|
|
@ -409,15 +409,17 @@ public abstract class AbstractInteropTest {
|
|||
.setPayload(Payload.newBuilder().setBody(ByteString.copyFrom(new byte[314159])))
|
||||
.build();
|
||||
|
||||
// Send a non-compressed message with expectCompress=true. Servers supporting this test case
|
||||
// should return INVALID_ARGUMENT.
|
||||
try {
|
||||
blockingStub.unaryCall(expectCompressedRequest);
|
||||
fail("expected INVALID_ARGUMENT");
|
||||
} catch (StatusRuntimeException e) {
|
||||
assertEquals(Status.INVALID_ARGUMENT.getCode(), e.getStatus().getCode());
|
||||
if (probe) {
|
||||
// Send a non-compressed message with expectCompress=true. Servers supporting this test case
|
||||
// should return INVALID_ARGUMENT.
|
||||
try {
|
||||
blockingStub.unaryCall(expectCompressedRequest);
|
||||
fail("expected INVALID_ARGUMENT");
|
||||
} catch (StatusRuntimeException e) {
|
||||
assertEquals(Status.INVALID_ARGUMENT.getCode(), e.getStatus().getCode());
|
||||
}
|
||||
assertStatsTrace("grpc.testing.TestService/UnaryCall", Status.Code.INVALID_ARGUMENT);
|
||||
}
|
||||
assertStatsTrace("grpc.testing.TestService/UnaryCall", Status.Code.INVALID_ARGUMENT);
|
||||
|
||||
assertEquals(
|
||||
goldenResponse, blockingStub.withCompression("gzip").unaryCall(expectCompressedRequest));
|
||||
|
|
@ -557,7 +559,7 @@ public abstract class AbstractInteropTest {
|
|||
* inspecting a message's compression level, so this is primarily intended to run against a gRPC
|
||||
* C++ server.
|
||||
*/
|
||||
public void clientCompressedStreaming() throws Exception {
|
||||
public void clientCompressedStreaming(boolean probe) throws Exception {
|
||||
final StreamingInputCallRequest expectCompressedRequest =
|
||||
StreamingInputCallRequest.newBuilder()
|
||||
.setExpectCompressed(BoolValue.newBuilder().setValue(true))
|
||||
|
|
@ -575,13 +577,15 @@ public abstract class AbstractInteropTest {
|
|||
StreamObserver<StreamingInputCallRequest> requestObserver =
|
||||
asyncStub.streamingInputCall(responseObserver);
|
||||
|
||||
// Send a non-compressed message with expectCompress=true. Servers supporting this test case
|
||||
// should return INVALID_ARGUMENT.
|
||||
requestObserver.onNext(expectCompressedRequest);
|
||||
responseObserver.awaitCompletion(operationTimeoutMillis(), TimeUnit.MILLISECONDS);
|
||||
Throwable e = responseObserver.getError();
|
||||
assertNotNull("expected INVALID_ARGUMENT", e);
|
||||
assertEquals(Status.INVALID_ARGUMENT.getCode(), Status.fromThrowable(e).getCode());
|
||||
if (probe) {
|
||||
// Send a non-compressed message with expectCompress=true. Servers supporting this test case
|
||||
// should return INVALID_ARGUMENT.
|
||||
requestObserver.onNext(expectCompressedRequest);
|
||||
responseObserver.awaitCompletion(operationTimeoutMillis(), TimeUnit.MILLISECONDS);
|
||||
Throwable e = responseObserver.getError();
|
||||
assertNotNull("expected INVALID_ARGUMENT", e);
|
||||
assertEquals(Status.INVALID_ARGUMENT.getCode(), Status.fromThrowable(e).getCode());
|
||||
}
|
||||
|
||||
// Start a new stream
|
||||
responseObserver = StreamRecorder.create();
|
||||
|
|
|
|||
|
|
@ -26,9 +26,13 @@ public enum TestCases {
|
|||
CACHEABLE_UNARY("cacheable unary rpc sent using GET"),
|
||||
LARGE_UNARY("single request and (large) response"),
|
||||
CLIENT_COMPRESSED_UNARY("client compressed unary request"),
|
||||
CLIENT_COMPRESSED_UNARY_NOPROBE(
|
||||
"client compressed unary request (skip initial feature-probing request)"),
|
||||
SERVER_COMPRESSED_UNARY("server compressed unary response"),
|
||||
CLIENT_STREAMING("request streaming with single response"),
|
||||
CLIENT_COMPRESSED_STREAMING("client per-message compression on stream"),
|
||||
CLIENT_COMPRESSED_STREAMING_NOPROBE(
|
||||
"client per-message compression on stream (skip initial feature-probing request)"),
|
||||
SERVER_STREAMING("single request with response streaming"),
|
||||
SERVER_COMPRESSED_STREAMING("server per-message compression on stream"),
|
||||
PING_PONG("full-duplex ping-pong streaming"),
|
||||
|
|
|
|||
|
|
@ -221,7 +221,11 @@ public class TestServiceClient {
|
|||
break;
|
||||
|
||||
case CLIENT_COMPRESSED_UNARY:
|
||||
tester.clientCompressedUnary();
|
||||
tester.clientCompressedUnary(true);
|
||||
break;
|
||||
|
||||
case CLIENT_COMPRESSED_UNARY_NOPROBE:
|
||||
tester.clientCompressedUnary(false);
|
||||
break;
|
||||
|
||||
case SERVER_COMPRESSED_UNARY:
|
||||
|
|
@ -233,7 +237,11 @@ public class TestServiceClient {
|
|||
break;
|
||||
|
||||
case CLIENT_COMPRESSED_STREAMING:
|
||||
tester.clientCompressedStreaming();
|
||||
tester.clientCompressedStreaming(true);
|
||||
break;
|
||||
|
||||
case CLIENT_COMPRESSED_STREAMING_NOPROBE:
|
||||
tester.clientCompressedStreaming(false);
|
||||
break;
|
||||
|
||||
case SERVER_STREAMING:
|
||||
|
|
|
|||
|
|
@ -65,12 +65,21 @@ public class TestCasesTest {
|
|||
"timeout_on_sleeping_server"
|
||||
};
|
||||
|
||||
assertEquals(testCases.length, TestCases.values().length);
|
||||
// additional test cases
|
||||
String[] additionalTestCases = {
|
||||
"client_compressed_unary_noprobe",
|
||||
"client_compressed_streaming_noprobe"
|
||||
};
|
||||
|
||||
assertEquals(testCases.length + additionalTestCases.length, TestCases.values().length);
|
||||
|
||||
Set<TestCases> testCaseSet = new HashSet<TestCases>(testCases.length);
|
||||
for (String testCase : testCases) {
|
||||
testCaseSet.add(TestCases.fromString(testCase));
|
||||
}
|
||||
for (String testCase : additionalTestCases) {
|
||||
testCaseSet.add(TestCases.fromString(testCase));
|
||||
}
|
||||
|
||||
assertEquals(TestCases.values().length, testCaseSet.size());
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue