1<?xml version="1.0" encoding="UTF-8"?>
2
3<!--
4   Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors
5   All rights reserved. This program and the accompanying materials
6   are made available under the terms of the Eclipse Public License v1.0
7   which accompanies this distribution, and is available at
8   http://www.eclipse.org/legal/epl-v10.html
9
10   Contributors:
11      Brock Janiczak - initial API and implementation
12-->
13
14<project name="JaCoCo Agent Task Tests" xmlns:au="antlib:org.apache.ant.antunit" xmlns:jacoco="antlib:org.jacoco.ant">
15
16	<target name="testCoverageAgent">
17		<jacoco:agent property="jacocoagent" append="false" destfile="test.exec"
18			exclClassLoader="EvilClassLoader" includes="org.example.*" excludes="*Test"
19			inclbootstrapclasses="true" inclnolocationclasses="true"
20		    sessionid="testid" dumponexit="false"
21			output="file" address="remotehost" port="1234" jmx="true"
22			classdumpdir="target/dump"/>
23		<au:assertPropertySet name="jacocoagent"/>
24		<au:assertPropertyContains name="jacocoagent" value="-javaagent:"/>
25		<au:assertPropertyContains name="jacocoagent" value="append=false"/>
26		<property name="exec.file" location="test.exec"/>
27		<au:assertPropertyContains name="jacocoagent" value="destfile=${exec.file}"/>
28		<au:assertPropertyContains name="jacocoagent" value="exclclassloader=EvilClassLoader"/>
29		<au:assertPropertyContains name="jacocoagent" value="includes=org.example.*"/>
30		<au:assertPropertyContains name="jacocoagent" value="excludes=*Test"/>
31		<au:assertPropertyContains name="jacocoagent" value="inclbootstrapclasses=true"/>
32		<au:assertPropertyContains name="jacocoagent" value="inclnolocationclasses=true"/>
33		<au:assertPropertyContains name="jacocoagent" value="sessionid=testid"/>
34		<au:assertPropertyContains name="jacocoagent" value="dumponexit=false"/>
35		<au:assertPropertyContains name="jacocoagent" value="output=file"/>
36		<au:assertPropertyContains name="jacocoagent" value="address=remotehost"/>
37		<au:assertPropertyContains name="jacocoagent" value="port=1234"/>
38		<au:assertPropertyContains name="jacocoagent" value="jmx=true"/>
39		<property name="dump.dir" location="target/dump"/>
40		<au:assertPropertyContains name="jacocoagent" value="classdumpdir=${dump.dir}"/>
41	</target>
42
43	<target name="testCoverageAgentDisabled">
44		<jacoco:agent enabled="false" property="jacocoagent" append="false" destfile="${basedir}/test.exec" exclClassLoader="sun.reflect.DelegatingClassLoader"/>
45		<au:assertPropertyEquals name="jacocoagent" value=""/>
46	</target>
47
48	<target name="testCoverageAgentWithNoProperty">
49		<au:expectfailure expectedMessage="Property is mandatory">
50			<jacoco:agent/>
51		</au:expectfailure>
52	</target>
53
54	<target name="testCoverageAgentWithEmptyProperty">
55		<au:expectfailure expectedMessage="Property is mandatory">
56			<jacoco:agent property=""/>
57		</au:expectfailure>
58	</target>
59
60	<target name="testCoverageAgentReuseAgentJar">
61		<jacoco:agent property="agent1"/>
62		<jacoco:agent property="agent2"/>
63		<au:assertEquals expected="${agent1}" actual="${agent2}"/>
64	</target>
65
66</project>