Author: mbenson
Date: Thu Sep 21 12:10:48 2006
New Revision: 448636

URL: http://svn.apache.org/viewvc?view=rev&rev=448636
Log:
Restructuring to allow junit and antunit tests both.

Added:
    ant/core/trunk/src/tests/
    ant/core/trunk/src/tests/antunit/
    ant/core/trunk/src/tests/junit/
      - copied from r448573, ant/core/trunk/src/testcases/
Modified:
    ant/core/trunk/build.xml

Modified: ant/core/trunk/build.xml
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/build.xml?view=diff&rev=448636&r1=448635&r2=448636
==============================================================================
--- ant/core/trunk/build.xml (original)
+++ ant/core/trunk/build.xml Thu Sep 21 12:10:48 2006
@@ -19,7 +19,7 @@
 <project name="apache-ant" default="main" basedir=".">
 
   <!-- Give user a chance to override without editing this file
-       (and without typing -D each time it compiles it) -->
+       (and without typing -D on each invocation) -->
   <property file=".ant.properties"/>
   <property file="${user.home}/.ant.properties"/>
   <property environment="env"/>
@@ -80,7 +80,8 @@
   <property name="lib.dir" value="lib"/>
   <property name="docs.dir" value="docs"/>
   <property name="etc.dir" value="${src.dir}/etc"/>
-  <property name="src.junit" value="${src.dir}/testcases"/>
+  <property name="src.junit" value="${src.dir}/tests/junit"/>
+  <property name="src.antunit" value="${src.dir}/tests/antunit"/>
   <property name="tests.etc.dir" value="${src.dir}/etc/testcases"/>
   <property name="manifest" value="${src.dir}/etc/manifest"/>
   <property name="resource.dir" value="${src.dir}/resources"/>
@@ -97,8 +98,10 @@
   <property name="build.javadocs" value="${build.dir}/javadocs"/>
   <property name="build.tests" value="${build.dir}/testcases"/>
   <property name="build.tests.javadocs" value="${build.dir}/javadocs.test/"/>
-  <property name="build.tests.xml" location="${build.tests}/xml"/>
-  <property name="build.tests.reports" location="${build.tests}/reports"/>
+  <property name="build.junit.xml" location="${build.tests}/xml"/>
+  <property name="antunit.xml" location="${build.dir}/antunit/xml"/>
+  <property name="antunit.reports" location="${build.dir}/antunit/reports"/>
+  <property name="build.junit.reports" location="${build.tests}/reports"/>
   <property name="manifest.tmp" value="${build.dir}/optional.manifest"/>
   <!-- the absolute path -->
   <property name="build.tests.value" location="${build.tests}"/>
@@ -416,6 +419,9 @@
     <available property="junit.present"
       classname="junit.framework.TestCase"
       classpathref="classpath"/>
+    <available property="antunit.present"
+      classname="org.apache.ant.antunit.AntUnit"
+      classpathref="classpath"/>
     <available property="commons.net.present"
       classname="org.apache.commons.net.ftp.FTPClient"
       classpathref="classpath"/>
@@ -1542,52 +1548,116 @@
          Run testcase
        ===================================================================
   -->
-  <target name="test" depends="test-report" description="--> run JUnit tests">
-    <fail if="tests.failed">Unit tests failed see ${build.tests.reports}</fail>
+
+  <target name="tests-failed">
+    <condition property="tests.failed">
+      <or>
+        <isset property="junit.failed" />
+        <isset property="antunit.failed" />
+      </or>
+    </condition>
   </target>
 
