Author: aidan
Date: Fri Sep 12 03:19:00 2008
New Revision: 694671

URL: http://svn.apache.org/viewvc?rev=694671&view=rev
Log:
QPID-1282: Add targets for cobertura coverage reporting.

Added:
    incubator/qpid/trunk/qpid/java/lib/cobertura/
    incubator/qpid/trunk/qpid/java/lib/cobertura/README.txt
Modified:
    incubator/qpid/trunk/qpid/java/build.xml
    incubator/qpid/trunk/qpid/java/common.xml
    incubator/qpid/trunk/qpid/java/module.xml

Modified: incubator/qpid/trunk/qpid/java/build.xml
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/build.xml?rev=694671&r1=694670&r2=694671&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/build.xml (original)
+++ incubator/qpid/trunk/qpid/java/build.xml Fri Sep 12 03:19:00 2008
@@ -34,7 +34,7 @@
   <basename property="qpid.jar.name"  file="${qpid.jar}"/>
 
   <property name="resources"     value="${project.root}/resources"/>
-  
+
   <map property="release.excludes" value="${modules}">
     <globmapper from="*" to="*/\*\*"/>
   </map>
@@ -189,4 +189,29 @@
     <delete dir="${tasks.classes}"/>
   </target>
 
+  <target name="coverage-report" description="generate coverage report">
+    <cobertura-merge datafile="${build.coveragereport}/cobertura.ser">
+      <!-- merge all module coverage reports -->
+      <fileset dir="${build}">
+        <include name="**/*.ser"/>
+      </fileset>
+    </cobertura-merge>
+    <cobertura-report format="html"
+                      destdir="${build.coveragereport}"
+                     datafile="${build.coveragereport}/cobertura.ser"
+                     >
+      <fileset dir="${project.root}/common/src/main/java" includes="**/*.java" 
/>
+      <fileset dir="${project.root}/broker/src/main/java" includes="**/*.java" 
/>
+      <fileset dir="${project.root}/client/src/main/java" includes="**/*.java" 
/>
+    </cobertura-report>
+  </target>
+
+  <target name="instrument" description="instrument for artifacts">
+    <iterate target="instrument"/>
+  </target>
+  
+  <target name="cover-test" description="run tests and generate coverage 
information">
+    <iterate target="cover-test"/>
+  </target>
+    
 </project>

Modified: incubator/qpid/trunk/qpid/java/common.xml
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common.xml?rev=694671&r1=694670&r2=694671&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/common.xml (original)
+++ incubator/qpid/trunk/qpid/java/common.xml Fri Sep 12 03:19:00 2008
@@ -38,8 +38,8 @@
   <property name="build.release.prepare" location="${build.release}/prepare"/>
   <property name="build.data"            location="${build}/data"/>
   <property name="build.plugins"         location="${build}/lib/plugins"/>
-
-
+  <property name="build.coveragereport"  location="${build}/coverage"/>
+  
   <property name="java.target"           value="1.5"/>
   <property name="java.source"           value="1.5"/>
 
@@ -51,6 +51,17 @@
 
   <property name="javac.compiler.args"   value=""/>
 
+  <property name="cobertura.dir" value="${project.root}/lib/cobertura" />
+
+  <path id="cobertura.classpath">
+    <fileset dir="${cobertura.dir}">
+        <include name="cobertura.jar" />
+        <include name="lib/**/*.jar" />
+    </fileset>
+  </path>
+
+  <taskdef classpathref="cobertura.classpath" resource="tasks.properties" />
+  
   <macrodef name="indirect">
     <attribute name="name"/>
     <attribute name="variable"/>

Added: incubator/qpid/trunk/qpid/java/lib/cobertura/README.txt
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/lib/cobertura/README.txt?rev=694671&view=auto
==============================================================================
--- incubator/qpid/trunk/qpid/java/lib/cobertura/README.txt (added)
+++ incubator/qpid/trunk/qpid/java/lib/cobertura/README.txt Fri Sep 12 03:19:00 
2008
@@ -0,0 +1,3 @@
+Download the cobertura binary from the following location and unpack it into 
this directory. Run "ant covertest coverage-report" to generate coverage report.
+
+http://cobertura.sourceforge.net/download.html

Modified: incubator/qpid/trunk/qpid/java/module.xml
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/module.xml?rev=694671&r1=694670&r2=694671&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/module.xml (original)
+++ incubator/qpid/trunk/qpid/java/module.xml Fri Sep 12 03:19:00 2008
@@ -32,6 +32,7 @@
 
   <property name="module.build"        location="${build}/${module}"/>
   <property name="module.classes"      location="${module.build}/classes"/>
