Skip to content

Commit 468ac4c

Browse files
author
dlsmith
committed
Added Clover tasks to the build script
git-svn-id: file:///tmp/test-svn/trunk@3944 fe72c1cf-3628-48e9-8b72-1c46755d3cff
1 parent 56cc5d0 commit 468ac4c

File tree

3 files changed

+103
-19
lines changed

3 files changed

+103
-19
lines changed

plt/build.xml

Lines changed: 92 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,12 @@
1212

1313
<property environment="env" />
1414
<property name="java14-home" value="${env.JAVA14_HOME}" />
15+
<property name="clover-jar" value="${env.CLOVER_JAR}" />
1516

1617

1718
<!-- By default, don't filter tests on anything -->
1819
<property name="test-spec" value="" />
1920

20-
<!-- By default, delete jar files when cleaning -->
21-
<property name="delete-jars" value="yes" />
22-
2321
<!-- By default, clean can fail -->
2422
<property name="clean-can-fail" value="yes" />
2523

@@ -39,7 +37,12 @@
3937
<taskdef name="retroweaver" classpath="lib/buildlib/retroweaver-all-1.2.3.jar"
4038
classname="com.rc.retroweaver.ant.RetroWeaverTask" />
4139

40+
<!-- Extension that defines the "extendclasspath" task. This should be a standard feature of Ant, but
41+
as long as it's not, we can use this extension from the Clover developers. -->
42+
<taskdef resource="com/cenqua/ant/antlib.xml" classpath="lib/buildlib/cenquatasks.jar" />
43+
<extendclasspath path="lib/buildlib/junit.jar" />
4244

45+
4346
<!-- ***********
4447
Help Target
4548
*********** -->
@@ -54,6 +57,8 @@
5457
<echo message="variables should be defined:" />
5558
<echo message="JAVA14_HOME: Home folder of the Java 1.4 JRE or J2SDK" />
5659
<echo message="PATH: 'svn' needs to refer to the Subversion client executable" />
60+
<echo message="CLOVER_JAR: Location of the Clover jar file (necessary only if " />
61+
<echo message=" Clover tasks will be used)"/>
5762
<echo message="" />
5863
<echo message="Additionally, Ant must be run under Java 5.0 or later. If that is " />
5964
<echo message="not the system default, it may be set for Ant by using JAVA_HOME." />
@@ -134,6 +139,7 @@
134139
<include name="**/*.png" />
135140
<include name="**/*.jpg" />
136141
<include name="**/*.jpeg" />
142+
<include name="**/*.properties" />
137143
<!-- Additional resource files should be listed here -->
138144
</fileset>
139145
</copy>
@@ -178,6 +184,7 @@
178184
<pathconvert property="retroweaver-base-classpath" dirsep="${file.separator}" pathsep="${path.separator}">
179185
<path>
180186
<pathelement location="${java14-runtime}" />
187+
<pathelement location="${clover-jar}" />
181188
<pathelement location="classes/base-14" />
182189
<pathelement location="classes/lib-14" />
183190
</path>
@@ -193,6 +200,7 @@
193200
<pathconvert property="retroweaver-test-classpath" dirsep="${file.separator}" pathsep="${path.separator}">
194201
<path>
195202
<pathelement location="${java14-runtime}" />
203+
<pathelement location="${clover-jar}" />
196204
<pathelement location="lib/buildlib/junit.jar" />
197205
<pathelement location="classes/base-14" />
198206
<pathelement location="classes/lib-14" />
@@ -222,6 +230,7 @@
222230
<junit haltonfailure="yes" fork="yes" forkmode="perTest" maxmemory="256M" dir="${basedir}">
223231
<classpath>
224232
<pathelement location="lib/buildlib/junit.jar" />
233+
<pathelement location="${clover-jar}" />
225234
<pathelement location="classes/test" />
226235
<pathelement location="classes/base" />
227236
<pathelement location="classes/lib" />
@@ -240,6 +249,7 @@
240249
<junit haltonfailure="yes" fork="yes" forkmode="perTest" maxmemory="256M" jvm="${java14-exec}" dir="${basedir}">
241250
<classpath>
242251
<pathelement location="lib/buildlib/junit.jar" />
252+
<pathelement location="${clover-jar}" />
243253
<pathelement location="classes/test-14" />
244254
<pathelement location="classes/base-14" />
245255
<pathelement location="classes/lib-14" />
@@ -257,6 +267,7 @@
257267
<junit haltonfailure="yes" fork="yes" forkmode="perTest" maxmemory="256M" dir="${basedir}">
258268
<classpath>
259269
<pathelement location="lib/buildlib/junit.jar" />
270+
<pathelement location="${clover-jar}" />
260271
<pathelement location="classes/test-14" />
261272
<pathelement location="classes/base-14" />
262273
<pathelement location="classes/lib-14" />
@@ -349,29 +360,62 @@
349360
<!-- Additional external library APIs may be listed here -->
350361
</javadoc>
351362
</target>
363+
364+
365+
<target name="clover" depends="clover-15" description="Shortcut for 'clover-15'">
366+
</target>
367+
368+
<target name="clover-15" depends="clean, setup-clover, test-15, report-clover"
369+
description="Generate a Clover test coverage report (using 'test-15')" />
370+
371+
<target name="clover-14" depends="clean, setup-clover, test-14, report-clover"
372+
description="Generate a Clover test coverage report (using 'test-14')" />
373+
374+
<target name="clover-14-in-15" depends="clean, setup-clover, test-14-in-15, report-clover"
375+
description="Generate a Clover test coverage report (using 'test-14-in-15')" />
376+
377+
<target name="report-clover" depends="resolve-version-tag">
378+
<echo message="Generating Clover report" />
379+
<clover-report>
380+
<current outfile="docs/clover" title="${readable-project-name} Test Coverage (${version-tag})">
381+
<format type="html" />
382+
</current>
383+
</clover-report>
384+
<antcall target="clean-intermediate"> <!-- Remove instrumented class files -->
385+
<param name="clean-can-fail" value="no" />
386+
</antcall>
387+
</target>
388+
389+
<target name="setup-clover">
390+
<extendclasspath path="${clover-jar}" />
391+
<taskdef resource="clovertasks" classpath="${clover-jar}" />
392+
<mkdir dir="cloverdb" />
393+
<clover-setup initString="cloverdb/clover.db">
394+
<files>
395+
<exclude name="**/*Test.java" />
396+
<exclude name="**/*TestCase.java" />
397+
<!-- Additional test sources should be listed here -->
398+
</files>
399+
</clover-setup>
400+
</target>
352401

