Home / Function/ testMixedCqe() — netty Function Reference

testMixedCqe() — netty Function Reference

Architecture documentation for the testMixedCqe() function in SubmissionQueueTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  20ef5255_b2ac_30b9_f60c_9c9af686fa7e["testMixedCqe()"]
  fd25db8c_3569_d733_e052_a05bfd7b5f45["SubmissionQueueTest"]
  20ef5255_b2ac_30b9_f60c_9c9af686fa7e -->|defined in| fd25db8c_3569_d733_e052_a05bfd7b5f45
  style 20ef5255_b2ac_30b9_f60c_9c9af686fa7e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport-native-io_uring/src/test/java/io/netty/channel/uring/SubmissionQueueTest.java lines 253–300

    @Test
    public void testMixedCqe() {
        assumeTrue(Native.ioUringSetupSupportsFlags(CqeSize.MIXED.setupFlag()));

        RingBuffer ringBuffer = Native.createRingBuffer(8, CqeSize.MIXED.setupFlag());
        ringBuffer.enable();
        try {
            SubmissionQueue submissionQueue = ringBuffer.ioUringSubmissionQueue();
            final CompletionQueue completionQueue = ringBuffer.ioUringCompletionQueue();

            assertNotNull(ringBuffer);
            assertNotNull(submissionQueue);
            assertNotNull(completionQueue);

            // Loop a few times so that we will get into the situation that we will also receive
            // completion events that are marked as "fillers".
            for (int i = 0; i < 10; i++) {
                int remaining = submissionQueue.remaining();
                int added = 0;

                while (--remaining > 0) {
                    assertNotEquals(0, submissionQueue.addNop(
                            (byte) 0, remaining % 2 != 0 ? Native.IORING_NOP_CQE32 : 0, remaining));
                    added++;
                }

                assertEquals(added, submissionQueue.submitAndGet());
                int processed = completionQueue.process((res, flags, udata, extraCqeData) -> {
                    assertEquals(0, res);
                    // If there is a filler we should not be notified.
                    assertEquals(0, flags & Native.IORING_CQE_F_SKIP);
                    if (udata % 2 != 0) {
                        assertEquals(Native.IORING_CQE_F_32, flags);
                        assertNotNull(extraCqeData);
                        assertEquals(0, extraCqeData.position());
                        assertEquals(16, extraCqeData.limit());
                    } else {
                        assertEquals(0, flags);
                        assertNull(extraCqeData);
                    }
                });
                assertEquals(7, processed);
                assertFalse(completionQueue.hasCompletions());
            }
        } finally {
            ringBuffer.close();
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does testMixedCqe() do?
testMixedCqe() is a function in the netty codebase, defined in transport-native-io_uring/src/test/java/io/netty/channel/uring/SubmissionQueueTest.java.
Where is testMixedCqe() defined?
testMixedCqe() is defined in transport-native-io_uring/src/test/java/io/netty/channel/uring/SubmissionQueueTest.java at line 253.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free