AbstractPooledByteBufTest Class — netty Architecture
Architecture documentation for the AbstractPooledByteBufTest class in AbstractPooledByteBufTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 0134bc31_3b19_a967_d2aa_113b2ccd098c["AbstractPooledByteBufTest"] c8e1bfae_7e35_db18_2034_83194ed08ef7["AbstractPooledByteBufTest.java"] 0134bc31_3b19_a967_d2aa_113b2ccd098c -->|defined in| c8e1bfae_7e35_db18_2034_83194ed08ef7 9e9e5a1d_e711_0479_0eb8_9f6f296341fd["ByteBuf()"] 0134bc31_3b19_a967_d2aa_113b2ccd098c -->|method| 9e9e5a1d_e711_0479_0eb8_9f6f296341fd 87a65cef_1da3_9cf1_844f_620a60b14626["ensureWritableWithEnoughSpaceShouldNotThrow()"] 0134bc31_3b19_a967_d2aa_113b2ccd098c -->|method| 87a65cef_1da3_9cf1_844f_620a60b14626 85d9a4d2_4350_685f_6266_1a6da0601c39["ensureWritableWithNotEnoughSpaceShouldThrow()"] 0134bc31_3b19_a967_d2aa_113b2ccd098c -->|method| 85d9a4d2_4350_685f_6266_1a6da0601c39 171cd40c_02a0_7ed0_1483_5e748559f459["testMaxFastWritableBytes()"] 0134bc31_3b19_a967_d2aa_113b2ccd098c -->|method| 171cd40c_02a0_7ed0_1483_5e748559f459 b8bc1e06_1910_c817_ce88_108d0c0e3922["pooledByteBuf()"] 0134bc31_3b19_a967_d2aa_113b2ccd098c -->|method| b8bc1e06_1910_c817_ce88_108d0c0e3922 c457dc32_25aa_6c96_57d7_f725ca1dc1c8["testEnsureWritableDoesntGrowTooMuch()"] 0134bc31_3b19_a967_d2aa_113b2ccd098c -->|method| c457dc32_25aa_6c96_57d7_f725ca1dc1c8 163d0607_1b2b_169e_cc53_8369f7af77e6["testIsContiguous()"] 0134bc31_3b19_a967_d2aa_113b2ccd098c -->|method| 163d0607_1b2b_169e_cc53_8369f7af77e6 45b3cb1a_94fc_fb73_6fca_8964e90260e1["distinctBuffersMustNotOverlap()"] 0134bc31_3b19_a967_d2aa_113b2ccd098c -->|method| 45b3cb1a_94fc_fb73_6fca_8964e90260e1
Relationship Graph
Source Code
buffer/src/test/java/io/netty/buffer/AbstractPooledByteBufTest.java lines 27–145
public abstract class AbstractPooledByteBufTest extends AbstractByteBufTest {
protected abstract ByteBuf alloc(int length, int maxCapacity);
@Override
protected ByteBuf newBuffer(int length, int maxCapacity) {
ByteBuf buffer = alloc(length, maxCapacity);
// Testing if the writerIndex and readerIndex are correct when allocate and also after we reset the mark.
assertEquals(0, buffer.writerIndex());
assertEquals(0, buffer.readerIndex());
buffer.resetReaderIndex();
buffer.resetWriterIndex();
assertEquals(0, buffer.writerIndex());
assertEquals(0, buffer.readerIndex());
return buffer;
}
@Test
public void ensureWritableWithEnoughSpaceShouldNotThrow() {
ByteBuf buf = newBuffer(1, 10);
buf.ensureWritable(3);
assertThat(buf.writableBytes()).isGreaterThanOrEqualTo(3);
buf.release();
}
@Test
public void ensureWritableWithNotEnoughSpaceShouldThrow() {
final ByteBuf buf = newBuffer(1, 10);
try {
assertThrows(IndexOutOfBoundsException.class, new Executable() {
@Override
public void execute() {
buf.ensureWritable(11);
}
});
} finally {
buf.release();
}
}
@Override
@Test
public void testMaxFastWritableBytes() {
ByteBuf buffer = newBuffer(150, 500).writerIndex(100);
assertEquals(50, buffer.writableBytes());
assertEquals(150, buffer.capacity());
assertEquals(500, buffer.maxCapacity());
assertEquals(400, buffer.maxWritableBytes());
int chunkSize = pooledByteBuf(buffer).maxLength;
assertTrue(chunkSize >= 150);
int remainingInAlloc = Math.min(chunkSize - 100, 400);
assertEquals(remainingInAlloc, buffer.maxFastWritableBytes());
// write up to max, chunk alloc should not change (same handle)
long handleBefore = pooledByteBuf(buffer).handle;
buffer.writeBytes(new byte[remainingInAlloc]);
assertEquals(handleBefore, pooledByteBuf(buffer).handle);
assertEquals(0, buffer.maxFastWritableBytes());
// writing one more should trigger a reallocation (new handle)
buffer.writeByte(7);
assertNotEquals(handleBefore, pooledByteBuf(buffer).handle);
// should not exceed maxCapacity even if chunk alloc does
buffer.capacity(500);
assertEquals(500 - buffer.writerIndex(), buffer.maxFastWritableBytes());
buffer.release();
}
private static PooledByteBuf<?> pooledByteBuf(ByteBuf buffer) {
// might need to unwrap if swapped (LE) and/or leak-aware-wrapped
while (!(buffer instanceof PooledByteBuf)) {
buffer = buffer.unwrap();
}
return (PooledByteBuf<?>) buffer;
}
@Test
public void testEnsureWritableDoesntGrowTooMuch() {
Source
Frequently Asked Questions
What is the AbstractPooledByteBufTest class?
AbstractPooledByteBufTest is a class in the netty codebase, defined in buffer/src/test/java/io/netty/buffer/AbstractPooledByteBufTest.java.
Where is AbstractPooledByteBufTest defined?
AbstractPooledByteBufTest is defined in buffer/src/test/java/io/netty/buffer/AbstractPooledByteBufTest.java at line 27.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free