diff options
Diffstat (limited to 'lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java')
-rw-r--r-- | lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java b/lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java index 748de121e..26ffc5d58 100644 --- a/lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java +++ b/lib/java/src/test/java/org/apache/thrift/transport/TestTByteBuffer.java @@ -1,10 +1,12 @@ package org.apache.thrift.transport; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; +import org.apache.thrift.TConfiguration; import org.junit.jupiter.api.Test; public class TestTByteBuffer { @@ -39,4 +41,29 @@ public class TestTByteBuffer { () -> byteBuffer.write("Hello World".getBytes(StandardCharsets.UTF_8))); assertEquals("Not enough room in output buffer", e.getMessage()); } + + @Test + public void testSmallTConfiguration() throws Exception { + // Test that TByteBuffer init fail with small max message size. + final TConfiguration configSmall = + new TConfiguration( + 4, TConfiguration.DEFAULT_MAX_FRAME_SIZE, TConfiguration.DEFAULT_RECURSION_DEPTH); + TTransportException e = + assertThrows( + TTransportException.class, + () -> new TByteBuffer(configSmall, ByteBuffer.allocate(100))); + assertEquals("MaxMessageSize reached", e.getMessage()); + } + + @Test + public void testLargeTConfiguration() throws Exception { + // Test that TByteBuffer init pass with large max message size beyond + // TConfiguration.DEFAULT_MAX_MESSAGE_SIZE. + int maxSize = 101 * 1024 * 1024; + int bufferSize = (100 * 1024 + 512) * 1024; + final TConfiguration configLarge = + new TConfiguration( + maxSize, TConfiguration.DEFAULT_MAX_FRAME_SIZE, TConfiguration.DEFAULT_RECURSION_DEPTH); + assertDoesNotThrow(() -> new TByteBuffer(configLarge, ByteBuffer.allocate(bufferSize))); + } } |