Author: costin
Date: Thu Jun 25 15:16:44 2009
New Revision: 788385

URL: http://svn.apache.org/viewvc?rev=788385&view=rev
Log:
Adjusting the tests

Added:
    tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/HexDump.java   
(with props)
Removed:
    
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/TomcatLiteNoConnectorTest.java
Modified:
    
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/LiteTestHelper.java
    
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/LiteWatchdogServletTests.java
    
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/PropertiesSpiTest.java
    
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/TomcatLiteSimpleTest.java
    
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/GTest.java
    
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/WatchdogHttpClient.java

Added: tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/HexDump.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/HexDump.java?rev=788385&view=auto
==============================================================================
--- tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/HexDump.java 
(added)
+++ tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/HexDump.java 
Thu Jun 25 15:16:44 2009
@@ -0,0 +1,252 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.tomcat.lite;
+
+import java.io.ByteArrayOutputStream;
+
+import org.apache.tomcat.util.res.StringManager;
+
+/**
+ * Tables useful when converting byte arrays to and from strings of hexadecimal
+ * digits.
+ * Code from Ajp11, from Apache's JServ.
+ *
+ * @author Craig R. McClanahan
+ */
+
+public final class HexDump {
+
+
+    // -------------------------------------------------------------- Constants
+    static StringManager sm;
+
+    /**
+     *  Table for HEX to DEC byte translation.
+     */
+    public static final int[] DEC = {
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        00, 01, 02, 03, 04, 05, 06, 07,  8,  9, -1, -1, -1, -1, -1, -1,
+        -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+    };
+
+
+    /**
+     * Table for DEC to HEX byte translation.
+     */
+    public static final byte[] HEX = 
+    { (byte) '0', (byte) '1', (byte) '2', (byte) '3', (byte) '4', (byte) '5', 
+      (byte) '6', (byte) '7', (byte) '8', (byte) '9', (byte) 'a', (byte) 'b', 
+      (byte) 'c', (byte) 'd', (byte) 'e', (byte) 'f' };
+
+
+    // --------------------------------------------------------- Static Methods
+
+
+    /**
+     * Convert a String of hexadecimal digits into the corresponding
+     * byte array by encoding each two hexadecimal digits as a byte.
+     *
+     * @param digits Hexadecimal digits representation
+     *
+     * @exception IllegalArgumentException if an invalid hexadecimal digit
+     *  is found, or the input string contains an odd number of hexadecimal
+     *  digits
+     */
+    public static byte[] convert(String digits) {
+
+       ByteArrayOutputStream baos = new ByteArrayOutputStream();
+       for (int i = 0; i < digits.length(); i += 2) {
+           char c1 = digits.charAt(i);
+           if ((i+1) >= digits.length())
+               throw new IllegalArgumentException
+                   (sm.getString("hexUtil.odd"));
+           char c2 = digits.charAt(i + 1);
+           byte b = 0;
+           if ((c1 >= '0') && (c1 <= '9'))
+               b += ((c1 - '0') * 16);
+           else if ((c1 >= 'a') && (c1 <= 'f'))
+               b += ((c1 - 'a' + 10) * 16);
+           else if ((c1 >= 'A') && (c1 <= 'F'))
+               b += ((c1 - 'A' + 10) * 16);
+           else
+               throw new IllegalArgumentException
+                   (sm.getString("hexUtil.bad"));
+           if ((c2 >= '0') && (c2 <= '9'))
+               b += (c2 - '0');
+           else if ((c2 >= 'a') && (c2 <= 'f'))
+               b += (c2 - 'a' + 10);
+           else if ((c2 >= 'A') && (c2 <= 'F'))
+               b += (c2 - 'A' + 10);
+           else
+               throw new IllegalArgumentException
+                   (sm.getString("hexUtil.bad"));
+           baos.write(b);
+       }
+       return (baos.toByteArray());
+
+    }
+
+
+    /**
+     * Convert a byte array into a printable format containing a
+     * String of hexadecimal digit characters (two per byte).
+     *
+     * @param bytes Byte array representation
+     */
+    public static String convert(byte bytes[]) {
+
+       StringBuffer sb = new StringBuffer(bytes.length * 2);
+       for (int i = 0; i < bytes.length; i++) {
+           sb.append(convertDigit((bytes[i] >> 4)));
+           sb.append(convertDigit((bytes[i] & 0x0f)));
+       }
+       return (sb.toString());
+
+    }
+
+    
+    /**
+     * Convert 4 hex digits to an int, and return the number of converted
+     * bytes.
+     *
+     * @param hex Byte array containing exactly four hexadecimal digits
+     *
+     * @exception IllegalArgumentException if an invalid hexadecimal digit
+     *  is included
+     */
+    public static int convert2Int( byte[] hex ) {
+       // Code from Ajp11, from Apache's JServ
+    
+       // assert b.length==4
+       // assert valid data
+       int len;
+       if(hex.length < 4 ) return 0;
+       if( DEC[hex[0]]<0 )
+           throw new IllegalArgumentException(sm.getString("hexUtil.bad"));
+       len = DEC[hex[0]];
+       len = len << 4;
+       if( DEC[hex[1]]<0 )
+           throw new IllegalArgumentException(sm.getString("hexUtil.bad"));
+       len += DEC[hex[1]];
+       len = len << 4;
+       if( DEC[hex[2]]<0 )
+           throw new IllegalArgumentException(sm.getString("hexUtil.bad"));
+       len += DEC[hex[2]];
+       len = len << 4;
+       if( DEC[hex[3]]<0 )
+           throw new IllegalArgumentException(sm.getString("hexUtil.bad"));
+       len += DEC[hex[3]];
+       return len;
+    }
+
+
+
+    /**
+     * Provide a mechanism for ensuring this class is loaded. 
+     */
+    public static void load() {
+        // Nothing to do
+    }
+
+    /**
+     * [Private] Convert the specified value (0 .. 15) to the corresponding
+     * hexadecimal digit.
+     *
+     * @param value Value to be converted
+     */
+    private static char convertDigit(int value) {
+
+       value &= 0x0f;
+       if (value >= 10)
+           return ((char) (value - 10 + 'a'));
+       else
+           return ((char) (value + '0'));
+
+    }
+
+    /**
+     * <code>getHexValue</code> displays a formatted hex
+     * representation of the passed byte array.  It also
+     * allows for only a specified offset and length of 
+     * a particular array to be returned.
+     *
+     * @param bytes <code>byte[]</code> array to process.
+     * @param pos offset to begin processing.
+     * @param len number of bytes to process.
+     * @return <code>String</code> formatted hex representation of processed 
+     *         array.
+     */
+    public static String getHexDump(byte[] bytes, int pos, int len,
+                                     boolean displayOffset) {
+        StringBuffer out = new StringBuffer( len * 2 );
+
+        for (int j = 0; j < len; j += 16) {
+            hexLine(out, bytes, pos + j, pos + len, displayOffset);
+        }
+     
+        return out.toString();
+    }
+    
+    private static void hexLine(StringBuffer out, 
+                                byte[] bytes, int start, int end,
+                                boolean displayOffset) {
+
+        if ( displayOffset ) {
+            out.append(convertDigit((int) (start >> 12)));
+            out.append(convertDigit((int) (start >> 8)));
+            out.append(convertDigit((int) (start >> 4)));
+            out.append(convertDigit(start & 0x0F));
+            out.append(": ");
+        }
+        for (int i = start; i < start + 16; i++) {
+
+            if (i < end) {
+                out.append(convertDigit((int) (bytes[i] >> 4)));
+                out.append(convertDigit(bytes[i] & 0x0F));
+                out.append(" ");
+            } else { 
+                out.append("   ");
+            }
+        }
+        
+        out.append(" | ");
+        
+        for (int i = start; i < start + 16 && i < end; i++) {
+            if( ! Character.isISOControl( (char)bytes[i] )) {
+                out.append( new Character((char)bytes[i]) );
+            } else {
+                out.append( "." );
+            }
+        }
+        
+        out.append("\n");
+    }
+}

