Home / Class/ CoalescingBufferQueueTest Class — netty Architecture

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

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