Split large payload into separate test with higher timeout

Also show more exception info in case the test still fails.
This commit is contained in:
Eric Anderson 2015-03-23 10:18:57 -07:00
parent d8fb6f0bad
commit 2cbbd4706a
2 changed files with 40 additions and 11 deletions

View File

@ -31,6 +31,12 @@ dependencies {
test {
jvmArgs "-Xbootclasspath/p:" + configurations.alpnboot.asPath
testLogging {
exceptionFormat "full"
showExceptions true
showCauses true
showStackTraces true
}
}
// Allow execution of test client and server.

View File

@ -477,6 +477,39 @@ public abstract class AbstractTransportTest {
}
}
@Test(timeout = 30000)
public void veryLargeRequest() throws Exception {
final SimpleRequest request = SimpleRequest.newBuilder()
.setPayload(Payload.newBuilder()
.setType(PayloadType.COMPRESSABLE)
.setBody(ByteString.copyFrom(new byte[unaryPayloadLength()])))
.setResponseSize(10)
.setResponseType(PayloadType.COMPRESSABLE)
.build();
final SimpleResponse goldenResponse = SimpleResponse.newBuilder()
.setPayload(Payload.newBuilder()
.setType(PayloadType.COMPRESSABLE)
.setBody(ByteString.copyFrom(new byte[10])))
.build();
assertEquals(goldenResponse, blockingStub.unaryCall(request));
}
@Test(timeout = 30000)
public void veryLargeResponse() throws Exception {
final SimpleRequest request = SimpleRequest.newBuilder()
.setResponseSize(unaryPayloadLength())
.setResponseType(PayloadType.COMPRESSABLE)
.build();
final SimpleResponse goldenResponse = SimpleResponse.newBuilder()
.setPayload(Payload.newBuilder()
.setType(PayloadType.COMPRESSABLE)
.setBody(ByteString.copyFrom(new byte[unaryPayloadLength()])))
.build();
assertEquals(goldenResponse, blockingStub.unaryCall(request));
}
@Test(timeout = 10000)
public void exchangeContextUnaryCall() throws Exception {
TestServiceGrpc.TestServiceBlockingStub stub =
@ -494,7 +527,7 @@ public abstract class AbstractTransportTest {
AtomicReference<Metadata.Headers> headersCapture = new AtomicReference<Metadata.Headers>();
stub = MetadataUtils.captureMetadata(stub, headersCapture, trailersCapture);
Assert.assertNotNull(stub.unaryCall(unaryRequest()));
Assert.assertNotNull(stub.emptyCall(Empty.getDefaultInstance()));
// Assert that our side channel object is echoed back in both headers and trailers
Assert.assertEquals(contextValue, headersCapture.get().get(METADATA_KEY));
@ -550,16 +583,6 @@ public abstract class AbstractTransportTest {
return 10485760;
}
protected SimpleRequest unaryRequest() {
SimpleRequest.Builder unaryBuilder = SimpleRequest.newBuilder();
unaryBuilder.getPayloadBuilder().setType(PayloadType.COMPRESSABLE);
byte[] data = new byte[unaryPayloadLength()];
new Random().nextBytes(data);
unaryBuilder.getPayloadBuilder().setBody(ByteString.copyFrom(data));
unaryBuilder.setResponseSize(10).setResponseType(PayloadType.COMPRESSABLE);
return unaryBuilder.build();
}
protected static void assertSuccess(StreamRecorder<?> recorder) {
if (recorder.getError() != null) {
throw new AssertionError(recorder.getError());