Propchange: 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/HexDump.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/LiteTestHelper.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/LiteTestHelper.java?rev=788385&r1=788384&r2=788385&view=diff
==============================================================================
--- 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/LiteTestHelper.java
 (original)
+++ 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/LiteTestHelper.java
 Thu Jun 25 15:16:44 2009
@@ -15,26 +15,29 @@
 
 import org.apache.coyote.OutputBuffer;
 import org.apache.coyote.Response;
-import org.apache.tomcat.lite.coyote.CoyoteHttp;
+import org.apache.tomcat.lite.coyote.CoyoteConnector;
 import org.apache.tomcat.util.buf.ByteChunk;
 
 public class LiteTestHelper {
 
-    public static void initServletsAndRun(TomcatLite lite, int port) throws 
ServletException, IOException {
+    public static void addContext(TomcatLite lite) throws ServletException {
         ServletContextImpl ctx = 
-          (ServletContextImpl) lite.addServletContext(null, null, "/test1");
-        
-        ctx.addServlet("test", new SimpleServlet());
-        ctx.addMapping("/1stTest", "test");
-
-        ctx.addServlet("testException", new HttpServlet() {
-            public void doGet(HttpServletRequest req, HttpServletResponse res) 
-              throws IOException {
-              throw new NullPointerException();
-            }
-          });
-          ctx.addMapping("/testException", "testException");
-        
+            (ServletContextImpl) lite.addServletContext(null, null, "/test1");
+          
+          ctx.addServlet("test", new SimpleServlet());
+          ctx.addMapping("/1stTest", "test");
+
+          ctx.addServlet("testException", new HttpServlet() {
+              public void doGet(HttpServletRequest req, HttpServletResponse 
res) 
+                throws IOException {
+                throw new NullPointerException();
+              }
+            });
+            ctx.addMapping("/testException", "testException");
+    }
+    
+    public static void initServletsAndRun(TomcatLite lite, int port) throws 
ServletException, IOException {
+        addContext(lite);
         lite.init();
         lite.start(); 
 
@@ -54,9 +57,9 @@
     
     public static void addConnector(TomcatLite lite, 
                                     int port, boolean daemon) { 
-        CoyoteHttp coyoteAdapter = (CoyoteHttp) lite.getConnector();
-        coyoteAdapter.getConnectors().setPort(port);
-        coyoteAdapter.getConnectors().setDaemon(daemon);
+        CoyoteConnector coyoteAdapter = (CoyoteConnector) lite.getConnector();
+        coyoteAdapter.setPort(port);
+        coyoteAdapter.setDaemon(daemon);
     }
     
     /**
@@ -79,29 +82,7 @@
         }
         return out;
     }
-
-    /** 
-     * Create a ServletRequestImpl object that can be used with 
-     *  TomcatLite.service(request).
-     *  
-     * All output will be added to the ByteChunk out.
-     * 
-     * This requires no HTTP connector.
-     * 
-     * @see TomcatLiteNoConnector
-     */
-    public static ServletRequestImpl createMessage(TomcatLite lite, 
-                                                   String uri,
-                                                   final ByteChunk out) {
-       ServletRequestImpl req = lite.createMessage();
-       req.setRequestURI(uri);
-       ServletResponseImpl res = req.getResponse();
-       res.getCoyoteResponse().setOutputBuffer(
-                   new ByteChunkOutputBuffer(out));
-       return req;
-     }
     
-
     static class ByteChunkOutputBuffer implements OutputBuffer {
         
         protected ByteChunk output = null;

Modified: 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/LiteWatchdogServletTests.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/LiteWatchdogServletTests.java?rev=788385&r1=788384&r2=788385&view=diff
==============================================================================
--- 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/LiteWatchdogServletTests.java
 (original)
+++ 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/LiteWatchdogServletTests.java
 Thu Jun 25 15:16:44 2009
@@ -61,6 +61,10 @@
       }
   }
   
+  protected void addConnector(TomcatLite liteServer) {
+      LiteTestHelper.addConnector(liteServer, 8080, true);      
+  }
+  
   public void initServerWithWatchdog(String wdDir) throws ServletException, 
           IOException {
 
@@ -70,7 +74,7 @@
       //connector.addAdapter("/", new MapperAdapter());
 
       TomcatLite liteServer = new TomcatLite();
-      LiteTestHelper.addConnector(liteServer, 8080, true);
+      addConnector(liteServer);
       liteServer.init("webapps/ROOT", "/");
 
       for (String s : new String[] {      

Modified: 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/PropertiesSpiTest.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/PropertiesSpiTest.java?rev=788385&r1=788384&r2=788385&view=diff
==============================================================================
--- 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/PropertiesSpiTest.java
 (original)
+++ 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/PropertiesSpiTest.java
 Thu Jun 25 15:16:44 2009
@@ -23,9 +23,9 @@
     }
     
     public void testArgs() throws IOException { 
-        Properties res = new Properties();
-        SimpleObjectManager.processArgs(new String[] {
-            "-a=1", "-b", "2"}, res);
+        spi = new SimpleObjectManager(new String[] {
+            "-a=1", "-b", "2"});
+        Properties res = spi.getProperties();
         
         assertEquals("1", res.get("a"));
         assertEquals("2", res.get("b"));

Modified: 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/TomcatLiteSimpleTest.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/TomcatLiteSimpleTest.java?rev=788385&r1=788384&r2=788385&view=diff
==============================================================================
--- 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/TomcatLiteSimpleTest.java
 (original)
+++ 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/lite/TomcatLiteSimpleTest.java
 Thu Jun 25 15:16:44 2009
@@ -22,14 +22,10 @@
 
 public class TomcatLiteSimpleTest extends TestCase {
 
-  TomcatLite lite = new TomcatLite(); 
-  
-  void initServer() throws Exception {
-    LiteTestHelper.initServletsAndRun(lite, 8804);
-  }
+  protected TomcatLite lite = new TomcatLite(); 
   
   public void setUp() throws Exception {
-    initServer();
+      LiteTestHelper.initServletsAndRun(lite, 8804);
   }
   
   public void tearDown() throws Exception {

Modified: 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/GTest.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/GTest.java?rev=788385&r1=788384&r2=788385&view=diff
==============================================================================
--- 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/GTest.java
 (original)
+++ 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/GTest.java
 Thu Jun 25 15:16:44 2009
@@ -35,7 +35,8 @@
 import java.util.StringTokenizer;
 import java.util.Vector;
 
-import org.apache.tomcat.util.buf.HexUtils;
+import org.apache.tomcat.lite.HexDump;
+import org.apache.tools.ant.BuildException;
 
 
 // derived from Jsp
@@ -679,7 +680,9 @@
                             for ( int i = 0; i < eSize; i++ ) {
                                 if ( headerValues.contains( 
unexpectedValues.get( i ) ) ) {
                                     numberFound++;
-                                    headerValues.remove( headerValues.indexOf( 
headerFieldName ) );
+                                    if (headerValues.indexOf(headerFieldName) 
>= 0) {
+                                        headerValues.remove( 
headerValues.indexOf( headerFieldName ) );
+                                    }
                                 }
                             }
                             if ( numberFound == eSize ) {
@@ -1044,8 +1047,8 @@
     private void dumpHex( byte[] serverResponse, byte[] goldenFile ) {
         StringBuffer outBuf = new StringBuffer( ( serverResponse.length + 
goldenFile.length ) * 2 );
 
-        String fromServerString = HexUtils.getHexDump( serverResponse, 0, 
serverResponse.length, true );
-        String fromGoldenFileString = HexUtils.getHexDump( goldenFile, 0, 
goldenFile.length, true );
+        String fromServerString = HexDump.getHexDump( serverResponse, 0, 
serverResponse.length, true );
+        String fromGoldenFileString = HexDump.getHexDump( goldenFile, 0, 
goldenFile.length, true );
 
         outBuf.append( " Hex dump of server response and goldenfile 
below.\n\n### RESPONSE FROM SERVER ###\n" );
         outBuf.append( "----------------------------\n" );

Modified: 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/WatchdogHttpClient.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/WatchdogHttpClient.java?rev=788385&r1=788384&r2=788385&view=diff
==============================================================================
--- 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/WatchdogHttpClient.java
 (original)
+++ 
tomcat/trunk/modules/tomcat-lite/test/org/apache/tomcat/test/watchdog/WatchdogHttpClient.java
 Thu Jun 25 15:16:44 2009
@@ -46,7 +46,7 @@
         
         // XXX headers are ignored
         Socket socket = new Socket( host, port );
-
+        
         //socket obtained, rebuild the request.
         rebuildRequest(client, client.request, socket);
 
@@ -249,6 +249,8 @@
                     System.out.println( "Partial read: " + sb.toString() );
                     ex.printStackTrace();
                 }
+                input.close();
+                break;
             }
         }
         return  sb.toString();



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

Reply via email to