CoalescingBufferQueueTest Class — netty Architecture
Architecture documentation for the CoalescingBufferQueueTest class in CoalescingBufferQueueTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9["CoalescingBufferQueueTest"] 58e4185d_f2d6_9b9f_ed61_6bc0a2ef1c67["CoalescingBufferQueueTest.java"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|defined in| 58e4185d_f2d6_9b9f_ed61_6bc0a2ef1c67 293a9ab1_345c_2549_7734_dbbd18946410["setup()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| 293a9ab1_345c_2549_7734_dbbd18946410 997a8e13_d0ff_4c5d_8881_cf52d16c3d44["finish()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| 997a8e13_d0ff_4c5d_8881_cf52d16c3d44 f4b9f698_da87_7e0b_a0d4_814456d2ce1a["testAddFirstPromiseRetained()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| f4b9f698_da87_7e0b_a0d4_814456d2ce1a 79007429_de9b_9439_ee26_90bfb7704206["testAddFirstVoidPromise()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| 79007429_de9b_9439_ee26_90bfb7704206 59fe854c_8942_1b2a_b828_90499dc58657["testAggregateWithFullRead()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| 59fe854c_8942_1b2a_b828_90499dc58657 da6802f7_0aa7_dae6_7bd4_c6c8345caa6f["testWithVoidPromise()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| da6802f7_0aa7_dae6_7bd4_c6c8345caa6f dd649037_4a8d_a5d1_fa28_99658bb4bd22["testAggregateWithPartialRead()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| dd649037_4a8d_a5d1_fa28_99658bb4bd22 c9b7246b_0295_f024_76ee_fd34034c41e0["testReadExactAddedBufferSizeReturnsOriginal()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| c9b7246b_0295_f024_76ee_fd34034c41e0 949597bc_0c0c_01d2_122f_805d26c88510["testReadEmptyQueueReturnsEmptyBuffer()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| 949597bc_0c0c_01d2_122f_805d26c88510 36f6f2b2_aa0e_bfb6_2300_393325050da8["testReleaseAndFailAll()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| 36f6f2b2_aa0e_bfb6_2300_393325050da8 bbbb7799_9635_28ad_5c3b_48f9080ca744["testEmptyBuffersAreCoalesced()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| bbbb7799_9635_28ad_5c3b_48f9080ca744 64cfa9e2_bf2e_95aa_8564_a2adee806813["testMerge()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| 64cfa9e2_bf2e_95aa_8564_a2adee806813 83aae1ae_1e79_00cb_2d8d_4f0d13afee14["testWritabilityChanged()"] ccc522b2_7fa1_bc1b_d4b4_2b255b9936f9 -->|method| 83aae1ae_1e79_00cb_2d8d_4f0d13afee14
Relationship Graph
Source Code
transport/src/test/java/io/netty/channel/CoalescingBufferQueueTest.java lines 34–315
public class CoalescingBufferQueueTest {
private ByteBuf cat;
private ByteBuf mouse;
private ChannelPromise catPromise, emptyPromise;
private ChannelPromise voidPromise;
private ChannelFutureListener mouseListener;
private boolean mouseDone;
private boolean mouseSuccess;
private EmbeddedChannel channel;
private CoalescingBufferQueue writeQueue;
@BeforeEach
public void setup() {
mouseDone = false;
mouseSuccess = false;
channel = new EmbeddedChannel();
writeQueue = new CoalescingBufferQueue(channel, 16, true);
catPromise = newPromise();
mouseListener = future -> {
mouseDone = true;
mouseSuccess = future.isSuccess();
};
emptyPromise = newPromise();
voidPromise = channel.voidPromise();
cat = Unpooled.wrappedBuffer("cat".getBytes(CharsetUtil.US_ASCII));
mouse = Unpooled.wrappedBuffer("mouse".getBytes(CharsetUtil.US_ASCII));
}
@AfterEach
public void finish() {
assertFalse(channel.finish());
}
@Test
public void testAddFirstPromiseRetained() {
writeQueue.add(cat, catPromise);
assertQueueSize(3, false);
writeQueue.add(mouse, mouseListener);
assertQueueSize(8, false);
ChannelPromise aggregatePromise = newPromise();
assertEquals("catmous", dequeue(7, aggregatePromise));
ByteBuf remainder = Unpooled.wrappedBuffer("mous".getBytes(CharsetUtil.US_ASCII));
writeQueue.addFirst(remainder, aggregatePromise);
ChannelPromise aggregatePromise2 = newPromise();
assertEquals("mouse", dequeue(5, aggregatePromise2));
aggregatePromise2.setSuccess();
assertTrue(catPromise.isSuccess());
assertTrue(mouseSuccess);
assertEquals(0, cat.refCnt());
assertEquals(0, mouse.refCnt());
}
@Test
public void testAddFirstVoidPromise() {
writeQueue.add(cat, catPromise);
assertQueueSize(3, false);
writeQueue.add(mouse, mouseListener);
assertQueueSize(8, false);
ChannelPromise aggregatePromise = newPromise();
assertEquals("catmous", dequeue(7, aggregatePromise));
ByteBuf remainder = Unpooled.wrappedBuffer("mous".getBytes(CharsetUtil.US_ASCII));
writeQueue.addFirst(remainder, voidPromise);
ChannelPromise aggregatePromise2 = newPromise();
assertEquals("mouse", dequeue(5, aggregatePromise2));
aggregatePromise2.setSuccess();
// Because we used a void promise above, we shouldn't complete catPromise until aggregatePromise is completed.
assertFalse(catPromise.isSuccess());
assertTrue(mouseSuccess);
aggregatePromise.setSuccess();
assertTrue(catPromise.isSuccess());
assertTrue(mouseSuccess);
assertEquals(0, cat.refCnt());
assertEquals(0, mouse.refCnt());
}
@Test
Source
Frequently Asked Questions
What is the CoalescingBufferQueueTest class?
CoalescingBufferQueueTest is a class in the netty codebase, defined in transport/src/test/java/io/netty/channel/CoalescingBufferQueueTest.java.
Where is CoalescingBufferQueueTest defined?
CoalescingBufferQueueTest is defined in transport/src/test/java/io/netty/channel/CoalescingBufferQueueTest.java at line 34.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free