You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2012/11/24 19:47:12 UTC
svn commit: r1413235 -
/tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java
Author: markt
Date: Sat Nov 24 18:47:11 2012
New Revision: 1413235
URL: http://svn.apache.org/viewvc?rev=1413235&view=rev
Log:
Expand the tests to cover blocking and non-blocking
Modified:
tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java
Modified: tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java?rev=1413235&r1=1413234&r2=1413235&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java (original)
+++ tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgrade.java Sat Nov 24 18:47:11 2012
@@ -47,19 +47,36 @@ import static org.apache.catalina.startu
import org.apache.catalina.Context;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.catalina.util.IOTools;
public class TestUpgrade extends TomcatBaseTest {
private static final String MESSAGE = "This is a test.";
@Test
- public void testSimpleUpgrade() throws Exception {
- doUpgrade();
+ public void testSimpleUpgradeBlocking() throws Exception {
+ doUpgrade(EchoBlocking.class);
}
@Test
- public void testSingleMessage() throws Exception {
- UpgradeConnection conn = doUpgrade();
+ public void testSimpleUpgradeNonBlocking() throws Exception {
+ doUpgrade(EchoNonBlocking.class);
+ }
+
+ @Test
+ public void testMessagesBlocking() throws Exception {
+ doTestMessages(EchoBlocking.class);
+ }
+
+ @Test
+ public void testMessagesNonBlocking() throws Exception {
+ doTestMessages(EchoNonBlocking.class);
+ }
+
+ private void doTestMessages (
+ Class<? extends ProtocolHandler> upgradeHandlerClass)
+ throws Exception {
+ UpgradeConnection conn = doUpgrade(upgradeHandlerClass);
PrintWriter pw = new PrintWriter(conn.getWriter());
BufferedReader reader = conn.getReader();
@@ -79,7 +96,8 @@ public class TestUpgrade extends TomcatB
}
- private UpgradeConnection doUpgrade() throws Exception {
+ private UpgradeConnection doUpgrade(
+ Class<? extends ProtocolHandler> upgradeHandlerClass) throws Exception {
// Setup Tomcat instance
Tomcat tomcat = getTomcatInstance();
@@ -87,7 +105,7 @@ public class TestUpgrade extends TomcatB
Context ctx =
tomcat.addContext("", System.getProperty("java.io.tmpdir"));
- UpgradeServlet servlet = new UpgradeServlet();
+ UpgradeServlet servlet = new UpgradeServlet(upgradeHandlerClass);
Tomcat.addServlet(ctx, "servlet", servlet);
ctx.addServletMapping("/", "servlet");
@@ -128,11 +146,24 @@ public class TestUpgrade extends TomcatB
private static final long serialVersionUID = 1L;
+ private final Class<? extends ProtocolHandler> upgradeHandlerClass;
+
+ public UpgradeServlet(Class<? extends ProtocolHandler> upgradeHandlerClass) {
+ this.upgradeHandlerClass = upgradeHandlerClass;
+ }
+
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
- req.upgrade(new EchoNonBlocking());
+ ProtocolHandler upgradeHandler;
+ try {
+ upgradeHandler = upgradeHandlerClass.newInstance();
+ } catch (InstantiationException | IllegalAccessException e) {
+ throw new ServletException(e);
+ }
+
+ req.upgrade(upgradeHandler);
}
}
@@ -154,7 +185,23 @@ public class TestUpgrade extends TomcatB
}
}
- private static class EchoNonBlocking implements ProtocolHandler {
+
+ protected static class EchoBlocking implements ProtocolHandler {
+ @Override
+ public void init(WebConnection connection) {
+
+ try (ServletInputStream sis = connection.getInputStream();
+ ServletOutputStream sos = connection.getOutputStream()){
+
+ IOTools.flow(sis, sos);
+ } catch (IOException ioe) {
+ throw new IllegalStateException(ioe);
+ }
+ }
+ }
+
+
+ protected static class EchoNonBlocking implements ProtocolHandler {
private ServletInputStream sis;
private ServletOutputStream sos;
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org