353402

354-
<!-- ************
355-
Clean Target
356-
************ -->
403+
<!-- *************
404+
Clean Targets
405+
************* -->
357406

358-
<target name="clean" unless="skip-clean"
407+
<target name="clean" depends="clean-intermediate, clean-products"
359408
description="Remove all build products; the result should match the intended Subversion contents">
409+
</target>
360410

361-
<echo message="Deleting all build products" />
411+
<target name="clean-intermediate" unless="skip-clean">
412+
<echo message="Deleting all intermediate build products" />
362413

363414
<delete dir="classes" failonerror="${clean-can-fail}" />
364-
<delete dir="docs" failonerror="${clean-can-fail}" />
365-
366-
<condition property="do-delete-jars">
367-
<istrue value="${delete-jars}" />
368-
</condition>
415+
<delete dir="cloverdb" failonerror="${clean-can-fail}" />
416+
369417
<delete includeemptydirs="true" failonerror="${clean-can-fail}">
370418
<fileset dir="${basedir}" defaultexcludes="no">
371-
<include name="*.jar" if="do-delete-jars" />
372-
<include name="*.zip" if="do-delete-jars" />
373-
<include name="*.tar.gz" if="do-delete-jars" />
374-
<include name="${ant.project.name}-*" />
375419
<include name="src/**/*.class" />
376420
<!-- We could get rid of backups, but "update" ignores them, so they're okay.
377421
(doesn't work if defaultexcludes is "yes") -->
@@ -384,6 +428,21 @@
384428
</delete>
385429

386430
</target>
431+
432+
<target name="clean-products" unless="skip-clean">
433+
<echo message="Deleting all final build products" />
434+
435+
<delete dir="docs" failonerror="${clean-can-fail}" />
436+
437+
<delete includeemptydirs="true" failonerror="${clean-can-fail}">
438+
<fileset dir="${basedir}" defaultexcludes="no">
439+
<include name="*.jar" />
440+
<include name="*.zip" />
441+
<include name="*.tar.gz" />
442+
<include name="${ant.project.name}-*" />
443+
</fileset>
444+
</delete>
445+
</target>
387446

388447

389448
<!-- ******************
@@ -402,8 +461,7 @@
402461

403462
<target name="commit" depends="update, build"
404463
description="Commit source to the Subversion archive (after building)">
405-
<antcall target="clean"> <!-- Clean up after the latest build -->
406-
<param name="delete-jars" value="no" />
464+
<antcall target="clean-intermediate"> <!-- Clean up after the latest build -->
407465
<param name="clean-can-fail" value="no" />
408466
</antcall>
409467
<exec executable="svn" failonerror="yes">
@@ -497,6 +555,16 @@
497555
</zip>
498556
</target>
499557

558+
<!-- We don't include this in the standard release process, because we don't want to
559+
include instrumented files in the release, and because Clover must be run on a
560+
licensed machine -->
561+
<target name="clover-zip" depends="clover-14-in-15, resolve-version-tag">
562+
<echo message="Creating ${version-tag}-clover.zip" />
563+
<zip destfile="${version-tag}-clover.zip">
564+
<zipfileset dir="docs/clover" prefix="${version-tag}/clover" />
565+
</zip>
566+
</target>
567+
500568

501569
<!-- ********************************
502570
Misc Occasionally-Useful Targets
@@ -594,6 +662,11 @@
594662
<fail message="Can't find ${ant.project.name}.jar" unless="jar-exists" />
595663
</target>
596664

665+
<target name="assert-clover-jar-exists">
666+
<available property="clover-jar-exists" file="${clover-jar}" />
667+
<fail message="${clover-jar} does not exist" unless="clover-jar-exists" />
668+
</target>
669+
597670
<target name="resolve-development-value">
598671
<condition property="development-value" value="true">
599672
<istrue value="${is-development}" />

plt/lib/buildlib/cenquatasks.jar

3.85 KB
Binary file not shown.

plt/lib/readme.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Contents:
2+
*.jar: Binaries that should be part of the distribution
3+
buildlib/*.jar: Binaries used in the build process, but that should not be part
4+
of the distribution.
5+
6+
VERSIONS:
7+
8+
retroweaver-rt-1.2.3.jar: Retroweaver 1.2.3
9+
buildlib/cenquatasks.jar: Distributed with Clover 1.3.9
10+
buildlib/junit.jar: JUnit 3.8.1
11+
buildlib/retroweaver-all-1.2.3.jar: Retroweaver 1.2.3

0 commit comments

Comments
 (0)