-  <target name="test-init" depends="probe-offline">
-    <mkdir dir="${build.tests.xml}"/>
-    <mkdir dir="${build.tests.reports}" />
-
-    <presetdef name="test-junit">
-      <junit printsummary="${junit.summary}"
-          haltonfailure="${test.haltonfailure}"
-          fork="${junit.fork}"
-          forkmode="${junit.forkmode}"
-          failureproperty="tests.failed"
-          errorproperty="tests.failed"
-          filtertrace="${junit.filtertrace}">
-        <sysproperty key="ant.home" value="${ant.home}"/>
-        <sysproperty key="build.tests" file="${build.tests}"/>
-        <sysproperty key="build.tests.value" value="${build.tests.value}"/>
-        <sysproperty key="offline" value="${offline}"/>
-        <sysproperty key="tests-classpath.value"
-            value="${tests-classpath.value}"/>
-        <sysproperty key="root" file="${basedir}"/>
-        <sysproperty key="build.compiler" value="${build.compiler}"/>
-        <sysproperty key="tests.and.ant.share.classloader"
-            value="${tests.and.ant.share.classloader}"/>
-        <classpath refid="tests-classpath"/>
-        <formatter type="xml"/>
-      </junit>
-    </presetdef>
+  <target name="test" depends="junit-report,antunit-report,tests-failed"
+          description="--> run unit tests">
+    <fail if="tests.failed">Unit tests failed; see ${build.junit.reports} / 
${antunit.reports}</fail>
+  </target>
+
+  <target name="test-init" depends="probe-offline,check_for_optional_packages">
+    <macrodef name="test-junit">
+      <element name="junit-nested" implicit="true" />
+      <sequential>
+        <mkdir dir="${build.junit.xml}" />
+        <junit printsummary="${junit.summary}"
+               haltonfailure="${test.haltonfailure}"
+               fork="${junit.fork}"
+               forkmode="${junit.forkmode}"
+               failureproperty="junit.failed"
+               errorproperty="junit.failed"
+               filtertrace="${junit.filtertrace}">
+          <sysproperty key="ant.home" value="${ant.home}"/>
+          <sysproperty key="build.tests" file="${build.tests}"/>
+          <sysproperty key="build.tests.value" value="${build.tests.value}"/>
+          <sysproperty key="offline" value="${offline}"/>
+          <sysproperty key="tests-classpath.value"
+                       value="${tests-classpath.value}"/>
+          <sysproperty key="root" file="${basedir}"/>
+          <sysproperty key="build.compiler" value="${build.compiler}"/>
+          <sysproperty key="tests.and.ant.share.classloader"
+                       value="${tests.and.ant.share.classloader}"/>
+          <classpath refid="tests-classpath"/>
+          <formatter type="xml"/>
+          <junit-nested />
+        </junit>
+      </sequential>
+    </macrodef>
+
+    <condition property="antunit.testcase" value="${testcase}">
+      <available file="${src.antunit}/${testcase}" />
+    </condition>
+
+    <condition property="junit.testcase" value="${testcase}">
+      <available classname="${testcase}" classpathref="tests-classpath" />
+    </condition>
+
+    <condition property="run.junit">
+      <and>
+        <not><equals arg1="${testcase}" arg2="${antunit.testcase}" /></not>
+        <isset property="junit.present" />
+        <available file="${src.junit}" />
+      </and>
+    </condition>
+
+    <condition property="junit.single">
+      <and>
+        <isset property="junit.testcase" />
+        <isset property="run.junit" />
+      </and>
+    </condition>
+
+    <condition property="junit.batch">
+      <and>
+        <not><isset property="junit.testcase" /></not>
+        <isset property="run.junit" />
+      </and>
+    </condition>
+
+    <condition property="run.antunit">
+      <and>
+        <not><equals arg1="${testcase}" arg2="${junit.testcase}" /></not>
+        <isset property="antunit.present" />
+        <available file="${src.antunit}" />
+      </and>
+    </condition>
+
+    <condition property="run.antunit.report">
+      <and>
+        <isset property="run.antunit" />
+        <isset property="trax.impl.present" />
+      </and>
+    </condition>
 
+    <condition property="run.junit.report">
+      <and>
+        <isset property="run.junit" />
+        <isset property="trax.impl.present" />
+      </and>
+    </condition>
   </target>
 
