Home / Class/ ParameterizedSslHandlerTest Class — netty Architecture

ParameterizedSslHandlerTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  4741a6a1_c002_17c2_c8d8_747d98eb437c["ParameterizedSslHandlerTest"]
  04d6489a_517f_c099_10e5_988a66a162f9["ParameterizedSslHandlerTest.java"]
  4741a6a1_c002_17c2_c8d8_747d98eb437c -->|defined in| 04d6489a_517f_c099_10e5_988a66a162f9
  4dc54e7c_9647_35a4_967a_9fea5968d74f["data()"]
  4741a6a1_c002_17c2_c8d8_747d98eb437c -->|method| 4dc54e7c_9647_35a4_967a_9fea5968d74f
  aa845c12_91e2_3c30_7548_04c9b1df7a6b["testCompositeBufSizeEstimationGuaranteesSynchronousWrite()"]
  4741a6a1_c002_17c2_c8d8_747d98eb437c -->|method| aa845c12_91e2_3c30_7548_04c9b1df7a6b
  f520a1a6_f743_e43e_b161_6512d3e242bf["compositeBufSizeEstimationGuaranteesSynchronousWrite()"]
  4741a6a1_c002_17c2_c8d8_747d98eb437c -->|method| f520a1a6_f743_e43e_b161_6512d3e242bf
  92d0ae6e_cc71_8410_b3eb_18399def41e7["testAlertProducedAndSend()"]
  4741a6a1_c002_17c2_c8d8_747d98eb437c -->|method| 92d0ae6e_cc71_8410_b3eb_18399def41e7
  5d15f9ae_647b_22e9_4c99_31a6377f5344["testCloseNotify()"]
  4741a6a1_c002_17c2_c8d8_747d98eb437c -->|method| 5d15f9ae_647b_22e9_4c99_31a6377f5344
  c099b416_8d1d_19d0_6815_8c3df4081484["testCloseNotifyReceivedTimeout()"]
  4741a6a1_c002_17c2_c8d8_747d98eb437c -->|method| c099b416_8d1d_19d0_6815_8c3df4081484
  1af5f038_c389_e4ed_63c1_2e586dd7d3f8["testCloseNotifyNotWaitForResponse()"]
  4741a6a1_c002_17c2_c8d8_747d98eb437c -->|method| 1af5f038_c389_e4ed_63c1_2e586dd7d3f8
  2c8f6b94_cc46_ec4d_c85d_4c14de94520f["reentryOnHandshakeCompleteNioChannel()"]
  4741a6a1_c002_17c2_c8d8_747d98eb437c -->|method| 2c8f6b94_cc46_ec4d_c85d_4c14de94520f
  a544c94d_f2e5_efaf_bba5_bf11254f4fe6["reentryOnHandshakeCompleteLocalChannel()"]
  4741a6a1_c002_17c2_c8d8_747d98eb437c -->|method| a544c94d_f2e5_efaf_bba5_bf11254f4fe6
  0b352753_ce25_c72b_dce1_343fa81f2b50["reentryOnHandshakeComplete()"]
  4741a6a1_c002_17c2_c8d8_747d98eb437c -->|method| 0b352753_ce25_c72b_dce1_343fa81f2b50
  a7cf000b_1728_2ae2_77e7_f00f03be737d["SslHandler()"]
  4741a6a1_c002_17c2_c8d8_747d98eb437c -->|method| a7cf000b_1728_2ae2_77e7_f00f03be737d

Relationship Graph

Source Code

handler/src/test/java/io/netty/handler/ssl/ParameterizedSslHandlerTest.java lines 81–692

public class ParameterizedSslHandlerTest {

    private static final String PARAMETERIZED_NAME = "{index}: clientProvider={0}, {index}: serverProvider={1}";

