You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by st...@apache.org on 2003/04/08 20:56:24 UTC

cvs commit: cocoon-2.1/src/targets test-build.xml

stephan     2003/04/08 11:56:24

  Modified:    tools/src blocks-build.xsl
               src/targets test-build.xml
  Log:
  Allow to use junit testcases within blocks.
  
  Revision  Changes    Path
  1.8       +64 -12    cocoon-2.1/tools/src/blocks-build.xsl
  
  Index: blocks-build.xsl
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/tools/src/blocks-build.xsl,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- blocks-build.xsl	7 Apr 2003 01:09:17 -0000	1.7
  +++ blocks-build.xsl	8 Apr 2003 18:56:24 -0000	1.8
  @@ -63,6 +63,10 @@
           <xsl:attribute name="depends">init<xsl:for-each select="project[contains(@name,'cocoon-block-')]"><xsl:text>,</xsl:text><xsl:value-of select="@name"/>-lib</xsl:for-each></xsl:attribute>
         </target>
   
  +      <target name="tests">
  +        <xsl:attribute name="depends">init<xsl:for-each select="project[contains(@name,'cocoon-block-')]"><xsl:text>,</xsl:text><xsl:value-of select="@name"/>-tests</xsl:for-each></xsl:attribute>
  +      </target>
  +
         <xsl:apply-templates select="project[contains(@name,'-block')]" />
      </xsl:template>
   
  @@ -180,14 +184,14 @@
                 available - to the usual java source directory.
                 If someone knows a better solution...
            -->
  -	     <condition property="dependend.vm" value="{string('${target.vm}')}">
  -	       <available file="{string('${blocks}')}/{$block-name}/java{string('${target.vm}')}"/>
  -	     </condition>
  -	     <condition property="dependend.vm" value="">
  -	       <not>
  -	         <available file="{string('${blocks}')}/{$block-name}/java{string('${target.vm}')}"/>
  -	       </not>
  -	     </condition>
  +         <condition property="dependend.vm" value="{string('${target.vm}')}">
  +	          <available file="{string('${blocks}')}/{$block-name}/java{string('${target.vm}')}"/>
  +         </condition>
  +         <condition property="dependend.vm" value="">
  +            <not>
  +	             <available file="{string('${blocks}')}/{$block-name}/java{string('${target.vm}')}"/>
  +            </not>
  +         </condition>
   
            <javac
               destdir="{string('${build.blocks}')}/{$block-name}/dest"
  @@ -197,9 +201,9 @@
               target="{string('${target.vm}')}"
               nowarn="{string('${compiler.nowarn}')}"
               compiler="{string('${compiler}')}">
  -              <src path="{string('${blocks}')}/{$block-name}/java"/>
  -              <src path="{string('${blocks}')}/{$block-name}/java{string('${dependend.vm}')}"/>
  -              <classpath refid="{$block-name}.classpath" />
  +            <src path="{string('${blocks}')}/{$block-name}/java"/>
  +            <src path="{string('${blocks}')}/{$block-name}/java{string('${dependend.vm}')}"/>
  +            <classpath refid="{$block-name}.classpath" />
            </javac>
            
            <jar jarfile="{string('${build.blocks}')}/{$block-name}-block.jar">
  @@ -259,7 +263,7 @@
            </copy>
         </target>
   
  -	  <target name="{$block-name}-roles">
  +      <target name="{$block-name}-roles">
            <xpatch directory="{string('${blocks}')}/{$block-name}/conf" extension="xroles" configuration="{string('${build.dest}/org/apache/cocoon/cocoon.roles')}"/>
         </target>
         
  @@ -275,6 +279,54 @@
            </copy>
            <xpatch directory="{string('${build.blocks}')}/{$block-name}/conf" extension="xsamples" configuration="{string('${build.webapp}')}/samples/block-samples.xml"/>
            <xpatch directory="{string('${build.blocks}')}/{$block-name}/conf" extension="samplesxpipe" configuration="{string('${build.webapp}')}/samples/sitemap.xmap"/>
  +      </target>
  +
  +      <target name="{@name}-tests" unless="unless.exclude.block.{$block-name}">
  +         <xsl:if test="depend">
  +            <xsl:attribute name="depends"><xsl:value-of select="@name"/><xsl:for-each select="depend[contains(@project,'cocoon-block-')]"><xsl:text>,</xsl:text><xsl:value-of
  +select="@project"/>-tests</xsl:for-each></xsl:attribute>
  +         </xsl:if>
  +
  +         <!-- Test if this block has tests -->
  +         <available property="{$block-name}.has.tests" file="{string('${blocks}')}/{$block-name}/test"/>
  +
  +         <antcall target="{$block-name}-tests"/>
  +      </target>
  +
  +      <target name="{$block-name}-tests" depends="{$block-name}-compile" if="{$block-name}.has.tests">
  +         <mkdir dir="{string('${build.blocks}')}/{$block-name}/test"/>
  +
  +         <copy todir="{string('${build.blocks}')}/{$block-name}/test" filtering="on">
  +            <fileset dir="{string('${blocks}')}/{$block-name}/test" excludes="**/*.java"/>
  +         </copy>
  +
  +         <javac srcdir="{string('${blocks}')}/{$block-name}/test"
  +                destdir="{string('${build.blocks}')}/{$block-name}/test"
  +                fork="true">
  +            <classpath refid="{$block-name}.classpath"/>
  +            <classpath>
  +               <pathelement location="{string('${build.test}')}"/>
  +            </classpath>
  +         </javac>
  +
  +         <junit printsummary="yes" haltonfailure="yes" fork="yes">
  +            <classpath refid="{$block-name}.classpath" />
  +            <classpath>
  +               <pathelement path="{string('${java.class.path}')}"/>
  +               <pathelement location="{string('${build.test}')}"/>
  +               <pathelement location="{string('${build.blocks}')}/{$block-name}/test"/>
  +            </classpath>
  +            <formatter type="plain" usefile="no"/>
  +            <batchtest>
  +               <fileset dir="{string('${build.blocks}')}/{$block-name}/test">
  +                  <include name="**/*TestCase.class"/>
  +                  <include name="**/*Test.class"/>
  +                  <exclude name="**/AllTest.class"/>
  +                  <exclude name="**/*$$*Test.class"/>
  +                  <exclude name="**/Abstract*.class"/>
  +               </fileset>
  +            </batchtest>
  +         </junit>
         </target>
      </xsl:template>
   </xsl:stylesheet>
  
  
  
  1.6       +12 -3     cocoon-2.1/src/targets/test-build.xml
  
  Index: test-build.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/targets/test-build.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- test-build.xml	22 Mar 2003 18:23:29 -0000	1.5
  +++ test-build.xml	8 Apr 2003 18:56:24 -0000	1.6
  @@ -1,10 +1,10 @@
   <!-- === Test targets =========================================================== -->
   
     <!-- Runs all tests -->
  -  <target name="test" depends="junit.tests, anteater.tests" description="Runs all tests"/>
  +  <target name="test" depends="junit-tests, anteater-tests, block-tests" description="Runs all tests"/>
   
     <!-- Runs JUnit tests -->
  -  <target name="junit.tests" depends="compile">
  +  <target name="junit-tests" depends="compile">
       <mkdir dir="${build.test}"/>
   
       <!-- Copy test files to build test dir -->
  @@ -29,6 +29,7 @@
           <pathelement path="${build.deprecated}" />
         </classpath>
       </javac>
  +
       <junit printsummary="yes" haltonfailure="yes" fork="yes">
         <classpath>
           <pathelement location="${build.test}" />
  @@ -54,7 +55,7 @@
     </target>
   
     <!-- Anteater tests  -->
  -  <target name="anteater.tests">
  +  <target name="anteater-tests">
       <property name="host" value="localhost"/>
       <property name="port" value="8888"/>
       <property name="base" value="/"/>
  @@ -67,5 +68,13 @@
         <arg line="-f src/test/anteater/all-tests.xml -Dhost=${host} -Dport=${port} -Dbase=${base}"/>
       </exec>
       -->
  +  </target>
  +
  +  <!-- Block tests -->
  +  <target name="block-tests" depends="compile,prepare-blocks">
  +    <ant antfile="${build.temp}/blocks-build.xml"
  +         inheritAll="true"
  +         inheritRefs="false"
  +         target="tests"/>
     </target>