+  <property name="module.instrumented" 
location="${module.build}/classes-instrumented"/>
   <property name="module.precompiled"  location="${module.build}/src"/>
   <property name="module.api"          location="${module.build}/api"/>
   <property name="module.test.classes" 
location="${module.build}/test/classes"/>
@@ -41,7 +42,6 @@
   <property name="module.test.src"     location="src/test/java"/>
   <property name="module.bin"          location="bin"/>
   <property name="module.etc"          location="etc"/>
-
     
   <property name="module.namever"              
value="${project.name}-${module}-${project.version}"/>
   <property name="module.release.base"        value="${basedir}/release"/>
@@ -55,6 +55,9 @@
   <property name="module.qpid.jar"     
location="${module.release.lib}/qpid-incubating.jar"/>
   <basename property="qpid.jar.name"  file="${module.qpid.jar}"/>
 
+  <property name="module.coverage"     location="${module.build}/coverage"/>
+  <property name="cobertura.datafile"  
location="${module.instrumented}/cobetura.ser"/>
+  
   <available property="module.test.src.exists" file="${module.test.src}"/>
   <available property="module.etc.exists" file="${module.etc}"/>
   <available property="module.bin.exists" file="${module.bin}"/>
@@ -447,6 +450,76 @@
     <delete dir="${module.build}"/>
     <delete dir="${module.results}"/>
     <delete dir="${module.release.base}"/>
+    <delete dir="${module.instrumented}"/>
+  </target>
+
+  <target name="instrument">
+    <cobertura-instrument todir="${module.instrumented}"
+                          datafile="${cobertura.datafile}">
+      <fileset dir="${module.classes}">
+        <include name="**/*.class"/>
+      </fileset>
+      <fileset dir="${module.test.classes}">
+        <include name="**/*.class"/>
+      </fileset>      
+    </cobertura-instrument>
   </target>
 
+  <target name="cover-test" depends="instrument">
+    <mkdir dir="${build.coveragereport}" />
+    <junit fork="yes" forkmode="once" maxmemory="${test.mem}" reloading="no"
+           haltonfailure="${haltonfailure}" haltonerror="${haltonerror}"
+           failureproperty="test.failures" printsummary="on" timeout="600000" >
+
+      <sysproperty key="amqj.logging.level" value="${amqj.logging.level}"/>
+      <sysproperty key="amqj.protocol.logging.level" 
value="${amqj.protocol.logging.level}"/>
+      <sysproperty key="log4j.debug" value="${log4j.debug}"/>
+      <sysproperty key="root.logging.level" value="${root.logging.level}"/>
+      <sysproperty key="log4j.configuration" value="${log4j.configuration}"/>
+      <sysproperty key="java.naming.factory.initial" 
value="${java.naming.factory.initial}"/>
+      <sysproperty key="java.naming.provider.url" 
value="${java.naming.provider.url}"/>
+      <sysproperty key="broker" value="${broker}"/>
+      <sysproperty key="broker.clean" value="${broker.clean}"/>
+      <sysproperty key="broker.version" value="${broker.version}"/>
+      <sysproperty key="broker.ready" value="${broker.ready}" />
+      <sysproperty key="test.excludes" value="${test.excludes}"/>
+      <sysproperty key="test.excludesfile" value="${test.excludesfile}"/>
+      <sysproperty key="test.output" value="${module.results}"/>
+      <sysproperty key="max_prefetch" value ="${max_prefetch}"/>
+      <sysproperty key="example.plugin.target" 
value="${project.root}/build/lib/plugins"/>
+      <sysproperty key="QPID_EXAMPLE_HOME" value="${project.root}/build"/>
+      <sysproperty key="QPID_HOME" value="${project.root}/build"/>
+
+      <sysproperty key="net.sourceforge.cobertura.datafile"
+               file="${cobertura.datafile}" />
+      
+      <formatter type="plain"/>
+      <formatter type="xml"/>
+
+      <classpath path="${module.instrumented}"/>
+      <classpath>
+        <fileset dir="${build}">
+         <include name="**/classes-instrumented/*.class"/>
+       </fileset>
+      </classpath>
+      <classpath refid="module.test.path"/>
+      <classpath refid="cobertura.classpath"/>      
+
+      <batchtest todir="${module.results}">
+        <fileset dir="${module.test.src}" excludes="${module.test.excludes}">
+          <include name="**/${test}.java"/>
+        </fileset>
+      </batchtest>
+    </junit>
+  </target>
+
+  <target name="coverage-report">
+      <echo message="${cobertura.datafile}"/>
+      <cobertura-report format="html"
+                      destdir="${module.coverage}"
+                     datafile="${cobertura.datafile}">
+      <fileset dir="${module.src}" includes="**/*.java" />
+    </cobertura-report>
+  </target>
+  
 </project>


Reply via email to