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 {
Source
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