Author: markt
Date: Thu Jul 30 18:10:35 2009
New Revision: 799392

URL: http://svn.apache.org/viewvc?rev=799392&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=47569
Use the new base class so tests clean up after themselves

Modified:
    tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java
    tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java

Modified: tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java?rev=799392&r1=799391&r2=799392&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java (original)
+++ tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java Thu Jul 30 
18:10:35 2009
@@ -38,14 +38,23 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.core.StandardContext;
+import org.apache.catalina.startup.TestTomcatBase;
 import org.apache.catalina.startup.Tomcat;
 
-import junit.framework.TestCase;
-
 /**
  * Test case for {...@link Request}. 
  */
-public class TestRequest extends TestCase {
+public class TestRequest extends TestTomcatBase {
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+    }
+
+    @Override
+    public void tearDown() throws Exception {
+        super.tearDown();
+    }
+
     /**
      * Test case for https://issues.apache.org/bugzilla/show_bug.cgi?id=37794
      * POST parameters are not returned from a call to 
@@ -54,6 +63,7 @@
      */
     public void testBug37794() throws Exception {
         Bug37794Client client = new Bug37794Client();
+        client.setPort(getPort());
 
         // Edge cases around zero
         client.doRequest(-1, false); // Unlimited
@@ -97,6 +107,8 @@
     
     private static class Bug37794Servlet extends HttpServlet {
         
+        private static final long serialVersionUID = 1L;
+
         /**
          * Only interested in the parameters and values for POST requests.
          */
@@ -120,15 +132,28 @@
     /**
      * Bug 37794 test client.
      */
-    private static class Bug37794Client extends SimpleHttpClient {
+    private class Bug37794Client extends SimpleHttpClient {
+        
+        private boolean init;
+        
+        private synchronized void init() throws Exception {
+            if (init) return;
+            
+            Tomcat tomcat = getTomcatInstance();
+            StandardContext root = tomcat.addContext("", TEMP_DIR);
+            Tomcat.addServlet(root, "Bug37794", new Bug37794Servlet());
+            root.addServletMapping("/test", "Bug37794");
+            tomcat.start();
+            
+            init = true;
+        }
+        
         private Exception doRequest(int postLimit, boolean ucChunkedHead) {
-            Tomcat tomcat = new Tomcat();
+            Tomcat tomcat = getTomcatInstance();
+            
             try {
-                StandardContext root = tomcat.addContext("", TEMP_DIR);
-                Tomcat.addServlet(root, "Bug37794", new Bug37794Servlet());
-                root.addServletMapping("/test", "Bug37794");
+                init();
                 tomcat.getConnector().setMaxPostSize(postLimit);
-                tomcat.start();
                 
                 // Open connection
                 connect();
@@ -167,12 +192,6 @@
                 disconnect();
             } catch (Exception e) {
                 return e;
-            } finally {
-                try {
-                    tomcat.stop();
-                } catch (Exception e) {
-                    // Ignore
-                }
             }
             return null;
         }
@@ -209,6 +228,7 @@
         private Socket socket;
         private Writer writer;
         private BufferedReader reader;
+        private int port = 8080;
         
         private String[] request;
         private int requestPause = 1000;
@@ -217,6 +237,10 @@
         private List<String> responseHeaders = new ArrayList<String>();
         private String responseBody;
 
+        public void setPort(int thePort) {
+            port = thePort;
+        }
+
         public void setRequest(String[] theRequest) {
             request = theRequest;
         }
@@ -238,7 +262,7 @@
         }
 
         public void connect() throws UnknownHostException, IOException {
-            socket = new Socket("localhost", 8080);
+            socket = new Socket("localhost", port);
             OutputStream os = socket.getOutputStream();
             writer = new OutputStreamWriter(os);
             InputStream is = socket.getInputStream();

Modified: tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java?rev=799392&r1=799391&r2=799392&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java (original)
+++ tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java Thu Jul 30 
18:10:35 2009
@@ -29,19 +29,11 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import junit.framework.TestCase;
-
 import org.apache.catalina.core.StandardContext;
 import org.apache.tomcat.util.buf.ByteChunk;
 
-public class TestTomcat extends TestCase {
-    Tomcat tomcat;
-    // if you run in eclipse - or tomcat src dir 
-    String base = "./"; 
-    File tempDir;
-    static int port = 8001;
-    long t0;
-    
+public class TestTomcat extends TestTomcatBase {
+
     /**
      * Simple servlet to test in-line registration 
      */
@@ -55,28 +47,6 @@
         }
     }
 
-    public void setUp() throws Exception {
-        t0 = System.currentTimeMillis();
-        tempDir = new File(base + "output/tmp");
-        tempDir.mkdir();
-        
-        tomcat = new Tomcat();
-        tomcat.setBaseDir(tempDir.getAbsolutePath());
-        tomcat.getHost().setAppBase(tempDir.getAbsolutePath() + "/webapps");
-          
-        // If each test is running on same port - they
-        // may interfere with each other (on unix at least)
-        port++;
-        tomcat.setPort(port);
-    }
-    
-    public void tearDown() throws Exception {
-        tomcat.stop();
-        System.err.println("Test time: " + 
-                (System.currentTimeMillis() - t0));
-        ExpandWar.delete(tempDir);
-    }
-    
     /** 
      * Start tomcat with a single context and one 
      * servlet - all programmatic, no server.xml or 
@@ -85,10 +55,11 @@
      * @throws Exception 
      */
     public void testProgrammatic() throws Exception {
+        Tomcat tomcat = getTomcatInstance();
         
+        // Must have a real docBase - just use temp
         StandardContext ctx = 
-            tomcat.addContext("/", 
-                    tempDir.getAbsolutePath());
+            tomcat.addContext("/", System.getProperty("java.io.tmpdir"));
         // You can customize the context by calling 
         // its API
         
@@ -97,27 +68,34 @@
         
         tomcat.start();
         
-        ByteChunk res = getUrl("http://localhost:"; + port + "/");
+        ByteChunk res = getUrl("http://localhost:"; + getPort() + "/");
         assertEquals(res.toString(), "Hello world");
     }
 
     public void testSingleWebapp() throws Exception {
+        Tomcat tomcat = getTomcatInstance();
+
         // Currently in sandbox/tomcat-lite
         File appDir = 
-            new File(base + "output/build/webapps/examples");
+            new File("output/build/webapps/examples");
         // app dir is relative to server home
         tomcat.addWebapp(null, "/examples", appDir.getAbsolutePath());
         
         tomcat.start();
 
-        ByteChunk res = getUrl("http://localhost:"; + port + 
"/examples/servlets/servlet/HelloWorldExample");
+        ByteChunk res = getUrl("http://localhost:"; + getPort() +
+                "/examples/servlets/servlet/HelloWorldExample");
         assertTrue(res.toString().indexOf("<h1>Hello World!</h1>") > 0);
     }
     
     public void testLaunchTime() throws Exception {
-        tomcat.addContext(null, "/", base);
+        Tomcat tomcat = getTomcatInstance();
+        long t0 = System.currentTimeMillis();
+        tomcat.addContext(null, "/", ".");
         tomcat.start();
-    }
+        System.err.println("Test time: " + 
+                (System.currentTimeMillis() - t0));
+     }
     
     /**
      *  Wrapper for getting the response.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to