Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openj9
Path: blob/master/test/functional/Java8andUp/build.xml
6000 views
1
<?xml version="1.0"?>
2
<!--
3
Copyright (c) 2016, 2022 IBM Corp. and others
4
5
This program and the accompanying materials are made available under
6
the terms of the Eclipse Public License 2.0 which accompanies this
7
distribution and is available at https://www.eclipse.org/legal/epl-2.0/
8
or the Apache License, Version 2.0 which accompanies this distribution and
9
is available at https://www.apache.org/licenses/LICENSE-2.0.
10
11
This Source Code may also be made available under the following
12
Secondary Licenses when the conditions for such availability set
13
forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
14
General Public License, version 2 with the GNU Classpath
15
Exception [1] and GNU General Public License, version 2 with the
16
OpenJDK Assembly Exception [2].
17
18
[1] https://www.gnu.org/software/classpath/license.html
19
[2] http://openjdk.java.net/legal/assembly-exception.html
20
21
SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
22
-->
23
<project name="J9 VM Java8andUp General Bucket" default="build" basedir=".">
24
<taskdef resource="net/sf/antcontrib/antlib.xml" />
25
<description>
26
Build J9 VM Java8andUp General Bucket
27
</description>
28
29
<!-- set global properties for this build -->
30
<property name="DEST" value="${BUILD_ROOT}/functional/Java8andUp" />
31
32
<!--Properties for this particular build -->
33
<property name="src" location="src" />
34
<property name="src_80" location="src_80" />
35
<property name="src_90" location="src_90" />
36
<property name="src_110_up" location="src_110_up" />
37
<property name="scr_DupClassNameTest" location="scr_DupClassNameTest" />
38
<property name="build" location="bin" />
39
<property name="build_resource" location="resource" />
40
<property name="transformerListener" location="${TEST_ROOT}/Utils/src" />
41
<property name="TestUtilities" location="../TestUtilities/src" />
42
<property name="TestUtilitiesJ9" location="../TestUtilitiesJ9/src" />
43
<if>
44
<equals arg1="${JCL_VERSION}" arg2="current" />
45
<then>
46
<property name="src_90_jcl" location="src_90_current" />
47
<property name="addExports_90_jcl" value="--add-exports java.management/sun.management=ALL-UNNAMED" />
48
</then>
49
<else>
50
<property name="src_90_jcl" location="src_90_latest" />
51
<property name="addExports_90_jcl" value="--add-exports jdk.management.agent/jdk.internal.agent=ALL-UNNAMED" />
52
</else>
53
</if>
54
55
<if>
56
<equals arg1="${JDK_VERSION}" arg2="8" />
57
<then>
58
<property name="src_access" location="${TEST_ROOT}/functional/UnsafeAccess/src" />
59
</then>
60
<else>
61
<if>
62
<matches string="${JDK_VERSION}" pattern="^1[1-6]$$" />
63
<then>
64
<!-- Java 11-16 -->
65
<property name="src_access" location="${TEST_ROOT}/functional/UnsafeAccess/src_110" />
66
</then>
67
<else>
68
<!-- Java 17+ -->
69
<property name="src_access" location="${TEST_ROOT}/functional/UnsafeAccess/src_170" />
70
</else>
71
</if>
72
</else>
73
</if>
74
75
<if>
76
<matches string="${JDK_VERSION}" pattern="^(9|10)$$" />
77
<then>
78
<property name="addModules" value="--add-modules java.se.ee" />
79
</then>
80
<else>
81
<property name="addModules" value="" />
82
</else>
83
</if>
84
<property name="LIB" value="asm_all,javassist,testng,jcommander,commons_cli,jaxb_api,asmtools" />
85
<import file="${TEST_ROOT}/TKG/scripts/getDependencies.xml" />
86
87
<target name="init">
88
<mkdir dir="${DEST}" />
89
<mkdir dir="${build}" />
90
<mkdir dir="${build_resource}" />
91
<mkdir dir="${build}/DupClassNameTest" />
92
<mkdir dir="${build}/DupClassNameTest/version1" />
93
<mkdir dir="${build}/DupClassNameTest/version2" />
94
</target>
95
96
<!--compiles the NoSuchMethod test classes. Multiple steps are needed to create classes that call non-existent methods -->
97
<target name="compileNoSuchMethod" depends="compile" description="compile NoSuchMethod tests in multiple steps">
98
<property name="NoSuchMethod_src" location="${src}/org/openj9/test/NoSuchMethod" />
99
<property name="NoSuchMethod_build" location="${build}/org/openj9/test/NoSuchMethod" />
100
<!-- copy a fake java.lang.string impl and AppLoaderCallee into source folder -->
101
<copy overwrite="true" file="${NoSuchMethod_src}/java/lang/String.java.hide" tofile="${NoSuchMethod_src}/java/lang/String.java" />
102
<copy overwrite="true" file="${NoSuchMethod_src}/AppLoaderCallee.java.fake" tofile="${NoSuchMethod_src}/AppLoaderCallee.java" />
103
<!-- Compile the fake string impl and AppLoader caller with it -->
104
<if>
105
<equals arg1="${JDK_VERSION}" arg2="8" />
106
<then>
107
<javac srcdir="${NoSuchMethod_src}" destdir="${build}" includes="**/String.java,*AppLoaderCaller2.java" fork="true"
108
debug="on" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1">
109
<src path="${src_access}" />
110
<classpath>
111
<pathelement location="${LIB_DIR}/asm-all.jar" />
112
<pathelement location="${LIB_DIR}/testng.jar" />
113
<pathelement location="${LIB_DIR}/jcommander.jar" />
114
</classpath>
115
</javac>
116
</then>
117
<else>
118
<javac srcdir="${NoSuchMethod_src}" destdir="${build}" includes="**/String.java,*AppLoaderCaller2.java" fork="true"
119
debug="on" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1">
120
<compilerarg line ="--patch-module java.base=${NoSuchMethod_src}/java/lang" />
121
<src path="${src_access}" />
122
<classpath>
123
<pathelement location="${LIB_DIR}/asm-all.jar" />
124
<pathelement location="${LIB_DIR}/testng.jar" />
125
<pathelement location="${LIB_DIR}/jcommander.jar" />
126
</classpath>
127
</javac>
128
</else>
129
</if>
130
<!-- remove our fake java.lang.string impl -->
131
<delete file="${NoSuchMethod_src}/java/lang/String.java" />
132
<!-- compile the rest of test code -->
133
<javac srcdir="${NoSuchMethod_src}" destdir="${build}" excludes="*/java/*,*AppLoaderCaller2.java" fork="true"
134
debug="on" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1">
135
<src path="${src_access}" />
136
<classpath>
137
<pathelement location="${LIB_DIR}/asm-all.jar" />
138
<pathelement location="${LIB_DIR}/testng.jar" />
139
<pathelement location="${LIB_DIR}/jcommander.jar" />
140
</classpath>
141
</javac>
142
<!-- un-hide our fake string impl -->
143
<copy overwrite="true" file="${NoSuchMethod_src}/java/lang/String.java.hide" tofile="${NoSuchMethod_src}/java/lang/String.java" />
144
<!-- Replace fake AppLoaderCallee impl with real impl -->
145
<copy overwrite="true" file="${NoSuchMethod_src}/AppLoaderCallee.java.real" tofile="${NoSuchMethod_src}/AppLoaderCallee.java" />
146
<delete file="${NoSuchMethod_build}/AppLoaderCallee.class" />
147
<javac srcdir="${NoSuchMethod_src}" destdir="${build}" includes="*AppLoaderCallee.java" fork="true"
148
debug="on" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1">
149
<src path="${src_access}" />
150
<classpath>
151
<pathelement location="${LIB_DIR}/asm-all.jar" />
152
<pathelement location="${LIB_DIR}/testng.jar" />
153
<pathelement location="${LIB_DIR}/jcommander.jar" />
154
</classpath>
155
</javac>
156
<delete file="${NoSuchMethod_src}/AppLoaderCallee.java" />
157
<!-- Restore the source for our fake AppLoaderCallee -->
158
<copy overwrite="true" file="${NoSuchMethod_src}/AppLoaderCallee.java.fake" tofile="${NoSuchMethod_src}/AppLoaderCallee.java" />
159
<!-- hide our fake java.lang.string impl -->
160
<delete file="${NoSuchMethod_src}/java/lang/String.java" />
161
</target>
162
163
<target name="compile" depends="jasm_generator" description="using java ${JDK_VERSION} to compile the source">
164
<echo>Ant version is ${ant.version}</echo>
165
<echo>============COMPILER SETTINGS============</echo>
166
<echo>===fork: yes</echo>
167
<echo>===executable: ${compiler.javac}</echo>
168
<echo>===debug: on</echo>
169
<echo>===destdir: ${DEST}</echo>
170
<javac srcdir="${scr_DupClassNameTest}/version1" destdir="${build}/DupClassNameTest/version1" debug="true" fork="true" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1">
171
<classpath>
172
<pathelement location="${LIB_DIR}/testng.jar" />
173
</classpath>
174
</javac>
175
<javac srcdir="${scr_DupClassNameTest}/version2" destdir="${build}/DupClassNameTest/version2" debug="true" fork="true" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1">
176
<classpath>
177
<pathelement location="${LIB_DIR}/testng.jar" />
178
</classpath>
179
</javac>
180
<if>
181
<equals arg1="${JDK_VERSION}" arg2="8" />
182
<then>
183
<javac srcdir="${src}" destdir="${build}" debug="true" fork="true" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1">
184
<src path="${src}" />
185
<src path="${src_80}" />
186
<src path="${src_access}" />
187
<src path="${TestUtilities}" />
188
<src path="${TestUtilitiesJ9}" />
189
<src path="${transformerListener}" />
190
<exclude name="**/Cmvc194280.java" />
191
<exclude name="**/resources/**" />
192
<!-- requires special compilation methods -->
193
<exclude name="**/NoSuchMethod/**" />
194
<classpath>
195
<pathelement location="${LIB_DIR}/asm-all.jar" />
196
<pathelement location="${LIB_DIR}/testng.jar" />
197
<pathelement location="${LIB_DIR}/jcommander.jar" />
198
<pathelement location="${TEST_JDK_HOME}/lib/tools.jar" />
199
<pathelement location="${LIB_DIR}/commons-cli.jar" />
200
<pathelement location="${LIB_DIR}/javassist.jar" />
201
</classpath>
202
</javac>
203
</then>
204
<elseif>
205
<matches string="${JDK_VERSION}" pattern="^(9|10)$$" />
206
<then>
207
<property name="addExports" value="--add-exports java.base/com.ibm.oti.vm=ALL-UNNAMED --add-exports java.base/com.ibm.oti.util=ALL-UNNAMED --add-exports java.base/jdk.internal.vm.annotation=ALL-UNNAMED --add-exports java.base/jdk.internal.misc=ALL-UNNAMED --add-exports java.base/com.ibm.jit.crypto=ALL-UNNAMED --add-exports java.base/com.ibm.jit=ALL-UNNAMED --add-exports java.base/com.ibm.oti.reflect=ALL-UNNAMED --add-exports java.xml.bind/javax.xml.bind.annotation=ALL-UNNAMED --add-exports java.xml.bind/javax.xml.bind=ALL-UNNAMED" />
208
<echo>===addExports: ${addExports}</echo>
209
<javac srcdir="${src}" destdir="${build}" debug="true" fork="true" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1">
210
<src path="${src}" />
211
<src path="${src_90}" />
212
<src path="${src_90_jcl}" />
213
<src path="${src_access}" />
214
<src path="${TestUtilities}" />
215
<src path="${TestUtilitiesJ9}" />
216
<src path="${transformerListener}" />
217
<compilerarg line='${addExports}' />
218
<compilerarg line='${addExports_90_jcl}' />
219
<compilerarg line='${addModules}' />
220
<compilerarg line='--add-modules openj9.sharedclasses' />
221
<!-- PR117298 -->
222
<exclude name="**/Cmvc194280.java" />
223
<exclude name="**/resources/**" />
224
<!-- requires special compilation methods -->
225
<exclude name="**/NoSuchMethod/**" />
226
<classpath>
227
<pathelement location="${LIB_DIR}/asm-all.jar" />
228
<pathelement location="${LIB_DIR}/testng.jar" />
229
<pathelement location="${LIB_DIR}/jcommander.jar" />
230
<pathelement location="${LIB_DIR}/commons-cli.jar" />
231
<pathelement location="${LIB_DIR}/javassist.jar" />
232
</classpath>
233
</javac>
234
<javac srcdir="${src_80}" destdir="${build}" debug="true" fork="true" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1">
235
<include name="org/openj9/test/java/lang/Test_Thread_Extra.java" />
236
<src path="${src_access}" />
237
<classpath>
238
<pathelement location="${LIB_DIR}/testng.jar" />
239
</classpath>
240
</javac>
241
</then>
242
</elseif>
243
<else>
244
<if>
245
<equals arg1="${JDK_VERSION}" arg2="11" />
246
<then>
247
<!-- Java 11 -->
248
<property name="src_version" location="src_110" />
249
<property name="addExports_version" value="" />
250
</then>
251
<elseif>
252
<matches string="${JDK_VERSION}" pattern="^1[2-6]$$" />
253
<then>
254
<!-- Java 12-16 -->
255
<property name="src_version" location="src_120" />
256
<property name="addExports_version" value="--add-exports java.base/jdk.internal.access=ALL-UNNAMED" />
257
</then>
258
</elseif>
259
<else>
260
<!-- Java 17+ -->
261
<property name="src_version" location="src_170" />
262
<property name="addExports_version" value="--add-exports java.base/jdk.internal.access=ALL-UNNAMED" />
263
</else>
264
</if>
265
266
<property name="addExports" value="--add-exports java.base/com.ibm.oti.vm=ALL-UNNAMED --add-exports java.base/com.ibm.oti.util=ALL-UNNAMED --add-exports java.base/jdk.internal.vm.annotation=ALL-UNNAMED --add-exports java.base/jdk.internal.misc=ALL-UNNAMED --add-exports java.base/jdk.internal.reflect=ALL-UNNAMED --add-exports java.base/com.ibm.jit.crypto=ALL-UNNAMED --add-exports java.base/com.ibm.jit=ALL-UNNAMED --add-exports java.base/com.ibm.oti.reflect=ALL-UNNAMED --add-exports java.base/openj9.internal.tools.attach.target=ALL-UNNAMED --add-exports jdk.jcmd/openj9.tools.attach.diagnostics.info=ALL-UNNAMED --add-exports jdk.attach/com.ibm.tools.attach.attacher=ALL-UNNAMED" />
267
<echo>===addExports: ${addExports}</echo>
268
269
<property name="srcpath" location="${src}:${src_110_up}:${src_version}:${src_90_jcl}:${src_access}:${TestUtilities}:${TestUtilitiesJ9}:${transformerListener}" />
270
<!-- first two excludes are from PR117298, third exclude requires special compilation methods -->
271
<property name="commonExcludes" value="**/Cmvc194280.java,**/resources/**,**/NoSuchMethod/**" />
272
<path id="build.cp">
273
<fileset dir="${LIB_DIR}/" includes="asm-all.jar"/>
274
<fileset dir="${LIB_DIR}/" includes="testng.jar"/>
275
<fileset dir="${LIB_DIR}/" includes="jcommander.jar"/>
276
<fileset dir="${LIB_DIR}/" includes="commons-cli.jar"/>
277
<fileset dir="${LIB_DIR}/" includes="javassist.jar"/>
278
<fileset dir="${LIB_DIR}/" includes="jaxb-api.jar"/>
279
</path>
280
<property name="commonArgs" value="${addExports} ${addExports_90_jcl} ${addExports_version} --add-modules openj9.sharedclasses" />
281
<if>
282
<matches string="${JDK_VERSION}" pattern="^(1[1-8])$$" />
283
<then>
284
<!-- Java 11-18 -->
285
<javac srcdir="${srcpath}" excludes="${commonExcludes}" destdir="${build}" debug="true" fork="true" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1" classpathref="build.cp">
286
<compilerarg line='${commonArgs}' />
287
</javac>
288
</then>
289
<else>
290
<!-- Java 19+ (SecurityManager removed) -->
291
<javac srcdir="${srcpath}" excludes="${commonExcludes}" destdir="${build}" debug="true" fork="true" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1" classpathref="build.cp">
292
<compilerarg line='${commonArgs}' />
293
<!-- exclude tests that depend on SecurityManager -->
294
<exclude name="org/openj9/test/java/security/Test_AccessController.java" />
295
<exclude name="org/openj9/test/java/security/Test_AccessControlContext.java" />
296
<exclude name="org/openj9/test/java/lang/Test_Class_SM.java" />
297
<exclude name="org/openj9/test/java/lang/Test_System_SM.java" />
298
<exclude name="org/openj9/test/java/lang/Test_Thread_SM.java" />
299
<exclude name="org/openj9/test/java/lang/Test_ThreadGroup_SM.java" />
300
<exclude name="org/openj9/test/java/lang/invoke/Test_MethodHandleInfo_SM.java" />
301
<exclude name="org/openj9/test/java/lang/Test_ClassLoader_SM.java" />
302
<exclude name="org/openj9/test/java/lang/Test_J9VMInternals_SM.java" />
303
<exclude name="org/openj9/test/java/lang/Test_J9VMInternalsImpl_SM.java" />
304
<exclude name="org/openj9/test/vm/Test_VM.java" />
305
</javac>
306
</else>
307
</if>
308
</else>
309
</if>
310
</target>
311
312
<target name="jasm_generator" depends="init,getDependentLibs" description="prepare jasm files">
313
<property name="jasm_class_destination" location="${build}/j9vm/test/invoker" />
314
<mkdir dir="${jasm_class_destination}" />
315
<exec executable="${TEST_JDK_HOME}/bin/java" dir="${jasm_class_destination}">
316
<arg line="-jar ${LIB_DIR}/asmtools.jar jasm ${src}/j9vm/test/invoker/NodeClass.jasm" />
317
</exec>
318
<exec executable="${TEST_JDK_HOME}/bin/java" dir="${jasm_class_destination}">
319
<arg line="-jar ${LIB_DIR}/asmtools.jar jasm ${src}/j9vm/test/invoker/NodeInterface.jasm" />
320
</exec>
321
</target>
322
323
<!-- This target is used to prepare test resource which is located in org/openj9/resources -->
324
<target name="pack_resources" depends="compileNoSuchMethod" description="prepare JCL test resources">
325
<!-- compile java files within resources dir without '-parameter' flag in javac command line, README in '${src}/org/openj9/resources/methodparameters/README' -->
326
<javac srcdir="${src}" destdir="${build_resource}" debug="true" fork="true" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1">
327
<include name ="org/openj9/resources/**" />
328
<exclude name ="org/openj9/resources/methodparameters/WithParams.java" />
329
<compilerarg line='${addModules}' />
330
<src path="${src_access}" />
331
<classpath>
332
<pathelement location="${LIB_DIR}/jaxb-api.jar" />
333
</classpath>
334
</javac>
335
336
<!-- compile java files within resources dir with '-parameter' flag in javac command line, README in '${src}/org/openj9/resources/methodparameters/README' -->
337
<javac srcdir="${src}" destdir="${build_resource}" debug="true" fork="true" executable="${compiler.javac}" includeAntRuntime="false" encoding="ISO-8859-1">
338
<compilerarg value='-parameters' />
339
<src path="${src_access}" />
340
<include name ="org/openj9/resources/methodparameters/WithParams.java" />
341
</javac>
342
343
<jar jarfile="${build_resource}/org/openj9/resources/openj9tr_general.jar">
344
<fileset dir="${build_resource}" includes="org/openj9/resources/classinheritance/**" />
345
<fileset dir="${build_resource}" includes="org/openj9/resources/methodparameters/**" />
346
<fileset dir="${build_resource}" includes="org/openj9/resources/security/**" />
347
</jar>
348
349
<!-- generate child.jar -->
350
<jar jarfile="${build_resource}/org/openj9/resources/openj9tr_child.jar">
351
<fileset dir="${src}/org/openj9/resources/classloader/child/" />
352
</jar>
353
354
<!-- generate parent.jar -->
355
<jar jarfile="${build_resource}/org/openj9/resources/openj9tr_parent.jar">
356
<fileset dir="${src}/org/openj9/resources/classloader/parent/" />
357
</jar>
358
359
<!-- generate A.jar and B.jar for org.openj9.test.annotationPackage tests -->
360
<jar jarfile="${build_resource}/org/openj9/resources/openj9tr_annotationPackage_A.jar">
361
<fileset dir="${build_resource}" includes="org/openj9/resources/annotationPackage/A.class" />
362
<fileset dir="${build_resource}" includes="org/openj9/resources/annotationPackage/package-info.class" />
363
</jar>
364
<jar jarfile="${build_resource}/org/openj9/resources/openj9tr_annotationPackage_B.jar">
365
<fileset dir="${build_resource}" includes="org/openj9/resources/annotationPackage/B.class" />
366
</jar>
367
368
<!-- copy extra test related files into build_resource dir -->
369
<copy todir="${build_resource}/org/openj9/resources">
370
<fileset dir="${src}/org/openj9/resources/misc" />
371
</copy>
372
373
<!-- copy Test_JITHelper dependencies to ${build_resource}, and add them into -Xbootclasspath/a -->
374
<copy file="${build}/org/openj9/test/com/ibm/jit/Test_JITHelpersImpl.class" todir="${build_resource}/org/openj9/test/com/ibm/jit" />
375
376
<!-- move classfiles in a restricted package to ${build_resource} so they can be added to a module -->
377
<move file="${build}/sun" todir="${build_resource}" />
378
</target>
379
380
<target name="dist" depends="pack_resources" description="generate the distribution">
381
<jar jarfile="${DEST}/GeneralTest.jar" filesonly="true">
382
<fileset dir="${build}" />
383
<fileset dir="${src}/../" includes="*.properties,*.xml" />
384
</jar>
385
<jar jarfile="${DEST}/TestResources.jar" filesonly="true">
386
<fileset dir="${build_resource}" />
387
</jar>
388
<jar jarfile="${RESOURCES_DIR}/vmargs.jar" filesonly="true" manifest="META-INF/MANIFEST.MF">
389
<fileset dir="${build}" includes="org/openj9/test/vmArguments/*.class" />
390
</jar>
391
<copy todir="${DEST}">
392
<fileset dir="${src}/../" includes="*.xml,*.policy" />
393
<fileset dir="${src}/../" includes="*.mk" />
394
</copy>
395
<mkdir dir="${DEST}/DupClassNameTest" />
396
<mkdir dir="${DEST}/DupClassNameTest/version1" />
397
<mkdir dir="${DEST}/DupClassNameTest/version2" />
398
<copy todir="${DEST}/DupClassNameTest/version1/">
399
<fileset dir="${build}/DupClassNameTest/version1" includes="*.class" />
400
</copy>
401
<copy todir="${DEST}/DupClassNameTest/version2/">
402
<fileset dir="${build}/DupClassNameTest/version2" includes="*.class" />
403
</copy>
404
</target>
405
406
<target name="clean" depends="dist" description="clean up">
407
<!-- Delete the ${build} and ${build_resource} directory trees -->
408
<delete dir="${build}" />
409
<delete dir="${build_resource}" />
410
</target>
411
412
<target name="build" >
413
<if>
414
<or>
415
<equals arg1="${JDK_IMPL}" arg2="ibm" />
416
<equals arg1="${JDK_IMPL}" arg2="openj9" />
417
</or>
418
<then>
419
<subant target="build">
420
<fileset dir="${TEST_ROOT}/functional/InstrumentationAgent" includes="build.xml" />
421
</subant>
422
<antcall target="clean" inheritall="true" />
423
</then>
424
</if>
425
</target>
426
</project>
427
428