You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2011/07/10 12:10:33 UTC

svn commit: r1144802 - in /tomcat/trunk: build.properties.default build.xml test/org/apache/catalina/mbeans/TestRegistration.java test/org/apache/catalina/startup/TomcatBaseTest.java webapps/docs/changelog.xml

Author: rjung
Date: Sun Jul 10 10:10:33 2011
New Revision: 1144802

URL: http://svn.apache.org/viewvc?rev=1144802&view=rev
Log:
Add option test.accesslog to activate AccessLog
for unit tests.

Modified:
    tomcat/trunk/build.properties.default
    tomcat/trunk/build.xml
    tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java
    tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/build.properties.default
URL: http://svn.apache.org/viewvc/tomcat/trunk/build.properties.default?rev=1144802&r1=1144801&r2=1144802&view=diff
==============================================================================
--- tomcat/trunk/build.properties.default (original)
+++ tomcat/trunk/build.properties.default Sun Jul 10 10:10:33 2011
@@ -38,7 +38,10 @@ execute.test.bio=true
 execute.test.nio=true
 # Still requires APR/native library to be present
 execute.test.apr=true
+# Stop testing if a failure occurs
 test.haltonfailure=false
+# Activate AccessLog during testing
+test.accesslog=false
 
 # Workaround against http://bugs.sun.com/view_bug.do?bug_id=6202721
 test.jvmarg.egd=-Djava.security.egd=file:/dev/./urandom

Modified: tomcat/trunk/build.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/build.xml?rev=1144802&r1=1144801&r2=1144802&view=diff
==============================================================================
--- tomcat/trunk/build.xml (original)
+++ tomcat/trunk/build.xml Sun Jul 10 10:10:33 2011
@@ -1102,6 +1102,7 @@
         <sysproperty key="tomcat.test.temp" value="${test.temp}" />
         <sysproperty key="tomcat.test.tomcatbuild" value="${tomcat.build}" />
         <sysproperty key="tomcat.test.protocol" value="@{protocol}" />
+        <sysproperty key="tomcat.test.accesslog" value="${test.accesslog}" />
 
         <formatter type="plain" usefile="true" extension="@{extension}"/>
 

Modified: tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java?rev=1144802&r1=1144801&r2=1144802&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java (original)
+++ tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java Sun Jul 10 10:10:33 2011
@@ -59,6 +59,16 @@ public class TestRegistration extends To
         };
     }
 
+    private String[] optionalMBeanNames(String host, String context) {
+        if (isAccessLogEnabled()) {
+            return new String[] {
+                "Tomcat:type=Valve,host=" + host + ",name=AccessLogValve",
+            };
+        } else {
+            return new String[] { };
+        }
+    }
+
     private static String[] contextMBeanNames(String host, String context) {
         return new String[] {
             "Tomcat:j2eeType=WebModule,name=//" + host + context +
@@ -131,6 +141,7 @@ public class TestRegistration extends To
         expected.addAll(Arrays.asList(hostMBeanNames("localhost")));
         expected.addAll(Arrays.asList(contextMBeanNames("localhost", contextName)));
         expected.addAll(Arrays.asList(connectorMBeanNames(Integer.toString(getPort()), protocol)));
+        expected.addAll(Arrays.asList(optionalMBeanNames("localhost", contextName)));
 
         // Did we find all expected MBeans?
         ArrayList<String> missing = new ArrayList<String>(expected);

Modified: tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java?rev=1144802&r1=1144801&r2=1144802&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java (original)
+++ tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java Sun Jul 10 10:10:33 2011
@@ -38,6 +38,7 @@ import org.apache.catalina.LifecycleStat
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.core.AprLifecycleListener;
 import org.apache.catalina.core.StandardServer;
+import org.apache.catalina.valves.AccessLogValve;
 import org.apache.tomcat.util.buf.ByteChunk;
 
 /**
@@ -47,6 +48,7 @@ import org.apache.tomcat.util.buf.ByteCh
 public abstract class TomcatBaseTest extends TestCase {
     private Tomcat tomcat;
     private File tempDir;
+    private boolean accessLogEnabled = false;
     private static int port = 8000;
 
     public static final String TEMP_DIR = System.getProperty("java.io.tmpdir");
@@ -92,6 +94,13 @@ public abstract class TomcatBaseTest ext
                 "output/build"));
     }
 
+    /**
+     * Sub-classes may want to check, whether an AccessLogValve is active
+     */
+    public boolean isAccessLogEnabled() {
+        return accessLogEnabled;
+    }
+
     @Override
     public void setUp() throws Exception {
         // Need to use JULI so log messages from the tests are visible
@@ -144,6 +153,15 @@ public abstract class TomcatBaseTest ext
         
         tomcat.setBaseDir(tempDir.getAbsolutePath());
         tomcat.getHost().setAppBase(appBase.getAbsolutePath());
+
+        accessLogEnabled = Boolean.parseBoolean(
+            System.getProperty("tomcat.test.accesslog", "false"));
+        if (accessLogEnabled) {
+            AccessLogValve alv = new AccessLogValve();
+            alv.setDirectory(getBuildDirectory() + "/logs");
+            alv.setPattern("%h %l %u %t \"%r\" %s %b %I %D");
+            tomcat.getHost().getPipeline().addValve(alv);
+        }
     }
     
     @Override

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1144802&r1=1144801&r2=1144802&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Sun Jul 10 10:10:33 2011
@@ -68,6 +68,9 @@
         Fix regression producing invalid MBean names when using IPV6
         addresses for connectors. (rjung)
       </fix>
+      <add>
+        Add option to activate AccessLog for unit tests. (rjung)
+      </add>
     </changelog>
   </subsection>
   <subsection name="Cluster">



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