costin      01/01/22 08:42:16

  Modified:    .        build.xml
               src/admin/WEB-INF/classes/tadm AntServletLogger.java
                        GTestTag.java
               src/share/org/apache/tomcat/util/test DefaultMatcher.java
                        GTest.java
               src/tests build.xml
  Added:       src/admin/WEB-INF/scripts watchdog-servlet.xml
               src/admin/test watchdog-jsp.jsp watchdog-servlet.jsp
  Log:
  Added code and build changes to allow us to run watchdog using a simple
  web page.
  
  The "right" way to run watchdog is by using the provided scripts. The current
  mechanism ( built using "ant watchdog-web-based" and run by accessing
  http://localhost:8080/admin/test/watchdog-jsp.jsp , watchgod-servlet.jsp )
  is intended to increase the test pool by making it easier for people with
  special platforms to run tests. ( example - I don't think a Mac will run
  either .sh or .bat files ).
  
  Running watchdog as web application is mostly a hack - for example the
  servlet tests are based on moo ( remember moo ? ), and the trick used is
  an <ant> java task that runs it ( with fork=true ), so that the output
  goes to the ant logger ( AntServletLogger in this case ). This is the
  trickiest part, for jsps GTest is used ( and we use <replace> to patch
   in the new GTest ).
  
  This is not production-quality or even close - it's just a quick way to
  get things started ( testing and adding regression tests to the /test
  application ). The nightly builds will include both /test and watchdog,
  in order to allow people to check tomcat on their platform. Running
  the scripts is still the "correct" way to run watchdog.
  
  Revision  Changes    Path
  1.105     +7 -3      jakarta-tomcat/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/build.xml,v
  retrieving revision 1.104
  retrieving revision 1.105
  diff -u -r1.104 -r1.105
  --- build.xml 2001/01/20 21:50:22     1.104
  +++ build.xml 2001/01/22 16:42:00     1.105
  @@ -342,9 +342,13 @@
     <!-- ==================== Build the internal test app =================== -->
   
     <target name="sanity-test">
  -    <ant antfile="src/tests/build.xml" target="sanity-test"/>
  +    <ant antfile="src/tests/build.xml" />
     </target>
   
  +  <target name="watchdog-web-based">
  +    <ant antfile="src/tests/build.xml" target="watchdog" />
  +  </target>
  +
     <!-- ==================== Copy the files to distribution format ======== -->
     <target name="dist" depends="main,webapps,tomcat-jars-new">
   
  @@ -400,7 +404,7 @@
      
     <!-- The self-test app should be removed in the release, but it's 
          useful to have it builded by default -->
  -  <target name="tomcat" depends="prepare,tomcat-jars-new,sanity-test">
  +  <target name="tomcat" depends="prepare,tomcat-jars-new">
     </target>
   
     <target name="clean-classes" depends="init">
  @@ -413,6 +417,6 @@
     </target>
     
     <target name="all" depends="clean,dist"/>
  -  <target name="main" depends="tomcat,webapps"/>
  +  <target name="main" depends="tomcat,webapps,sanity-test"/>
       
   </project>
  
  
  
  1.2       +5 -2      
jakarta-tomcat/src/admin/WEB-INF/classes/tadm/AntServletLogger.java
  
  Index: AntServletLogger.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/admin/WEB-INF/classes/tadm/AntServletLogger.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AntServletLogger.java     2001/01/20 20:14:28     1.1
  +++ AntServletLogger.java     2001/01/22 16:42:04     1.2
  @@ -105,12 +105,15 @@
   
       public void messageLogged(BuildEvent event) {
           try {
  -         if( event.getPriority() > 2 )
  +         if( event.getPriority() > 2 ) 
                return;
   
  +         String msg=event.getMessage();
  +         if( msg.indexOf("is deprecated") > 0 )
  +             return;
  +         
            out.write("\n<br>");
            // Print the message
  -         String msg=event.getMessage();
            if( msg.startsWith( "ERROR" )) {
                out.write("<font color='red'>");
            }
  
  
  
  1.6       +2 -1      jakarta-tomcat/src/admin/WEB-INF/classes/tadm/GTestTag.java
  
  Index: GTestTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/admin/WEB-INF/classes/tadm/GTestTag.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- GTestTag.java     2001/01/21 20:10:38     1.5
  +++ GTestTag.java     2001/01/22 16:42:05     1.6
  @@ -128,7 +128,7 @@
            //      org.apache.tomcat.task.GTest.setHtmlMode( true );
            // new one
            GTest.setDefaultWriter(out);
  -         GTest.setDefaultOutput("none"); // external formatting
  +         GTest.setDefaultOutput(outputType); // external formatting
            if(debug!=null)
                GTest.setDefaultDebug(Integer.valueOf( debug ).intValue());
            
  @@ -142,6 +142,7 @@
            project.setUserProperty( "ant.file", testFile.toString());
            // XXX
            project.setUserProperty( "gdir", base + "/Golden");
  +         project.setUserProperty( "wgdir", base + "/Golden");
            
            ProjectHelper.configureProject( project, testFile );
            
  
  
  
  1.1                  jakarta-tomcat/src/admin/WEB-INF/scripts/watchdog-servlet.xml
  
  Index: watchdog-servlet.xml
  ===================================================================
  <project name="Watchdog-moo" default="main" basedir=".">
  
    <property name="tomcat.home" value="../../../../.."/>
    <property name="ant-file" 
     value="${tomcat.home}/webapps/servlet-tests/WEB-INF/servlet-moo.xml"/>
    
  
    <target name="main" >
      <echo message="XXX ${ant-file} ${tomcat.home} " />
      <java classname="org.apache.tools.ant.Main" 
          fork="true" dir="../../../..">
        <classpath>
        <pathelement
                path="../classes" />
        <pathelement 
                path="../lib/ant.jar" />
        <pathelement 
                path="../../../../lib/jaxp.jar" />
        <pathelement 
                path="../../../../lib/parser.jar" />
        </classpath>
        <arg value="-f" />
        <arg value="webapps/servlet-tests/WEB-INF/servlet-moo.xml" />
      </java>
    </target>
  
  </project>
  
  
  1.1                  jakarta-tomcat/src/admin/test/watchdog-jsp.jsp
  
  Index: watchdog-jsp.jsp
  ===================================================================
  <h1>Tomcat Self-test</h1> 
  
  <%@ taglib uri="http://jakarta.apache.org/taglibs/tomcat_admin-1.0" 
             prefix="adm" %>
  
  This page will show the result of executing the sanity test suite. 
  You can see the context log <a href="/jsp-tests/context_log.txt">here</a>
  
  <adm:admin ctxPath="/jsp-tests" 
           action="setLogger" 
           value="webapps/jsp-tests/context_log.txt" />
  
  
  <adm:gtest testFile="WEB-INF/jsp-gtest.xml" 
           testApp="/jsp-tests" 
           target='main' 
             debug='<%= request.getParameter("debug") %>' 
             outputType='html' />
  
  <% // Test completed, display the results ( outType=none means
     // Gtest doesn't generate any output ( but we have to wait untill
     // it's done ), use 'html' for "interactive" results
  %>
  
  <% // -------------------- Failures -------------------- %>
  <h1>FAILED Tests</h1>
  
  <adm:iterate name="failures" enumeration="<%= gtestTestFailures.elements() %>" 
                 type="org.apache.tomcat.util.test.GTest" >
  <% // Need more tags - if, etc 
  %>
  <a href='<%= failures.getHttpClient().getURI() %>'> 
  <font color='red'> FAIL </font></a> ( <%= failures.getDescription() %> )
      <%= failures.getHttpClient().getRequestLine() %>
  <br>
  TEST: <%= failures.getMatcher().getTestDescription() %>
  <br>
  <b>Request: </b>
  <pre>
    <%= failures.getHttpClient().getFullRequest() %>
  </pre>
  
  <b>Message: </b>
  <pre>
    <%= failures.getMatcher().getMessage() %>
  </pre>
  
  <b>Response status: </b> 
  <%= failures.getHttpClient().getResponse().getResponseLine() %>
  <br>
  <b>Response headers: </b>
   (I'm not sure how to do embeded iterations, need JSP expert )
  <br>
  
  <b>Response body: </b>
  <pre>
  <%= failures.getHttpClient().getResponse().getResponseBody() %>
  </pre>
  
  </adm:iterate>
  
  
  
  
  1.1                  jakarta-tomcat/src/admin/test/watchdog-servlet.jsp
  
  Index: watchdog-servlet.jsp
  ===================================================================
  <h1>Tomcat Self-test</h1> 
  
  <%@ taglib uri="http://jakarta.apache.org/taglibs/tomcat_admin-1.0" 
             prefix="adm" %>
  
  This page will show the result of executing the sanity test suite. 
  You can see the context log <a href="/servlet-tests/context_log.txt">here</a>
  
  <adm:admin ctxPath="/servlet-tests" 
           action="setLogger" 
           value="webapps/servlet-tests/context_log.txt" />
  
  
  <adm:gtest testFile="WEB-INF/scripts/watchdog-servlet.xml" 
           testApp="/admin" 
           target='main'  />
  
  
  
  1.4       +2 -0      
jakarta-tomcat/src/share/org/apache/tomcat/util/test/DefaultMatcher.java
  
  Index: DefaultMatcher.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/test/DefaultMatcher.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DefaultMatcher.java       2001/01/21 20:10:39     1.3
  +++ DefaultMatcher.java       2001/01/22 16:42:12     1.4
  @@ -223,6 +223,8 @@
                desc.append( "equals file '" );
            else
                desc.append( "like file '");
  +         int idx=goldenFile.lastIndexOf("/");
  +         String g=(idx>0) ? goldenFile.substring(idx) : goldenFile;
            desc.append( goldenFile + "') ");
        }
   
  
  
  
  1.5       +1 -1      jakarta-tomcat/src/share/org/apache/tomcat/util/test/GTest.java
  
  Index: GTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/test/GTest.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- GTest.java        2001/01/21 20:10:39     1.4
  +++ GTest.java        2001/01/22 16:42:12     1.5
  @@ -289,7 +289,7 @@
   
            // don't print OKs
            if( result && failureOnly ) return;
  -         
  +
            if( "text".equals(outType) )
                textReport();
            if( "html".equals(outType) )
  
  
  
  1.3       +73 -1     jakarta-tomcat/src/tests/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/tests/build.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- build.xml 2001/01/20 20:11:03     1.2
  +++ build.xml 2001/01/22 16:42:15     1.3
  @@ -16,6 +16,10 @@
     <!-- Directories -->
   
     <property name="tomcat.home" value="../../../build/tomcat"/>
  +  <property name="watchdog.src" 
  +         value="${tomcat.home}/../../jakarta-watchdog"/>
  +  <property name="watchdog.build" 
  +         value="${watchdog.src}/../build/watchdog"/>
   
   
     <!-- External packages we depend on -->
  @@ -28,6 +32,8 @@
   
     <!-- ==================== Initialization - guessing config ========== -->
     <target name="init">
  +    <available file="${watchdog.src}/build.xml" 
  +            property="watchdog.available" />
     </target>
   
     <!-- ==================== Copy static files ==================== -->
  @@ -71,6 +77,72 @@
         basedir="${tomcat.build}/webapps/test" includes="**"/> 
     </target>
   
  +  <target name="watchdog" if="watchdog.available" depends="init"> 
  +    <echo message="Building watchdog from ${watchdog.src} " />
  +    <!-- special arangements to allow running watchdog from web -->
  +    
  +    <mkdir dir="${tomcat.build}/webapps/servlet-tests"/>
  +    <mkdir dir="${tomcat.build}/webapps/jsp-tests"/>
  +
  +    <copy todir="${tomcat.build}/webapps/jsp-tests" >
  +      <fileset dir="${watchdog.src}/src/server/jsp-tests" />
  +    </copy>
  +    <copy todir="${tomcat.build}/webapps/jsp-tests/Golden" >
  +    <fileset dir="${watchdog.src}/src/clients/org/apache/jcheck/jsp/client" />
  +    </copy>
  +    <copy todir="${tomcat.build}/webapps/servlet-tests" >
  +      <fileset dir="${watchdog.src}/src/server/servlet-tests" />
  +    </copy>
  +
  +    <copyfile src="${watchdog.build}/conf/jsp-gtest.xml"
  +           dest="${tomcat.build}/webapps/jsp-tests/WEB-INF/jsp-gtest.xml"/>
  +    <copyfile src="${watchdog.build}/conf/servlet-moo.xml"
  +  dest="${tomcat.build}/webapps/servlet-tests/WEB-INF/servlet-moo.xml"/>
  +
  +    <javac 
  +        srcdir="${tomcat.build}/webapps/jsp-tests/WEB-INF/classes" 
  +        optimize="${optimize}" 
  +        destdir="${tomcat.build}/webapps/jsp-tests/WEB-INF/classes" 
  +        classpath="${tomcat.build}/classes;${servlet22.jar}"
  +        />
  +
  +    <!-- Watchdog requires a special client application -->
  +    <javac 
  +        srcdir="${watchdog.src}/../jakarta-tools/moo/src/share"
  +        optimize="${optimize}" 
  +        destdir="${tomcat.build}/webapps/admin/WEB-INF/classes" 
  +        classpath="${tomcat.build}/classes;${servlet22.jar}"
  +        />
  +    <javac 
  +        srcdir="${watchdog.src}/../jakarta-tools/moo/src/share"
  +        optimize="${optimize}" 
  +        destdir="${tomcat.build}/webapps/servlet-tests/WEB-INF/classes" 
  +        classpath="${tomcat.build}/classes;${servlet22.jar}"
  +        />
  +    <javac 
  +        srcdir="${watchdog.src}/src/clients"
  +        optimize="${optimize}" 
  +        destdir="${tomcat.build}/webapps/admin/WEB-INF/classes" 
  +        classpath="${tomcat.build}/classes;${servlet22.jar}"
  +        />
  +    <copydir src="${watchdog.src}/src/clients"
  +          dest="${tomcat.build}/webapps/admin/WEB-INF/classes" >
  +      <include name="**/**.properties" />
  +    </copydir>
  +
  +    <javac 
  +        srcdir="${tomcat.build}/webapps/servlet-tests/WEB-INF/classes" 
  +        optimize="${optimize}" 
  +        destdir="${tomcat.build}/webapps/servlet-tests/WEB-INF/classes" 
  +        classpath="${tomcat.build}/classes;${servlet22.jar}"
  +        />
  +
  +    <replace file="${tomcat.build}/webapps/jsp-tests/WEB-INF/jsp-gtest.xml" 
  +          token="org.apache.tomcat.task.GTest" 
  +          value="org.apache.tomcat.util.test.GTest" />
  +
  +  </target>
  +
     <!-- ==================== Admin & agreagate ==================== -->
      
     <target name="clean-classes" depends="init">
  @@ -83,6 +155,6 @@
     </target>
     
     <target name="all" depends=""/>
  -  <target name="main" depends=""/>
  +  <target name="main" depends="sanity-test"/>
       
   </project>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to