-<!--if="run.junitreport"-->
-  <target name="test-report" depends="test-init,run-tests,run-single-test"
-      if="trax.impl.present">
-    <junitreport todir="${build.tests.reports}">
-      <fileset dir="${build.tests.xml}">
+  <target name="junit-report" depends="junit-tests,junit-single-test"
+      if="run.junit.report">
+    <mkdir dir="${build.junit.reports}" />
+    <junitreport todir="${build.junit.reports}">
+      <fileset dir="${build.junit.xml}">
         <include name="TEST-*.xml"/>
       </fileset>
-      <report format="frames" todir="${build.tests.reports}"/>
+      <report format="frames" todir="${build.junit.reports}"/>
     </junitreport>
   </target>
 
-  <target name="run-tests" 
depends="dump-info,compile-tests,probe-offline,test-init"
-      if="junit.present" unless="testcase">
+  <target name="junit-tests" depends="dump-info,compile-tests,test-init"
+      if="junit.batch">
 
     <property name="junit.includes" value="**/*Test*" />
     <property name="junit.excludes" value="" />
@@ -1595,7 +1665,7 @@
     <test-junit>
       <formatter type="brief" usefile="false"/>
 
-      <batchtest todir="${build.tests.xml}">
+      <batchtest todir="${build.junit.xml}">
         <fileset dir="${src.junit}"
                  includes="${junit.includes}" excludes="${junit.excludes}">
 
@@ -1736,15 +1806,15 @@
     </test-junit>
   </target>
 
-  <target name="run-single-test" if="testcase" 
depends="compile-tests,run-single-test-only"
+  <target name="junit-single-test" 
depends="compile-tests,junit-single-test-only"
     description="--> runs the single unit test defined in the testcase 
property"/>
 
-  <target name="run-single-test-only" if="testcase"
+  <target name="junit-single-test-only" if="junit.single"
     description="--> runs the single unit test defined in the testcase 
property"
      depends="test-init">
     <test-junit>
       <formatter type="plain" usefile="false"/>
-      <test name="${testcase}" todir="${build.tests.xml}"/>
+      <test name="${junit.testcase}" todir="${build.junit.xml}"/>
     </test-junit>
   </target>
 
@@ -1754,6 +1824,41 @@
     <java classpathref="tests-classpath"
       classname="org.apache.tools.ant.taskdefs.TestProcess"
       fork="true"/>
+  </target>
+
+  <target name="antunit-tests" depends="dump-info,build,test-init"
+          if="run.antunit">
+
+    <condition property="antunit.includes" value="${antunit.testcase}"
+               else="**/*-test.xml">
+      <isset property="${antunit.testcase}" />
+    </condition>
+
+    <property name="antunit.excludes" value="" />
+
+    <mkdir dir="${antunit.xml}" />
+    <au:antunit xmlns:au="antlib:org.apache.ant.antunit"
+                failonerror="false" errorproperty="antunit.failed">
+      <fileset dir="${src.antunit}" includes="${antunit.includes}"
+               excludes="${antunit.excludes}" />
+      <au:plainlistener />
+      <au:xmllistener todir="${antunit.xml}" />
+    </au:antunit>
+  </target>
+
+  <target name="antunit-report" depends="antunit-tests" 
if="run.antunit.report">
+    <length>
+      <fileset dir="${antunit.xml}" includes="TEST-*.xml" />
+    </length>
+    <mkdir dir="${antunit.reports}" />
+    <junitreport todir="${antunit.reports}">
+      <fileset dir="${antunit.xml}" includes="TEST-*.xml" />
+      <report styledir="${src.antunit}" format="frames"
+              todir="${antunit.reports}"/>
+    </junitreport>
+    <length>
+      <fileset dir="${antunit.xml}" includes="TEST-*.xml" />
+    </length>
   </target>
 
   <!--



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

Reply via email to