    static Collection<Object[]> data() {
        List<SslProvider> providers = new ArrayList<SslProvider>(3);
        if (OpenSsl.isAvailable()) {
            providers.add(SslProvider.OPENSSL);
            providers.add(SslProvider.OPENSSL_REFCNT);
        }
        providers.add(SslProvider.JDK);

        List<Object[]> params = new ArrayList<Object[]>();

        for (SslProvider cp: providers) {
            for (SslProvider sp: providers) {
                params.add(new Object[] { cp, sp });
            }
        }
        return params;
    }

    @ParameterizedTest(name = PARAMETERIZED_NAME)
    @MethodSource("data")
    @Timeout(value = 48000, unit = TimeUnit.MILLISECONDS)
    public void testCompositeBufSizeEstimationGuaranteesSynchronousWrite(
            SslProvider clientProvider, SslProvider serverProvider)
            throws CertificateException, SSLException, ExecutionException, InterruptedException {
        compositeBufSizeEstimationGuaranteesSynchronousWrite(serverProvider, clientProvider,
                true, true, true);
        compositeBufSizeEstimationGuaranteesSynchronousWrite(serverProvider, clientProvider,
                true, true, false);
        compositeBufSizeEstimationGuaranteesSynchronousWrite(serverProvider, clientProvider,
                true, false, true);
        compositeBufSizeEstimationGuaranteesSynchronousWrite(serverProvider, clientProvider,
                true, false, false);
        compositeBufSizeEstimationGuaranteesSynchronousWrite(serverProvider, clientProvider,
                false, true, true);
        compositeBufSizeEstimationGuaranteesSynchronousWrite(serverProvider, clientProvider,
                false, true, false);
        compositeBufSizeEstimationGuaranteesSynchronousWrite(serverProvider, clientProvider,
                false, false, true);
        compositeBufSizeEstimationGuaranteesSynchronousWrite(serverProvider, clientProvider,
                false, false, false);
    }

    private static void compositeBufSizeEstimationGuaranteesSynchronousWrite(
            SslProvider serverProvider, SslProvider clientProvider,
            final boolean serverDisableWrapSize,
            final boolean letHandlerCreateServerEngine, final boolean letHandlerCreateClientEngine)
            throws CertificateException, SSLException, ExecutionException, InterruptedException {
        SelfSignedCertificate ssc = CachedSelfSignedCertificate.getCachedCertificate();

        final SslContext sslServerCtx = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey())
                .sslProvider(serverProvider)
                .build();

        final SslContext sslClientCtx = SslContextBuilder.forClient()
                .trustManager(InsecureTrustManagerFactory.INSTANCE)
                .sslProvider(clientProvider).build();

        EventLoopGroup group = new MultiThreadIoEventLoopGroup(NioIoHandler.newFactory());
        Channel sc = null;
        Channel cc = null;
        try {
            final Promise<Void> donePromise = group.next().newPromise();
            // The goal is to provide the SSLEngine with many ByteBuf components to ensure that the overhead for wrap
            // is correctly accounted for on each component.
            final int numComponents = 150;
            // This is the TLS packet size. The goal is to divide the maximum amount of application data that can fit
            // into a single TLS packet into many components to ensure the overhead is correctly taken into account.
            final int desiredBytes = 16384;
            final int singleComponentSize = desiredBytes / numComponents;
            final int expectedBytes = numComponents * singleComponentSize;

            sc = new ServerBootstrap()
                    .group(group)
                    .channel(NioServerSocketChannel.class)
                    .childHandler(new ChannelInitializer<Channel>() {
                        @Override
                        protected void initChannel(Channel ch) throws Exception {

Frequently Asked Questions

What is the ParameterizedSslHandlerTest class?
ParameterizedSslHandlerTest is a class in the netty codebase, defined in handler/src/test/java/io/netty/handler/ssl/ParameterizedSslHandlerTest.java.
Where is ParameterizedSslHandlerTest defined?
ParameterizedSslHandlerTest is defined in handler/src/test/java/io/netty/handler/ssl/ParameterizedSslHandlerTest.java at line 81.

Analyze Your Own Codebase

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

Try Supermodel Free