Author: markt Date: Tue Jul 31 21:16:28 2018 New Revision: 1837176 URL: http://svn.apache.org/viewvc?rev=1837176&view=rev Log: Make tests more robust and not dependent on order of individual test execution.
Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java?rev=1837176&r1=1837175&r2=1837176&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java Tue Jul 31 21:16:28 2018 @@ -59,23 +59,24 @@ public class TestClientCert extends Tomc getTomcatInstance().start(); // Unprotected resource - ByteChunk res = - getUrl("https://localhost:" + getPort() + "/unprotected"); + ByteChunk res = getUrl("https://localhost:" + getPort() + "/unprotected"); + int count = TesterSupport.getLastClientAuthRequestedIssuerCount(); if (log.isDebugEnabled()) { - int count = TesterSupport.getLastClientAuthRequestedIssuerCount(); log.debug("Last client KeyManager usage: " + TesterSupport.getLastClientAuthKeyManagerUsage() + ", " + count + " requested Issuers, first one: " + (count > 0 ? TesterSupport.getLastClientAuthRequestedIssuer(0).getName() : "NONE")); - log.debug("Expected requested Issuer: " + TesterSupport.getClientAuthExpectedIssuer()); + log.debug("Expected requested Issuer: " + + (preemptive ? TesterSupport.getClientAuthExpectedIssuer() : "NONE")); } - Assert.assertTrue("Checking requested client issuer against " + - TesterSupport.getClientAuthExpectedIssuer(), - TesterSupport.checkLastClientAuthRequestedIssuers()); if (preemptive) { + Assert.assertTrue("Checking requested client issuer against " + + TesterSupport.getClientAuthExpectedIssuer(), + TesterSupport.checkLastClientAuthRequestedIssuers()); Assert.assertEquals("OK-" + TesterSupport.ROLE, res.toString()); } else { + Assert.assertEquals(0, count); Assert.assertEquals("OK", res.toString()); } @@ -83,7 +84,7 @@ public class TestClientCert extends Tomc res = getUrl("https://localhost:" + getPort() + "/protected"); if (log.isDebugEnabled()) { - int count = TesterSupport.getLastClientAuthRequestedIssuerCount(); + count = TesterSupport.getLastClientAuthRequestedIssuerCount(); log.debug("Last client KeyManager usage: " + TesterSupport.getLastClientAuthKeyManagerUsage() + ", " + count + " requested Issuers, first one: " + (count > 0 ? TesterSupport.getLastClientAuthRequestedIssuer(0).getName() : "NONE")); @@ -128,41 +129,42 @@ public class TestClientCert extends Tomc Arrays.fill(body, TesterSupport.DATA); // Unprotected resource - ByteChunk res = postUrl(body, - "https://localhost:" + getPort() + "/unprotected"); + ByteChunk res = postUrl(body, "https://localhost:" + getPort() + "/unprotected"); + int count = TesterSupport.getLastClientAuthRequestedIssuerCount(); if (log.isDebugEnabled()) { - int count = TesterSupport.getLastClientAuthRequestedIssuerCount(); log.debug("Last client KeyManager usage: " + TesterSupport.getLastClientAuthKeyManagerUsage() + ", " + count + " requested Issuers, first one: " + (count > 0 ? TesterSupport.getLastClientAuthRequestedIssuer(0).getName() : "NONE")); - log.debug("Expected requested Issuer: " + TesterSupport.getClientAuthExpectedIssuer()); + log.debug("Expected requested Issuer: NONE"); } - Assert.assertTrue("Checking requested client issuer against " + - TesterSupport.getClientAuthExpectedIssuer(), - TesterSupport.checkLastClientAuthRequestedIssuers()); + // Unprotected resource with no preemptive authentication + Assert.assertEquals(0, count); + // No authentication no need to buffer POST body during TLS handshake so + // no possibility of hitting buffer limit Assert.assertEquals("OK-" + bodySize, res.toString()); // Protected resource res.recycle(); - int rc = postUrl(body, "https://localhost:" + getPort() + "/protected", - res, null); + int rc = postUrl(body, "https://localhost:" + getPort() + "/protected", res, null); + count = TesterSupport.getLastClientAuthRequestedIssuerCount(); if (log.isDebugEnabled()) { - int count = TesterSupport.getLastClientAuthRequestedIssuerCount(); log.debug("Last client KeyManager usage: " + TesterSupport.getLastClientAuthKeyManagerUsage() + ", " + count + " requested Issuers, first one: " + (count > 0 ? TesterSupport.getLastClientAuthRequestedIssuer(0).getName() : "NONE")); log.debug("Expected requested Issuer: " + TesterSupport.getClientAuthExpectedIssuer()); } - Assert.assertTrue("Checking requested client issuer against " + - TesterSupport.getClientAuthExpectedIssuer(), - TesterSupport.checkLastClientAuthRequestedIssuers()); if (expectProtectedFail) { Assert.assertEquals(401, rc); + // POST body buffer fails so TLS handshake never happens + Assert.assertEquals(0, count); } else { + Assert.assertTrue("Checking requested client issuer against " + + TesterSupport.getClientAuthExpectedIssuer(), + TesterSupport.checkLastClientAuthRequestedIssuers()); Assert.assertEquals("OK-" + bodySize, res.toString()); } } Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java?rev=1837176&r1=1837175&r2=1837176&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java Tue Jul 31 21:16:28 2018 @@ -75,7 +75,7 @@ public final class TesterSupport { public static final String ROLE = "testrole"; - private static String clientAuthExpectedIssuer = null; + private static String clientAuthExpectedIssuer; private static String lastUsage = "NONE"; private static Principal[] lastRequestedIssuers = new Principal[0]; @@ -275,6 +275,10 @@ public final class TesterSupport { lc.setAuthMethod("CLIENT-CERT"); ctx.setLoginConfig(lc); ctx.getPipeline().addValve(new SSLAuthenticator()); + + // Clear the tracking data + lastUsage = "NONE"; + lastRequestedIssuers = new Principal[0]; } protected static String getClientAuthExpectedIssuer() { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org