From 2fbce6d470862b8896a44cddf1a061b3b738d206 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Fri, 21 Jul 2017 11:39:44 -0700 Subject: [PATCH] Delete temporary self-signed certs in SSLEngineTest-based tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Motivation: Lots of usages of SelfSignedCertificates were not deleting the certs at the end of the test. This includes setupHandlers() which is used by extending classes. Although these files will be deleted at JVM exit and deleting them early does not free the JVM from trying to delete them at shutdown, it's good practice to delete eagerly and since users sometimes use tests as a form of documentation, it'd be good for them to see the explicit deletes. Modifications: Add missing delete() calls to ½ of the SelfSignedCertificates-using tests. Result: Tests that more clearly communicates which resources are created and may accumulate without early delete. --- .../io/netty/handler/ssl/SSLEngineTest.java | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java b/handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java index 4f091a04b7..74ed897ea8 100644 --- a/handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java +++ b/handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java @@ -1073,6 +1073,7 @@ public abstract class SSLEngineTest { } finally { cleanupClientSslEngine(clientEngine); cleanupServerSslEngine(serverEngine); + ssc.delete(); } } @@ -1107,6 +1108,7 @@ public abstract class SSLEngineTest { } finally { cleanupClientSslEngine(clientEngine); cleanupServerSslEngine(serverEngine); + ssc.delete(); } } @@ -1218,6 +1220,7 @@ public abstract class SSLEngineTest { clientChannel = ccf.channel(); serverLatch.await(); + ssc.delete(); } protected void testEnablingAnAlreadyDisabledSslProtocol(String[] protocols1, String[] protocols2) throws Exception { @@ -1401,24 +1404,28 @@ public abstract class SSLEngineTest { throws InterruptedException, SSLException, CertificateException { SelfSignedCertificate ssc = new SelfSignedCertificate(); - setupHandlers(SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey(), null) - .sslProvider(sslServerProvider()) - .sslContextProvider(serverSslContextProvider()) - .ciphers(null, IdentityCipherSuiteFilter.INSTANCE) - .applicationProtocolConfig(serverApn) - .sessionCacheSize(0) - .sessionTimeout(0) - .build(), + try { + setupHandlers(SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey(), null) + .sslProvider(sslServerProvider()) + .sslContextProvider(serverSslContextProvider()) + .ciphers(null, IdentityCipherSuiteFilter.INSTANCE) + .applicationProtocolConfig(serverApn) + .sessionCacheSize(0) + .sessionTimeout(0) + .build(), - SslContextBuilder.forClient() - .sslProvider(sslClientProvider()) - .sslContextProvider(clientSslContextProvider()) - .applicationProtocolConfig(clientApn) - .trustManager(InsecureTrustManagerFactory.INSTANCE) - .ciphers(null, IdentityCipherSuiteFilter.INSTANCE) - .sessionCacheSize(0) - .sessionTimeout(0) - .build()); + SslContextBuilder.forClient() + .sslProvider(sslClientProvider()) + .sslContextProvider(clientSslContextProvider()) + .applicationProtocolConfig(clientApn) + .trustManager(InsecureTrustManagerFactory.INSTANCE) + .ciphers(null, IdentityCipherSuiteFilter.INSTANCE) + .sessionCacheSize(0) + .sessionTimeout(0) + .build()); + } finally { + ssc.delete(); + } } protected void setupHandlers(SslContext serverCtx, SslContext clientCtx) @@ -1644,6 +1651,7 @@ public abstract class SSLEngineTest { } finally { cleanupClientSslEngine(client); cleanupServerSslEngine(server); + cert.delete(); } } @@ -1711,6 +1719,7 @@ public abstract class SSLEngineTest { } finally { cleanupClientSslEngine(clientEngine); cleanupServerSslEngine(serverEngine); + ssc.delete(); } } @@ -1859,6 +1868,7 @@ public abstract class SSLEngineTest { } finally { cleanupClientSslEngine(client); cleanupServerSslEngine(server); + cert.delete(); } } @@ -1905,6 +1915,7 @@ public abstract class SSLEngineTest { } finally { cleanupClientSslEngine(client); cleanupServerSslEngine(server); + cert.delete(); } }