You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2016/11/12 15:23:20 UTC
svn commit: r1769389 - in /jmeter/trunk: build.properties build.xml
test/src/org/apache/jmeter/JMeterVersionTest.java xdocs/changes.xml
Author: pmouawad
Date: Sat Nov 12 15:23:20 2016
New Revision: 1769389
URL: http://svn.apache.org/viewvc?rev=1769389&view=rev
Log:
Bug 60364 - Document Test Coverage
Bugzilla Id: 60364
Modified:
jmeter/trunk/build.properties
jmeter/trunk/build.xml
jmeter/trunk/test/src/org/apache/jmeter/JMeterVersionTest.java
jmeter/trunk/xdocs/changes.xml
Modified: jmeter/trunk/build.properties
URL: http://svn.apache.org/viewvc/jmeter/trunk/build.properties?rev=1769389&r1=1769388&r2=1769389&view=diff
==============================================================================
--- jmeter/trunk/build.properties (original)
+++ jmeter/trunk/build.properties Sat Nov 12 15:23:20 2016
@@ -389,3 +389,8 @@ rat-tasks.jar = apache-ra
rat-tasks.loc = ${maven2.repo}/org/apache/rat/apache-rat-tasks/${rat.version}
rat-tasks.md5 = 96b699581b4475ed5756a0c24af745e8
+# Optional for use by JaCoCo
+jacocoant.version = 0.7.7.201606060606
+jacocoant.jar = org.jacoco.ant-${jacocoant.version}-nodeps.jar
+jacocoant.loc = ${maven2.repo}/org/jacoco/org.jacoco.ant/${jacocoant.version}
+jacocoant.md5 = fc093f67abf5bafb782d2eafa2f5815e
\ No newline at end of file
Modified: jmeter/trunk/build.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/build.xml?rev=1769389&r1=1769388&r2=1769389&view=diff
==============================================================================
--- jmeter/trunk/build.xml (original)
+++ jmeter/trunk/build.xml Sat Nov 12 15:23:20 2016
@@ -17,7 +17,9 @@
-->
<project name="JMeter" default="install" basedir="."
xmlns:rat="antlib:org.apache.rat.anttasks"
- xmlns="antlib:org.apache.tools.ant">
+ xmlns:jacoco="antlib:org.jacoco.ant"
+ xmlns:if="ant:if"
+ xmlns="antlib:org.apache.tools.ant" >
<description>
N.B. To build JMeter from a release you need both the binary and source archives,
@@ -331,6 +333,14 @@
<!-- Directory where Optional 3rd party libraries live -->
<property name="lib.opt" value="lib/opt"/>
+ <!-- Directory where Jacoco libraries live -->
+ <!-- I'm to lazy to fix this now, so I tag along with rat & checkstyle,
+ which already live there. But: none of these should apear on the classpath
+ of Jmeter, neither runtime, nor compiletime. These are only required on the
+ Ant classpath, so judging from comments elsewhere, this is the wrong place.
+ -->
+ <property name="lib.coverage" location="lib/opt"/>
+
<!-- Other stuff -->
<property name="extras.dir" value="extras"/>
@@ -892,6 +902,7 @@
<classpath>
<pathelement location="${dest.jar.jmeter}/ApacheJMeter.jar"/>
</classpath>
+ <jvmarg value="${jacocoagent}run_gui:java(server) org.apache.jmeter.NewDriver" if:set="jacocoagent" />
<sysproperty key="jmeter.home" value="${basedir}"/>
</java>
</target>
@@ -899,7 +910,7 @@
<target name="package" depends="compile, prepare-resources, package-only"
description="Compile everything and create the jars"/>
- <target name="package-and-check" depends="clean, package, checkstyle, rat"
+ <target name="package-and-check" depends="clean, download_jars, package, checkstyle, rat"
description="Compile, create jars and apply checkstyle before commiting code"/>
<target name="prepare-resources"
@@ -2457,6 +2468,7 @@ run JMeter unless all the JMeter jars ar
<fileset dir="${dest.jar}" includes="*.jar"/>
<path refid="classpath"/>
</classpath>
+ <jvmarg value="${jacocoagent}batchtest:daemon:java(server) -Djava.awt.headless=true org.apache.jmeter.NewDriver -j ${batchtestserver.out}/${batchtestserver.log} -Dserver_port=${rmi_port}" if:set="jacocoagent" />
<sysproperty key="java.awt.headless" value="true"/>
<!-- Bug 59723 -->
<!-- quieten the logging; this has to be done first -->
@@ -2558,6 +2570,7 @@ run JMeter unless all the JMeter jars ar
<fileset dir="${dest.jar}" includes="*.jar"/>
<path refid="classpath"/>
</classpath>
+ <jvmarg value="${jacocoagent}batchtest:java(${taskname}) -Djava.awt.headless=false org.apache.jmeter.NewDriver -ttestfiles/${batchtest.name}.jmx ${remote}" if:set="jacocoagent" />
<!-- Detect if non-GUI runs OK headless by forcing it to try using non-headless mode -->
<sysproperty key="user.language" value="en"/>
<sysproperty key="user.region" value="US"/>
@@ -2755,6 +2768,7 @@ run JMeter unless all the JMeter jars ar
<path refid="classpath"/>
</classpath>
<jvmarg value="-server"/>
+ <jvmarg value="${jacocoagent}_test:java -Djava.awt.headless=${test.headless} org.apache.jorphan.test.AllTests" if:set="jacocoagent" />
<jvmarg value="-Dfile.encoding=${test.encoding}"/>
<sysproperty key="java.awt.headless" value="${test.headless}"/>
<sysproperty key="testsaveservice.saveout" value="${testsaveservice.saveout}" />
@@ -2781,6 +2795,7 @@ run JMeter unless all the JMeter jars ar
printsummary="on">
<formatter type="${test.format}" usefile="yes"/>
<formatter type="xml"/>
+ <jvmarg value="${jacocoagent}run_gui:junit -Djava.awt.headless=${java.awt.headless} org.apache.jmeter.NewDriver" if:set="jacocoagent" />
<jvmarg value="-Dfile.encoding=${test.encoding}"/>
<!-- Allow headless to be passed in -->
<jvmarg value="-Djava.awt.headless=${java.awt.headless}"/>
@@ -3016,6 +3031,7 @@ run JMeter unless all the JMeter jars ar
<process_jarfile jarname="xmlpull"/>
<process_jarfile jarname="xpp3"/>
<process_jarfile jarname="xstream"/>
+ <process_jarfile jarname="jacocoant" dest.dir="${lib.coverage}" />
</target>
<target name="_process_doc_jars">
@@ -3085,6 +3101,74 @@ run JMeter unless all the JMeter jars ar
</antcall>
</target>
+ <target name="_coverage.prepare" >
+ <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
+ <classpath path="${lib.coverage}/${jacocoant.jar}"/>
+ </taskdef>
+ <jacoco:agent property="jacocoagent"
+ destfile="${build.dir}/jacoco.exec"
+ includes="org.apache.jmeter.*:org.apache.jorphan.*:org.apache.commons.cli.avalon.*:org.sl4j.impl.StaticLoggerBinder"
+ sessionid=""
+ />
+ </target>
+
+ <target name="_coverage.report" depends="_coverage.prepare, init-svnVersion, init-version">
+ <jacoco:report>
+ <executiondata>
+ <file file="${build.dir}/jacoco.exec"/>
+ </executiondata>
+ <structure name="JMeter ${jmeter.version} ${implementation.version}">
+ <classfiles>
+ <fileset dir="${build.components}"/>
+ <fileset dir="${build.core}"/>
+ <fileset dir="${build.functions}"/>
+ <fileset dir="${build.jorphan}"/>
+ <fileset dir="${build.junit}"/>
+ <fileset dir="${build.monitor.components}"/>
+ <fileset dir="${build.monitor.model}"/>
+ <fileset dir="${build.ftp}"/>
+ <fileset dir="${build.http}"/>
+ <fileset dir="${build.java}"/>
+ <fileset dir="${build.jdbc}"/>
+ <fileset dir="${build.jms}"/>
+ <fileset dir="${build.ldap}"/>
+ <fileset dir="${build.mail}"/>
+ <fileset dir="${build.mongodb}"/>
+ <fileset dir="${build.native}"/>
+ <fileset dir="${build.tcp}"/>
+ <fileset dir="${build.slf4j_logkit}"/>
+ <fileset dir="${build.test}"/>
+ </classfiles>
+ <sourcefiles encoding="${encoding}">
+ <fileset dir="${src.components}"/>
+ <fileset dir="${src.core}"/>
+ <fileset dir="${src.functions}"/>
+ <fileset dir="${src.jorphan}"/>
+ <fileset dir="${src.junit}"/>
+ <fileset dir="${src.monitor.components}"/>
+ <fileset dir="${src.monitor.model}"/>
+ <fileset dir="${src.ftp}"/>
+ <fileset dir="${src.http}"/>
+ <fileset dir="${src.java}"/>
+ <fileset dir="${src.jdbc}"/>
+ <fileset dir="${src.jms}"/>
+ <fileset dir="${src.ldap}"/>
+ <fileset dir="${src.mail}"/>
+ <fileset dir="${src.mongodb}"/>
+ <fileset dir="${src.native}"/>
+ <fileset dir="${src.tcp}"/>
+ <fileset dir="${src.slf4j_logkit}"/>
+ <fileset dir="${src.test}"/>
+ </sourcefiles>
+ </structure>
+ <html destdir="reports/coverage"/>
+ <xml destfile="reports/coverage/jmeter-coverage.xml"/>
+ <csv destfile="reports/coverage/jmeter-coverage.csv"/>
+ </jacoco:report>
+ </target>
+
+ <target name="coverage" depends="_coverage.prepare, test-both, _allbatchtests, _coverage.report"/>
+
<target name="_check_exists" if="_check_exists">
<fail message="Invalid call sequence - file.exists should not be defined" if="file.exists"/>
<available file="${file}" property="file.exists"/>
Modified: jmeter/trunk/test/src/org/apache/jmeter/JMeterVersionTest.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/JMeterVersionTest.java?rev=1769389&r1=1769388&r2=1769389&view=diff
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/JMeterVersionTest.java (original)
+++ jmeter/trunk/test/src/org/apache/jmeter/JMeterVersionTest.java Sat Nov 12 15:23:20 2016
@@ -115,6 +115,9 @@ public class JMeterVersionTest extends J
versions.remove("rat");
propNames.remove("rat-tasks");
versions.remove("rat-tasks");
+ // remove optional jacoco jars (required for coverage reporting, not required for jmeter)
+ propNames.remove("jacocoant");
+ versions.remove("jacocoant");
prop = buildProp;
final File licencesDir = getFileFromHome("licenses/bin");
licencesDir.list(new FilenameFilter() {
Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1769389&r1=1769388&r2=1769389&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
+++ jmeter/trunk/xdocs/changes.xml [utf-8] Sat Nov 12 15:23:20 2016
@@ -290,6 +290,7 @@ This allows you to update Think Times fr
Contributed by Benoit Wiart (b.wiart at ubik-ingenierie.com)</li>
<li><pr>218</pr>Misc cleanup. Contributed by Benoit Wiart (b.wiart at ubik-ingenierie.com)</li>
<li><pr>216</pr>Re-use pattern when possible. Contributed by Benoit Wiart (b.wiart at ubik-ingenierie.com)</li>
+ <li><bug>60364</bug>Document Test Coverage. Contributed by Thomas Schapitz (ts-nospam12 at online.de)</li>
</ul>
<!-- =================== Bug fixes =================== -->
@@ -382,6 +383,7 @@ This allows you to update Think Times fr
<li>Roberto Braga (roberto.braga at soziale.it)</li>
<li>jarek102 at gmail.com</li>
<li>Wyatt Epp (wyatt.epp at gmail.com)</li>
+<li>Thomas Schapitz (ts-nospam12 at online.de)</li>
</ul>
<p>We also thank bug reporters who helped us improve JMeter. <br/>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:</p>