Home / Class/ QpackEncoderDynamicTableTest Class — netty Architecture

QpackEncoderDynamicTableTest Class — netty Architecture

Architecture documentation for the QpackEncoderDynamicTableTest class in QpackEncoderDynamicTableTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  0b57921e_fd41_0d68_9a74_4964c2403fe3["QpackEncoderDynamicTableTest"]
  8b8516d8_3cb6_cd38_9e8a_df54c2fb5921["QpackEncoderDynamicTableTest.java"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|defined in| 8b8516d8_3cb6_cd38_9e8a_df54c2fb5921
  64a19864_8713_f6ba_fbe8_d42555304402["zeroCapacityIsAllowed()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| 64a19864_8713_f6ba_fbe8_d42555304402
  3eea06c3_b17b_b4c8_9edd_08d6a352eeb9["maxCapacityIsAllowed()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| 3eea06c3_b17b_b4c8_9edd_08d6a352eeb9
  833a2cb7_a397_cf10_f548_d80c5ec18c2f["negativeCapacityIsDisallowed()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| 833a2cb7_a397_cf10_f548_d80c5ec18c2f
  759caa19_8a4d_2426_de5f_91bd13b40d8c["capacityTooLarge()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| 759caa19_8a4d_2426_de5f_91bd13b40d8c
  6e0c2a4a_f933_84ae_4d83_a2972efd248b["delayAck()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| 6e0c2a4a_f933_84ae_4d83_a2972efd248b
  a849d335_fbd5_650b_b28a_0f810d08d28c["addAndGet()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| a849d335_fbd5_650b_b28a_0f810d08d28c
  75b01273_84b0_067c_0c87_1ba04445334b["nameOnlyMatch()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| 75b01273_84b0_067c_0c87_1ba04445334b
  4acf566f_3274_1f36_d92e_6f208904e0a5["addDuplicateEntries()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| 4acf566f_3274_1f36_d92e_6f208904e0a5
  e60ba6ec_8a38_58ef_8012_409e7114d4e2["hashCollisionThenRemove()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| e60ba6ec_8a38_58ef_8012_409e7114d4e2
  d4c9fd8b_7c9b_2451_f5b3_f323e2aa0f1c["requiredInsertCountWrapsAround()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| d4c9fd8b_7c9b_2451_f5b3_f323e2aa0f1c
  774a913d_8d3e_659a_51aa_0fc252d37e82["indexWrapsAroundForSingleEntryCapacity()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| 774a913d_8d3e_659a_51aa_0fc252d37e82
  1532b1b0_5bdb_a8ea_ec9e_cf06f74967c9["sectionAck()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| 1532b1b0_5bdb_a8ea_ec9e_cf06f74967c9
  a39b3914_a744_c869_bda4_a81e75b63f13["sectionAckOutOfOrder()"]
  0b57921e_fd41_0d68_9a74_4964c2403fe3 -->|method| a39b3914_a744_c869_bda4_a81e75b63f13

Relationship Graph

Source Code

codec-http3/src/test/java/io/netty/handler/codec/http3/QpackEncoderDynamicTableTest.java lines 29–261

public class QpackEncoderDynamicTableTest {
    private static final QpackHeaderField emptyHeader = new QpackHeaderField("", "");
    private static final QpackHeaderField fooBarHeader = new QpackHeaderField("foo", "bar");
    private static final QpackHeaderField fooBar2Header = new QpackHeaderField("foo", "bar2");
    private static final QpackHeaderField fooBar3Header = new QpackHeaderField("foo", "bar3");

    private int insertCount;
    private long maxCapacity;

    @Test
    public void zeroCapacityIsAllowed() throws Exception {
        QpackEncoderDynamicTable table = newDynamicTable(0);

        assertThat("Header addition passed.", addHeader(table, emptyHeader),
                lessThan(0));
    }

    @Test
    public void maxCapacityIsAllowed() throws Exception {
        final QpackEncoderDynamicTable table = newDynamicTable(MAX_HEADER_TABLE_SIZE);
        addAndValidateHeader(table, emptyHeader);
    }

    @Test
    public void negativeCapacityIsDisallowed() {
        assertThrows(QpackException.class, () -> newDynamicTable(-1));
    }

    @Test
    public void capacityTooLarge() {
        assertThrows(QpackException.class, () -> newDynamicTable(Long.MAX_VALUE));
    }

    @Test
    public void delayAck() throws Exception {
        QpackEncoderDynamicTable table = newDynamicTable(16, 50, 128);

        addAndValidateHeader(table, emptyHeader);
        addAndValidateHeader(table, fooBarHeader);
        final int idx2 = addAndValidateHeader(table, fooBar2Header);

        assertThat("Header addition passed.", addHeader(table, fooBarHeader), lessThan(0));

        table.incrementKnownReceivedCount(3);
        assertThat("Unexpected entry index.", getEntryIndex(table, emptyHeader), lessThan(0));
        assertThat("Unexpected entry index.", getEntryIndex(table, fooBarHeader), lessThan(0));
        assertThat("Unexpected entry index.", getEntryIndex(table, fooBar2Header), is(idx2));

        final int idx1 = addAndValidateHeader(table, emptyHeader);
        assertThat("Unexpected entry index.", getEntryIndex(table, emptyHeader), is(idx1));
        assertThat("Unexpected entry index.", getEntryIndex(table, fooBar2Header), lessThan(0));
    }

    @Test
    public void addAndGet() throws Exception {
        QpackEncoderDynamicTable table = newDynamicTable(128);

        final int idx1 = addValidateAndAckHeader(table, emptyHeader);
        assertEquals(0, idx1);
        assertThat("Unexpected entry index.", getEntryIndex(table, emptyHeader), is(idx1));

        final int idx2 = addValidateAndAckHeader(table, fooBarHeader);
        assertEquals(1, idx2);
        assertThat("Unexpected entry index.", getEntryIndex(table, fooBarHeader), is(idx2));

        assertThat("Unexpected entry index.", getEntryIndex(table, emptyHeader), is(idx1));
    }

    @Test
    public void nameOnlyMatch() throws Exception {
        final QpackEncoderDynamicTable table = newDynamicTable(128);
        addValidateAndAckHeader(table, fooBarHeader);
        final int lastIdx = addValidateAndAckHeader(table, fooBar2Header);

        final int idx = table.getEntryIndex("foo", "baz");
        assertThat("Unexpected index.", idx, lessThan(0));
        assertThat("Unexpected index.", idx, is(-lastIdx - 1));
    }

    @Test
    public void addDuplicateEntries() throws Exception {

Frequently Asked Questions

What is the QpackEncoderDynamicTableTest class?
QpackEncoderDynamicTableTest is a class in the netty codebase, defined in codec-http3/src/test/java/io/netty/handler/codec/http3/QpackEncoderDynamicTableTest.java.
Where is QpackEncoderDynamicTableTest defined?
QpackEncoderDynamicTableTest is defined in codec-http3/src/test/java/io/netty/handler/codec/http3/QpackEncoderDynamicTableTest.java at line 29.

Analyze Your Own Codebase

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

Try Supermodel Free