Home / Class/ JdkZlibTest Class — netty Architecture

JdkZlibTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce["JdkZlibTest"]
  18223982_070f_3c52_1182_04458ee30af1["JdkZlibTest.java"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|defined in| 18223982_070f_3c52_1182_04458ee30af1
  2ca273dd_9a17_36c6_e911_cf81c582a6ba["ZlibEncoder()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| 2ca273dd_9a17_36c6_e911_cf81c582a6ba
  f2a9b7b4_9027_4a2e_dcdb_ecaed3083b03["ZlibDecoder()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| f2a9b7b4_9027_4a2e_dcdb_ecaed3083b03
  6dd90007_4961_0b01_50a0_9787a7e5daf7["testZLIB_OR_NONE3()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| 6dd90007_4961_0b01_50a0_9787a7e5daf7
  f4115661_af82_b1b2_daed_a907e5f4603d["testConcatenatedStreamsReadFirstOnly()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| f4115661_af82_b1b2_daed_a907e5f4603d
  e1ef85a6_0ef3_ff37_e6c7_834d0f7d0e2e["testConcatenatedStreamsReadFully()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| e1ef85a6_0ef3_ff37_e6c7_834d0f7d0e2e
  af4e039c_7c6d_12dd_7310_abea446807e8["testConcatenatedStreamsReadFullyWhenFragmented()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| af4e039c_7c6d_12dd_7310_abea446807e8
  2863a910_3449_1827_e597_fac5ccfcfdef["testDecodeWithHeaderFollowingFooter()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| 2863a910_3449_1827_e597_fac5ccfcfdef
  3dc07b32_a079_2339_c6e7_90cf08995827["testLargeEncode()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| 3dc07b32_a079_2339_c6e7_90cf08995827
  9d232d38_679d_6ee7_f37d_679f5852c912["testAllowDefaultCompression()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| 9d232d38_679d_6ee7_f37d_679f5852c912
  b8c867dc_2db1_aa3e_c146_857ee6705dc6["testGzipFooterValidationSuccess()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| b8c867dc_2db1_aa3e_c146_857ee6705dc6
  c7710a10_d777_77cd_6cae_b6dfa80d273d["testGzipFooterCrcMismatchThrows()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| c7710a10_d777_77cd_6cae_b6dfa80d273d
  3c514631_26e4_46c1_f937_90cebe447358["testGzipFooterISizeMismatchThrows()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| 3c514631_26e4_46c1_f937_90cebe447358
  ffd3bc75_39ae_3f0f_391c_a929e21f7bb3["testRoundTripCompressionGzipContentMatch()"]
  4c83b538_e9fd_3b12_c32e_629bfd12e1ce -->|method| ffd3bc75_39ae_3f0f_391c_a929e21f7bb3

Relationship Graph

Source Code

codec-compression/src/test/java/io/netty/handler/codec/compression/JdkZlibTest.java lines 47–365

public class JdkZlibTest extends ZlibTest {

    @Override
    protected ZlibEncoder createEncoder(ZlibWrapper wrapper) {
        return new JdkZlibEncoder(wrapper);
    }

    @Override
    protected ZlibDecoder createDecoder(ZlibWrapper wrapper, int maxAllocation) {
        return new JdkZlibDecoder(wrapper, maxAllocation);
    }

    @Test
    @Override
    public void testZLIB_OR_NONE3() throws Exception {
        assertThrows(DecompressionException.class, new Executable() {
            @Override
            public void execute() throws Throwable {
                JdkZlibTest.super.testZLIB_OR_NONE3();
            }
        });
    }

    @Test
    // verifies backward compatibility
    public void testConcatenatedStreamsReadFirstOnly() throws IOException {
        EmbeddedChannel chDecoderGZip = new EmbeddedChannel(createDecoder(ZlibWrapper.GZIP));

        try (InputStream resourceAsStream = getClass().getResourceAsStream("/multiple.gz")) {
            byte[] bytes = IOUtils.toByteArray(resourceAsStream);

            assertTrue(chDecoderGZip.writeInbound(Unpooled.copiedBuffer(bytes)));
            Queue<Object> messages = chDecoderGZip.inboundMessages();
            assertEquals(1, messages.size());

            ByteBuf msg = (ByteBuf) messages.poll();
            assertEquals("a", msg.toString(CharsetUtil.UTF_8));
            ReferenceCountUtil.release(msg);
        } finally {
            assertFalse(chDecoderGZip.finish());
            chDecoderGZip.close();
        }
    }

    @Test
    public void testConcatenatedStreamsReadFully() throws IOException {
        EmbeddedChannel chDecoderGZip = new EmbeddedChannel(new JdkZlibDecoder(true, 0));

        try (InputStream resourceAsStream = getClass().getResourceAsStream("/multiple.gz")) {
            byte[] bytes = IOUtils.toByteArray(resourceAsStream);

            assertTrue(chDecoderGZip.writeInbound(Unpooled.copiedBuffer(bytes)));
            Queue<Object> messages = chDecoderGZip.inboundMessages();
            assertEquals(2, messages.size());

            for (String s : Arrays.asList("a", "b")) {
                ByteBuf msg = (ByteBuf) messages.poll();
                assertEquals(s, msg.toString(CharsetUtil.UTF_8));
                ReferenceCountUtil.release(msg);
            }
        } finally {
            assertFalse(chDecoderGZip.finish());
            chDecoderGZip.close();
        }
    }

    @Test
    public void testConcatenatedStreamsReadFullyWhenFragmented() throws IOException {
        EmbeddedChannel chDecoderGZip = new EmbeddedChannel(new JdkZlibDecoder(true, 0));

        try (InputStream resourceAsStream = getClass().getResourceAsStream("/multiple.gz")) {
            byte[] bytes = IOUtils.toByteArray(resourceAsStream);

            // Let's feed the input byte by byte to simulate fragmentation.
            ByteBuf buf = Unpooled.copiedBuffer(bytes);
            boolean written = false;
            while (buf.isReadable()) {
                written |= chDecoderGZip.writeInbound(buf.readRetainedSlice(1));
            }
            buf.release();

Frequently Asked Questions

What is the JdkZlibTest class?
JdkZlibTest is a class in the netty codebase, defined in codec-compression/src/test/java/io/netty/handler/codec/compression/JdkZlibTest.java.
Where is JdkZlibTest defined?
JdkZlibTest is defined in codec-compression/src/test/java/io/netty/handler/codec/compression/JdkZlibTest.java at line 47.

Analyze Your Own Codebase

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

Try Supermodel Free