Added emma code coverage generation to the build file. ant emma test emma.merge will generate emma reports for each test, then merge them. This is a resubmit of r5781 after verifying all remoteweb tests pass.
Patch by: jlabanca
Review by: fabbott
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5798 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/build.xml b/build.xml
index 8fbc6c5..858db11 100755
--- a/build.xml
+++ b/build.xml
@@ -5,6 +5,7 @@
<!-- "build" is the default when subprojects are directly targetted -->
<property name="target" value="build" />
+ <property name="emma.merged.out" value="${project.build}/emma-coverage" />
<!--
Convenience for the lateral calls we make. Use gwt.ant to
@@ -127,6 +128,39 @@
<call-subproject subproject="tools" subtarget="test" />
</target>
+ <path id="emma.classpath.src">
+ <pathelement location="${gwt.root}/user/src" />
+ <pathelement location="${gwt.root}/dev/**/src/com/google" />
+ <pathelement location="${gwt.root}/build-tools/**/src/com/google" />
+ <pathelement location="${gwt.root}/tools/**/src/com/google" />
+ </path>
+
+ <target name="emma.merge" description="Merges coverage data for all projects" if="emma.enabled">
+ <delete dir="${emma.merged.out}" />
+ <mkdir dir="${emma.merged.out}" />
+ <emma>
+ <merge outfile="${emma.merged.out}/merged.emma" >
+ <fileset dir="${project.build}" >
+ <include name="**/*.emma" />
+ <exclude name="**/merged.emma" />
+ </fileset>
+ </merge>
+ </emma>
+ <emma enabled="${emma.enabled}">
+ <report sourcepath="${emma.classpath.src}">
+ <fileset dir="${project.build}">
+ <patternset>
+ <include name="**/metadata.emma"/>
+ </patternset>
+ </fileset>
+ <fileset file="${emma.merged.out}/merged.emma" />
+ <txt outfile="${emma.merged.out}/coverage.txt" />
+ <html outfile="${emma.merged.out}/coverage.html" />
+ <xml outfile="${emma.merged.out}/coverage.xml" />
+ </report>
+ </emma>
+ </target>
+
<target name="clean" description="[action] Cleans the entire GWT build">
<delete dir="${gwt.build}" />
</target>