ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.171
Committed: Wed Sep 2 04:46:40 2015 UTC (8 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.170: +6 -0 lines
Log Message:
import jtreg tests from openjdk

File Contents

# Content
1 <project name="jsr166" default="usage">
2
3 <description>
4 ------------------------------------------------------------------------------
5 Build file for JSR-166
6
7 Usage: ant [target]
8
9 User-specific settings are read from user.properties.
10 See user.properties.sample for an explanation of some useful settings.
11
12 The repository contains all dependencies except for ant and the JDK
13 itself. Because the JDK version matters and because different
14 targets require different JDKs, we assume that users have created a
15 hierarchy containing:
16 $HOME/jdk/jdk6
17 $HOME/jdk/jdk7
18 $HOME/jdk/jdk8
19 $HOME/jdk/jdk9
20 where each of the above is a JDK or a symlink to same, and
21 $HOME/jdk/src/jdk6
22 $HOME/jdk/src/jdk7
23 $HOME/jdk/src/jdk8
24 $HOME/jdk/src/jdk9
25 where each of the above is a complete JDK source tree
26 (e.g. mercurial forest) or a symlink to same.
27
28 Alternatively, define ant variables thus:
29 ant -Djdk$N.home=...
30 for $N in 6 7 8 9 ...
31 ------------------------------------------------------------------------------
32 </description>
33
34 <!-- Display main targets by running 'ant -projecthelp' -->
35 <target name="usage">
36 <java classname="org.apache.tools.ant.Main">
37 <arg value="-projecthelp" />
38 </java>
39 </target>
40
41
42 <!-- User-specific settings -->
43 <property file="user.properties"/>
44
45
46 <!-- Compilation options -->
47 <property name="build.sourcelevel" value="6"/>
48 <property name="build.debug" value="true"/>
49 <property name="build.debuglevel" value="source,lines,vars"/>
50 <property name="build.deprecation" value="false"/>
51 <property name="build.javadoc.access" value="protected"/>
52
53 <!-- Tck options; see JSR166TestCase.java
54 To profile a single tck test class:
55 ant -Djsr166.profileTests=true -Djsr166.profileThreshold=100 -Djsr166.tckTestClass=CompletableFutureTest test-tck
56 To stress test a single tck test class:
57 ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 test-tck
58 -->
59 <property name="jsr166.profileTests" value="false"/>
60 <property name="jsr166.profileThreshold" value="100"/>
61 <property name="jsr166.runsPerTest" value="1"/>
62 <property name="jsr166.tckTestClass" value="JSR166TestCase"/>
63
64 <!-- Build locations -->
65 <property name="build.dir" location="build"/>
66 <property name="build.classes.dir" location="${build.dir}/classes"/>
67 <property name="build.testcases.dir" location="${build.dir}/testcases"/>
68 <property name="build.loops.dir" location="${build.dir}/loops"/>
69 <property name="build.reports.dir" location="${build.dir}/reports"/>
70
71 <property name="build.4jdk7.dir" location="${build.dir}/jsr166-4jdk7"/>
72 <property name="build.4jdk7.classes.dir" location="${build.4jdk7.dir}/classes"/>
73 <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
74 <property name="build.4jdk7.docs.dir" location="${build.4jdk7.dir}/docs"/>
75
76 <property name="build.jsr166x.dir" location="${build.dir}/jsr166x"/>
77 <property name="build.jsr166y.dir" location="${build.dir}/jsr166y"/>
78 <property name="build.jsr166e.dir" location="${build.dir}/jsr166e"/>
79 <property name="build.extra166y.dir" location="${build.dir}/extra166y"/>
80
81 <property name="build.jsr166x.classes.dir" location="${build.jsr166x.dir}/classes"/>
82 <property name="build.jsr166y.classes.dir" location="${build.jsr166y.dir}/classes"/>
83 <property name="build.jsr166e.classes.dir" location="${build.jsr166e.dir}/classes"/>
84 <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
85
86 <!-- JDK locations -->
87 <property name="jdks.home" location="${user.home}/jdk"/>
88
89 <macrodef name="defjdklocations">
90 <attribute name="v"/>
91 <sequential>
92 <property name="jdk@{v}.home" location="${jdks.home}/jdk@{v}"/>
93 <property name="java@{v}" location="${jdk@{v}.home}/bin/java"/>
94 <property name="javac@{v}" location="${jdk@{v}.home}/bin/javac"/>
95 <property name="javadoc@{v}" location="${jdk@{v}.home}/bin/javadoc"/>
96 <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
97 <local name="boot.jar.dir"/>
98 <property name="boot.jar.dir" location="${jdk@{v}.home}/jre/lib"/>
99 <path id="bootclasspath@{v}">
100 <pathelement path="${boot.jar.dir}/resources.jar"/>
101 <pathelement path="${boot.jar.dir}/rt.jar"/>
102 <pathelement path="${boot.jar.dir}/jsse.jar"/>
103 <pathelement path="${boot.jar.dir}/jce.jar"/>
104 <pathelement path="${boot.jar.dir}/charsets.jar"/>
105 </path>
106 <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/>
107 </sequential>
108 </macrodef>
109
110 <macrodef name="mirror-dir">
111 <attribute name="src"/>
112 <attribute name="dst"/>
113 <sequential>
114 <delete dir="@{dst}"/>
115 <mkdir dir="@{dst}"/>
116 <copy todir="@{dst}" preservelastmodified="true">
117 <fileset dir="@{src}"/>
118 </copy>
119 </sequential>
120 </macrodef>
121
122 <defjdklocations v="6"/>
123 <defjdklocations v="7"/>
124 <defjdklocations v="8"/>
125 <defjdklocations v="9"/>
126
127 <!-- Source locations -->
128 <property name="src.dir" location="${basedir}/src/main"/>
129 <property name="test.src.dir" location="${basedir}/src/test"/>
130 <property name="loops.src.dir" location="${basedir}/src/loops"/>
131 <property name="tck.src.dir" location="${test.src.dir}/tck"/>
132 <property name="jtreg.src.dir" location="${test.src.dir}/jtreg"/>
133 <property name="lib.dir" location="${basedir}/lib"/>
134 <property name="dist.dir" location="${basedir}/dist"/>
135 <property name="topsrc.dir" location="${basedir}/src"/>
136 <property name="4jdk7src.dir" location="${topsrc.dir}/jdk7"/>
137 <property name="jsr166xsrc.dir" location="${topsrc.dir}/jsr166x"/>
138 <property name="jsr166ysrc.dir" location="${topsrc.dir}/jsr166y"/>
139 <property name="jsr166esrc.dir" location="${topsrc.dir}/jsr166e"/>
140 <property name="extra166ysrc.dir" location="${topsrc.dir}/extra166y"/>
141
142 <!-- Javadoc locations -->
143 <property name="docs.dir" location="${build.dir}/docs"/>
144 <property name="4jdk7docs.dir" location="${build.4jdk7.dir}/docs"/>
145 <property name="jsr166xdocs.dir" location="${build.jsr166x.dir}/docs"/>
146 <property name="jsr166ydocs.dir" location="${build.jsr166y.dir}/docs"/>
147 <property name="jsr166edocs.dir" location="${build.jsr166e.dir}/docs"/>
148 <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
149
150 <property name="dist.docs.dir" location="${dist.dir}/docs"/>
151 <property name="dist.4jdk7docs.dir" location="${dist.dir}/jsr166-4jdk7docs"/>
152 <property name="dist.jsr166xdocs.dir" location="${dist.dir}/jsr166xdocs"/>
153 <property name="dist.jsr166ydocs.dir" location="${dist.dir}/jsr166ydocs"/>
154 <property name="dist.jsr166edocs.dir" location="${dist.dir}/jsr166edocs"/>
155 <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
156
157 <!-- Jar locations -->
158 <property name="product.jar" location="${build.dir}/jsr166.jar"/>
159 <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
160 <property name="jsr166x.jar" location="${build.jsr166x.dir}/jsr166x.jar"/>
161 <property name="jsr166y.jar" location="${build.jsr166y.dir}/jsr166y.jar"/>
162 <property name="jsr166e.jar" location="${build.jsr166e.dir}/jsr166e.jar"/>
163 <property name="extra166y.jar" location="${build.extra166y.dir}/extra166y.jar"/>
164 <property name="junit.jar" location="${lib.dir}/junit.jar"/>
165
166 <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
167 <property name="java5.docroot.url" value="http://docs.oracle.com/javase/1.5.0/docs"/>
168 <property name="java6.docroot.url" value="http://docs.oracle.com/javase/6/docs"/>
169 <property name="java7.docroot.url" value="http://docs.oracle.com/javase/7/docs"/>
170 <property name="java8.docroot.url" value="http://docs.oracle.com/javase/8/docs"/>
171 <!-- The expected canonical location does not yet exist as of 2014-07 -->
172 <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
173 <property name="java9.docroot.url" value="http://download.java.net/jdk9/docs"/>
174 <!-- Default jdk doc location (latest stable release seems best) -->
175 <property name="java.docroot.url" value="${java8.docroot.url}"/>
176
177 <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
178 <property name="java5.api.url" value="${java5.docroot.url}/api/"/>
179 <property name="java6.api.url" value="${java6.docroot.url}/api/"/>
180 <property name="java7.api.url" value="${java7.docroot.url}/api/"/>
181 <property name="java8.api.url" value="${java8.docroot.url}/api/"/>
182 <property name="java9.api.url" value="${java9.docroot.url}/api/"/>
183 <property name="java.api.url" value="${java.docroot.url}/api/"/>
184
185 <!-- Define the "jtreg" task -->
186 <!-- See the docs in "jtreg -onlineHelp" -->
187 <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
188 classpath="${lib.dir}/jtreg.jar" />
189
190 <!-- Test classpath -->
191 <path id="test.classpath">
192 <pathelement location="${build.testcases.dir}"/>
193 <pathelement location="${junit.jar}"/>
194 </path>
195
196 <macrodef name="run-tck-tests">
197 <attribute name="tck.src.dir" default="${tck.src.dir}"/>
198 <attribute name="target"/>
199 <attribute name="compile-target" default="@{target}"/>
200 <attribute name="workdir"/>
201 <attribute name="classes"/>
202 <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
203 <element name="javac-elements" optional="true"/>
204 <sequential>
205
206 <mkdir dir="@{workdir}/tck-classes"/>
207
208 <javac srcdir="@{tck.src.dir}"
209 destdir="@{workdir}/tck-classes"
210 debug="${build.debug}"
211 debuglevel="${build.debuglevel}"
212 deprecation="${build.deprecation}"
213 source="@{compile-target}"
214 target="@{compile-target}"
215 classpath="${junit.jar}"
216 includeAntRuntime="false"
217 includeJavaRuntime="false"
218 executable="${javac@{compile-target}}"
219 fork="true">
220
221 <include name="*.java"/>
222 <compilerarg value="-XDignore.symbol.file=true"/>
223 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
224 <compilerarg value="-Xbootclasspath/p:@{classes}"/>
225 <compilerarg line="${build.args}"/>
226 <javac-elements/>
227
228 </javac>
229
230 <java classname="${jsr166.tckTestClass}"
231 failonerror="true"
232 jvm="${java@{target}}"
233 fork="true">
234 <jvmarg value="-Xbootclasspath/p:@{classes}"/>
235 <jvmarg line="@{jvmflags}"/>
236
237 <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 test-tck -->
238 <syspropertyset id="java.util.concurrent.ForkJoinPool-properties">
239 <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
240 </syspropertyset>
241
242 <sysproperty key="jsr166.profileTests" value="${jsr166.profileTests}"/>
243 <sysproperty key="jsr166.profileThreshold" value="${jsr166.profileThreshold}"/>
244 <sysproperty key="jsr166.runsPerTest" value="${jsr166.runsPerTest}"/>
245 <classpath>
246 <pathelement location="${junit.jar}"/>
247 <pathelement location="@{workdir}/tck-classes"/>
248 </classpath>
249 </java>
250
251 </sequential>
252 </macrodef>
253
254 <!-- Define jtreg test sets for different jdk versions -->
255 <fileset dir="${jtreg.src.dir}">
256 <patternset id="jdk9.jtreg.tests">
257 <include name="**/*.java"/>
258 </patternset>
259 </fileset>
260
261 <fileset dir="${jtreg.src.dir}">
262 <patternset id="jdk8.jtreg.tests">
263 <include name="**/*.java"/>
264 <exclude name="util/Spliterator/SpliteratorCharacteristics.java"/>
265 <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->
266 <exclude name="util/WeakHashMap/GCDuringIteration.java"/>
267 </patternset>
268 </fileset>
269
270 <fileset dir="${jtreg.src.dir}">
271 <patternset id="jdk7.jtreg.tests">
272 <include name="**/*.java"/>
273 <exclude name="util/Collection/CollectionDefaults.java"/>
274 <exclude name="util/List/ListDefaults.java"/>
275 <exclude name="util/Spliterator/**/*.java"/>
276 <exclude name="**/CompletableFuture/**/*.java"/>
277 <exclude name="**/ConcurrentAssociateTest.java"/>
278 <exclude name="**/ConcurrentContainsKeyTest.java"/>
279 <exclude name="**/ConcurrentHashMap/ToArray.java"/>
280 <exclude name="**/ConcurrentRemoveIf.java"/>
281 <exclude name="**/COWSubList.java"/>
282 <exclude name="**/FutureTask/NegativeTimeout.java"/>
283 <exclude name="util/concurrent/forkjoin/SubmissionTest.java"/>
284 <exclude name="**/StampedLock/**/*.java"/>
285 <exclude name="**/AtomicReferenceTest.java"/>
286 <exclude name="util/concurrent/atomic/Serial.java"/>
287 </patternset>
288 </fileset>
289
290 <macrodef name="run-jtreg-tests">
291 <!-- ant -Djtreg.src.dir=src/test/jtreg/util/concurrent/CompletableFuture test-jtreg -->
292 <attribute name="jtreg.src.dir" default="${jtreg.src.dir}"/>
293 <attribute name="source" default="7"/>
294 <attribute name="target"/>
295 <attribute name="workdir"/>
296 <attribute name="classes"/>
297 <attribute name="jtregflags" default=""/>
298 <sequential>
299 <delete dir="@{workdir}/JTwork" quiet="true"/>
300 <delete dir="@{workdir}/JTreport" quiet="true"/>
301 <mkdir dir="@{workdir}/JTwork/scratch"/>
302 <mkdir dir="@{workdir}/JTreport"/>
303 <jtreg dir="@{jtreg.src.dir}"
304 jdk="${jdk@{target}.home}"
305 workDir="@{workdir}/JTwork"
306 reportDir="@{workdir}/JTreport">
307 <patternset refid="jdk@{target}.jtreg.tests"/>
308 <arg value="-Xbootclasspath/p:@{classes}"/>
309 <arg value="-agentvm"/>
310 <arg value="-v:nopass,fail"/>
311 <arg value="-vmoptions:-esa -ea"/>
312 <arg value="-automatic"/>
313 <arg value="-k:!ignore"/>
314 <arg line="@{jtregflags}"/>
315 </jtreg>
316 </sequential>
317 </macrodef>
318
319 <!-- ALoops classpath -->
320 <path id="loops.classpath">
321 <pathelement location="${build.loops.dir}"/>
322 </path>
323
324 <!-- Support @jls tag, used in jdk8+ javadoc -->
325 <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
326 <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
327
328 <!-- Main targets -->
329
330 <property name="build.main.java.version" value="9"/>
331 <property name="build.main.javac" value="${javac9}"/>
332
333 <target name="dists"
334 depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
335 description="Builds all public jars and docs"/>
336
337 <target name="compile"
338 depends="configure-compiler"
339 description="Compiles src/main sources to build dir">
340
341 <mkdir dir="${build.classes.dir}"/>
342
343 <javac srcdir="${src.dir}"
344 destdir="${build.classes.dir}"
345 debug="${build.debug}"
346 debuglevel="${build.debuglevel}"
347 deprecation="${build.deprecation}"
348 classpath=""
349 includeAntRuntime="false"
350 includeJavaRuntime="false"
351 executable="${build.main.javac}"
352 fork="true">
353
354 <include name="**/*.java"/>
355 <compilerarg value="-Xprefer:source"/>
356 <compilerarg value="-XDignore.symbol.file=true"/>
357 <compilerarg value="-Xlint:all"/>
358 <compilerarg value="-Werror"/>
359 <compilerarg value="-Xdoclint:all/protected"/>
360 <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
361 <compilerarg line="${build.args}"/>
362
363 </javac>
364 </target>
365
366
367 <target name="jar"
368 depends="compile"
369 description="Builds library jar from compiled sources">
370
371 <jar destfile="${product.jar}">
372 <fileset dir="${build.classes.dir}"/>
373 </jar>
374 </target>
375
376
377 <target name="docs"
378 description="Builds javadocs for src/main to dist dir">
379
380 <delete dir="${docs.dir}"/>
381 <mkdir dir="${docs.dir}"/>
382
383 <!-- the packagenames="none" hack below prevents scanning the -->
384 <!-- sourcepath for packages -->
385
386 <javadoc destdir="${docs.dir}"
387 packagenames="none"
388 link="${java9.api.url}"
389 overview="${src.dir}/intro.html"
390 access="${build.javadoc.access}"
391 sourcepath="${src.dir}:${jdk9src.dir}"
392 classpath=""
393 executable="${javadoc9}">
394 <fileset dir="${src.dir}" defaultexcludes="yes">
395 <include name="**/*.java"/>
396 </fileset>
397 <arg line="-Xdocrootparent ${java9.docroot.url}"/>
398 <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
399 <arg value="-XDignore.symbol.file=true"/>
400 <arg value="-tag"/>
401 <arg value="${javadoc.jls.option}"/>
402 <arg value="-tag"/>
403 <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
404 <arg value="-tag"/>
405 <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
406 <arg value="-tag"/>
407 <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
408 </javadoc>
409 </target>
410
411
412 <target name="dist"
413 depends="dist-clean, dist-jar, dist-docs"
414 description="Puts all distributable products in single hierarchy"/>
415
416
417 <target name="release"
418 depends="dist"
419 description="Puts entire CVS tree, plus distribution productions, in a jar">
420
421 <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
422
423 <jar basedir="${basedir}" destfile="${release.jar}">
424 <!-- <exclude name="build/**"/> -->
425 <exclude name="${release.jar}"/>
426 <exclude name="user.properties"/>
427 <exclude name="etc/notes/**"/>
428 <exclude name="src/emulation/**"/>
429 <exclude name="**/SyntaxTest.java"/>
430 <exclude name="**/SuperfluousAbstract.java"/>
431 </jar>
432 </target>
433
434
435 <target name="clean"
436 description="Removes all build products">
437
438 <delete dir="${build.dir}"/>
439
440 </target>
441
442
443 <target name="dist-clean"
444 description="Removes all build and distribution products">
445
446 <delete dir="${build.dir}"/>
447 <delete dir="${dist.dir}"/>
448
449 </target>
450
451
452 <target name="dist-jar"
453 depends="clean, jar">
454 <copy file="${product.jar}" todir="${dist.dir}"/>
455 </target>
456
457 <target name="dist-docs"
458 depends="clean, docs">
459 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
460 </target>
461
462 <target name="tck" depends="test-tck" description="alias for test-tck"/>
463 <target name="test-tck"
464 depends="jar"
465 description="Runs tck tests for main directly">
466
467 <run-tck-tests
468 target="${build.main.java.version}"
469 workdir="${build.dir}"
470 classes="${product.jar}"/>
471 </target>
472
473 <target name="test-tck-parallelism-1"
474 description="Runs test-tck with given common pool parallelism">
475 <antcall target="test-tck">
476 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
477 </antcall>
478 </target>
479
480 <target name="test-tck-parallelism-0"
481 description="Runs test-tck with given common pool parallelism">
482 <antcall target="test-tck">
483 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
484 </antcall>
485 </target>
486
487 <target name="jtreg" depends="test-jtreg" description="alias for test-jtreg"/>
488 <target name="test-jtreg"
489 depends="jar"
490 description="Runs jtreg tests for main using the jtreg ant task">
491 <run-jtreg-tests
492 target="${build.main.java.version}"
493 workdir="${build.dir}"
494 classes="${product.jar}"/>
495 </target>
496
497 <target name="test"
498 depends="test-tck, test-tck-parallelism-1, test-jtreg"
499 description="Runs tck and jtreg tests for main">
500 </target>
501
502 <target name="jtreg8" description="Runs jtreg tests with jdk8">
503
504 <antcall target="jtreg">
505 <param name="build.main.java.version" value="8"/>
506 <param name="build.main.javac" value="${javac8}"/>
507 </antcall>
508
509 </target>
510
511 <target name="test89"
512 description="Runs tck and jtreg tests for main for multiple java versions">
513
514 <antcall target="clean"/>
515 <antcall target="test">
516 <param name="build.main.java.version" value="8"/>
517 <param name="build.main.javac" value="${javac8}"/>
518 </antcall>
519
520 <antcall target="clean"/>
521 <antcall target="test">
522 <param name="build.main.java.version" value="9"/>
523 <param name="build.main.javac" value="${javac9}"/>
524 </antcall>
525
526 </target>
527
528
529
530 <target name="configure-compiler">
531
532 <property name="unchecked.option" value="-Xlint:unchecked"/>
533
534 <condition property="warnunchecked.arg" value="${unchecked.option}">
535 <istrue value="${build.warnunchecked}"/>
536 </condition>
537
538 <property name="warnunchecked.arg" value=""/>
539
540
541 <!-- Common options in javac invocations -->
542 <property name="build.args" value="${warnunchecked.arg}"/>
543
544 </target>
545
546
547
548 <!-- Various demos and test programs -->
549
550
551 <target name="loops" depends="configure-compiler"
552 description="Benchmark from Doug Lea's AQS paper">
553
554 <mkdir dir="${build.loops.dir}"/>
555
556 <javac srcdir="${loops.src.dir}"
557 destdir="${build.loops.dir}"
558 debug="${build.debug}"
559 debuglevel="${build.debuglevel}"
560 deprecation="${build.deprecation}"
561 source="${build.sourcelevel}"
562 fork="true">
563
564 <compilerarg line="${build.args}"/>
565 <classpath refid="loops.classpath"/>
566 <compilerarg value="-XDignore.symbol.file=true"/>
567
568 </javac>
569
570 <java classname="ALoops" fork="true">
571 <classpath refid="loops.classpath"/>
572 </java>
573
574 </target>
575
576
577 <target name="compile-test-loops" depends="jar"
578 description="compile all the perf tests in src/test/loops">
579
580 <mkdir dir="${build.dir}/test/loops"/>
581
582 <javac srcdir="${basedir}/src/test/loops"
583 destdir="${build.dir}/test/loops"
584 debug="${build.debug}"
585 debuglevel="${build.debuglevel}"
586 deprecation="${build.deprecation}"
587 includeAntRuntime="false"
588 includeJavaRuntime="false"
589 executable="${javac9}"
590 fork="true">
591
592 <include name="*.java"/>
593 <compilerarg value="-XDignore.symbol.file=true"/>
594 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
595 <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
596 <compilerarg line="${build.args}"/>
597
598 </javac>
599
600 </target>
601
602
603 <!-- jsr166 4jdk7 -->
604
605 <target name="4jdk7compile"
606 depends="configure-compiler"
607 description="Compiles src/jdk7 sources, targeting jdk7">
608
609 <mkdir dir="${build.4jdk7.classes.dir}"/>
610
611 <javac srcdir="${4jdk7src.dir}"
612 destdir="${build.4jdk7.classes.dir}"
613 debug="${build.debug}"
614 debuglevel="${build.debuglevel}"
615 deprecation="${build.deprecation}"
616 source="6"
617 classpath=""
618 bootclasspath="${bootclasspath6}"
619 includeAntRuntime="false"
620 includeJavaRuntime="false"
621 executable="${javac7}"
622 fork="true">
623
624 <include name="**/*.java"/>
625 <compilerarg value="-Xprefer:source"/>
626 <compilerarg value="-XDignore.symbol.file=true"/>
627 <compilerarg value="-Xlint:all"/>
628 <compilerarg value="-Werror"/>
629 <compilerarg line="${build.args}"/>
630
631 </javac>
632 </target>
633
634 <target name="4jdk7doclint"
635 depends="configure-compiler"
636 description="Finds doclint warnings">
637
638 <mkdir dir="${build.4jdk7.classes.dir}"/>
639
640 <javac srcdir="${4jdk7src.dir}"
641 destdir="${build.4jdk7.classes.dir}"
642 debug="${build.debug}"
643 debuglevel="${build.debuglevel}"
644 deprecation="${build.deprecation}"
645 source="6"
646 classpath=""
647 bootclasspath="${bootclasspath7}"
648 includeAntRuntime="false"
649 includeJavaRuntime="false"
650 executable="${javac8}"
651 fork="true">
652
653 <include name="**/*.java"/>
654 <compilerarg value="-Xprefer:source"/>
655 <compilerarg value="-XDignore.symbol.file=true"/>
656 <compilerarg value="-Xlint:all"/>
657 <compilerarg value="-Xdoclint:all/protected"/>
658 <compilerarg line="${build.args}"/>
659
660 </javac>
661 </target>
662
663
664 <target name="4jdk7jar"
665 depends="4jdk7compile"
666 description="Builds library jar from compiled sources">
667
668 <jar destfile="${4jdk7product.jar}">
669 <fileset dir="${build.4jdk7.classes.dir}"/>
670 </jar>
671
672 </target>
673
674
675 <target name="4jdk7-test-tck"
676 depends="4jdk7jar"
677 description="Runs tck tests for jsr166-4jdk7 directly">
678
679 <run-tck-tests
680 target="7"
681 workdir="${build.4jdk7.dir}"
682 classes="${4jdk7product.jar}">
683 <javac-elements>
684 <!-- JDK8+ test classes -->
685 <exclude name="*8Test.java"/>
686 <exclude name="*9Test.java"/>
687 <exclude name="DoubleAccumulatorTest.java"/>
688 <exclude name="DoubleAdderTest.java"/>
689 <exclude name="LongAccumulatorTest.java"/>
690 <exclude name="LongAdderTest.java"/>
691 <exclude name="CompletableFutureTest.java"/>
692 <exclude name="SplittableRandomTest.java"/>
693 <exclude name="StampedLockTest.java"/>
694 </javac-elements>
695 </run-tck-tests>
696 </target>
697
698
699 <target name="4jdk7-test-tck-junit"
700 depends="4jdk7compile"
701 description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
702
703 <junit printsummary="true"
704 showoutput="true"
705 errorProperty="junit.failed"
706 failureProperty="junit.failed"
707 includeantruntime="true"
708 jvm="${java7}"
709 fork="true">
710
711 <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
712 <jvmarg value="-server"/>
713
714 <classpath>
715 <pathelement location="${junit.jar}"/>
716 <pathelement location="${build.4jdk7.tck.classes.dir}"/>
717 </classpath>
718
719 <formatter type="brief"/>
720
721 <test name="${jsr166.tckTestClass}" haltonfailure="no">
722 </test>
723
724 </junit>
725 </target>
726
727 <target name="4jdk7-test-jtreg"
728 depends="4jdk7jar"
729 description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
730 <run-jtreg-tests
731 target="7"
732 workdir="${build.4jdk7.dir}"
733 classes="${4jdk7product.jar}"/>
734 </target>
735
736
737 <target name="4jdk7-test"
738 depends="4jdk7-test-tck, 4jdk7-test-jtreg"
739 description="Runs tck and jtreg tests for jsr166-4jdk7">
740 </target>
741
742
743 <target name="4jdk7docs"
744 description="Builds javadocs for src/jdk7 to dist dir">
745
746 <delete dir="${4jdk7docs.dir}"/>
747 <mkdir dir="${4jdk7docs.dir}"/>
748
749 <javadoc destdir="${4jdk7docs.dir}"
750 packagenames="none"
751 link="${java7.api.url}"
752 overview="${4jdk7src.dir}/intro.html"
753 access="${build.javadoc.access}"
754 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
755 classpath=""
756 executable="${javadoc7}">
757 <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
758 <include name="**/*.java"/>
759 </fileset>
760 <arg line="-Xdocrootparent ${java7.docroot.url}"/>
761 <arg value="-XDignore.symbol.file=true"/>
762 </javadoc>
763 </target>
764
765
766 <target name="4jdk7dist"
767 depends="4jdk7dist-jar, 4jdk7dist-docs"
768 description="Puts all distributable products in single hierarchy"/>
769
770
771 <target name="4jdk7clean"
772 description="Removes all 4jdk7 build products">
773
774 <delete dir="${build.4jdk7.dir}"/>
775
776 </target>
777
778
779 <target name="4jdk7dist-jar"
780 depends="4jdk7clean, 4jdk7jar">
781 <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
782 </target>
783
784
785 <target name="4jdk7dist-docs"
786 depends="4jdk7clean, 4jdk7docs">
787 <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
788 </target>
789
790
791 <!-- jsr166x -->
792
793 <target name="jsr166xcompile"
794 depends="configure-compiler"
795 description="Compiles jsr166x sources to build dir">
796
797 <mkdir dir="${build.jsr166x.classes.dir}"/>
798
799 <javac srcdir="${topsrc.dir}"
800 destdir="${build.jsr166x.classes.dir}"
801 debug="${build.debug}"
802 debuglevel="${build.debuglevel}"
803 deprecation="${build.deprecation}"
804 classpath=""
805 bootclasspath="${bootclasspath6}"
806 source="5"
807 includeAntRuntime="false"
808 includeJavaRuntime="false"
809 executable="${javac7}"
810 fork="true">
811
812 <include name="jsr166x/**/*.java"/>
813 <compilerarg value="-XDignore.symbol.file=true"/>
814 <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
815 <compilerarg value="-Werror"/>
816 <compilerarg line="${build.args}"/>
817
818 </javac>
819 </target>
820
821
822 <target name="jsr166xjar"
823 depends="jsr166xcompile"
824 description="Builds library jar from compiled sources">
825
826 <jar destfile="${jsr166x.jar}">
827 <fileset dir="${build.jsr166x.classes.dir}"/>
828 </jar>
829
830 </target>
831
832
833 <target name="jsr166xdocs"
834 description="Builds javadocs to dist dir">
835
836 <delete dir="${jsr166xdocs.dir}"/>
837 <mkdir dir="${jsr166xdocs.dir}"/>
838
839 <javadoc destdir="${jsr166xdocs.dir}"
840 packagenames="jsr166x.*"
841 link="${java.api.url}"
842 access="${build.javadoc.access}"
843 sourcepath="${topsrc.dir}:${jdk6src.dir}"
844 bootclasspath="${bootclasspath6}"
845 source="5"
846 executable="${javadoc7}">
847 <arg line="-Xdocrootparent ${java.docroot.url}"/>
848 <arg value="-XDignore.symbol.file=true"/>
849
850 </javadoc>
851 </target>
852
853
854 <target name="jsr166xdist"
855 depends="jsr166xdist-jar, jsr166xdist-docs"
856 description="Puts all distributable products in single hierarchy"/>
857
858
859 <target name="jsr166xclean"
860 description="Removes all jsr166x build products">
861
862 <delete dir="${build.jsr166x.dir}"/>
863
864 </target>
865
866
867 <target name="jsr166xdist-jar"
868 depends="jsr166xclean, jsr166xjar">
869 <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
870 </target>
871
872 <target name="jsr166xdist-docs"
873 depends="jsr166xclean, jsr166xdocs">
874 <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
875 </target>
876
877 <!-- jsr166y -->
878
879
880 <target name="jsr166ycompile"
881 depends="configure-compiler"
882 description="Compiles jsr166y sources">
883
884 <mkdir dir="${build.jsr166y.classes.dir}"/>
885
886 <javac srcdir="${topsrc.dir}"
887 destdir="${build.jsr166y.classes.dir}"
888 debug="${build.debug}"
889 debuglevel="${build.debuglevel}"
890 deprecation="${build.deprecation}"
891 source="6"
892 classpath=""
893 bootclasspath="${bootclasspath6}"
894 includeAntRuntime="false"
895 includeJavaRuntime="false"
896 executable="${javac7}"
897 fork="true">
898
899 <include name="jsr166y/**/*.java"/>
900 <compilerarg value="-XDignore.symbol.file=true"/>
901 <compilerarg value="-Xlint:all"/>
902 <compilerarg value="-Werror"/>
903 <compilerarg line="${build.args}"/>
904
905 </javac>
906 </target>
907
908
909 <target name="jsr166yjar"
910 depends="jsr166ycompile"
911 description="Builds library jar from compiled sources">
912
913 <jar destfile="${jsr166y.jar}" index="true">
914 <fileset dir="${build.jsr166y.classes.dir}"/>
915 </jar>
916
917 </target>
918
919
920 <target name="jsr166ydocs"
921 description="Builds javadocs to dist dir">
922
923 <delete dir="${jsr166ydocs.dir}"/>
924 <mkdir dir="${jsr166ydocs.dir}"/>
925
926 <javadoc destdir="${jsr166ydocs.dir}"
927 packagenames="jsr166y.*"
928 link="${java.api.url}"
929 access="${build.javadoc.access}"
930 sourcepath="${topsrc.dir}:${jdk6src.dir}"
931 bootclasspath="${bootclasspath6}"
932 source="6"
933 executable="${javadoc7}">
934 <arg line="-Xdocrootparent ${java.docroot.url}"/>
935 <arg value="-XDignore.symbol.file=true"/>
936
937 </javadoc>
938 </target>
939
940
941 <target name="jsr166ydist"
942 depends="jsr166ydist-jar, jsr166ydist-docs"
943 description="Puts all distributable products in single hierarchy"/>
944
945
946 <target name="jsr166yclean"
947 description="Removes all jsr166y build products">
948
949 <delete dir="${build.jsr166y.dir}"/>
950
951 </target>
952
953
954 <target name="jsr166ydist-jar"
955 depends="jsr166yclean, jsr166yjar">
956 <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
957 </target>
958
959 <target name="jsr166ydist-docs"
960 depends="jsr166yclean, jsr166ydocs">
961 <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
962 </target>
963
964
965 <!-- extra166y -->
966
967
968 <target name="extra166ycompile"
969 depends="configure-compiler, jsr166yjar"
970 description="Compiles extra166y sources">
971
972 <mkdir dir="${build.extra166y.classes.dir}"/>
973
974 <javac srcdir="${topsrc.dir}"
975 destdir="${build.extra166y.classes.dir}"
976 debug="${build.debug}"
977 debuglevel="${build.debuglevel}"
978 deprecation="${build.deprecation}"
979 bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
980 classpath=""
981 source="6"
982 includeAntRuntime="false"
983 includeJavaRuntime="false"
984 executable="${javac7}"
985 fork="true">
986
987 <include name="extra166y/**/*.java"/>
988 <compilerarg value="-XDignore.symbol.file=true"/>
989 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
990 <compilerarg value="-Werror"/>
991 <compilerarg line="${build.args}"/>
992
993 </javac>
994 </target>
995
996
997 <target name="extra166yjar"
998 depends="extra166ycompile"
999 description="Builds library jar from compiled sources">
1000
1001 <jar destfile="${extra166y.jar}" index="true">
1002 <fileset dir="${build.extra166y.classes.dir}"/>
1003 </jar>
1004
1005 </target>
1006
1007
1008 <target name="extra166ydocs"
1009 description="Builds javadocs to build dir">
1010
1011 <delete dir="${extra166ydocs.dir}"/>
1012 <mkdir dir="${extra166ydocs.dir}"/>
1013
1014 <javadoc destdir="${extra166ydocs.dir}"
1015 packagenames="extra166y.*"
1016 link="${java.api.url}"
1017 access="${build.javadoc.access}"
1018 sourcepath="${topsrc.dir}:${jdk6src.dir}"
1019 bootclasspath="${bootclasspath6}"
1020 source="6"
1021 executable="${javadoc7}">
1022 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1023 <arg value="-XDignore.symbol.file=true"/>
1024
1025 </javadoc>
1026 </target>
1027
1028
1029 <target name="extra166ydist"
1030 depends="extra166ydist-jar, extra166ydist-docs"
1031 description="Puts all distributable products in single hierarchy"/>
1032
1033
1034 <target name="extra166yclean"
1035 description="Removes all extra166y build products">
1036
1037 <delete dir="${build.extra166y.dir}"/>
1038
1039 </target>
1040
1041
1042 <target name="extra166ydist-jar"
1043 depends="extra166yclean, extra166yjar">
1044 <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1045 </target>
1046
1047 <target name="extra166ydist-docs"
1048 depends="extra166yclean, extra166ydocs">
1049 <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1050 </target>
1051
1052 <!-- jsr166e -->
1053
1054 <property name="build.jsr166e.java.version" value="6"/>
1055 <property name="build.jsr166e.javac" value="${javac6}"/>
1056
1057 <target name="jsr166ecompile"
1058 depends="configure-compiler"
1059 description="Compiles jsr166e sources">
1060
1061 <mkdir dir="${build.jsr166e.classes.dir}"/>
1062
1063 <javac srcdir="${topsrc.dir}"
1064 destdir="${build.jsr166e.classes.dir}"
1065 debug="${build.debug}"
1066 debuglevel="${build.debuglevel}"
1067 deprecation="${build.deprecation}"
1068 source="${build.jsr166e.java.version}"
1069 classpath=""
1070 includeAntRuntime="false"
1071 includeJavaRuntime="false"
1072 executable="${build.jsr166e.javac}"
1073 fork="true">
1074
1075 <include name="jsr166e/**/*.java"/>
1076 <compilerarg value="-XDignore.symbol.file=true"/>
1077 <compilerarg value="-Xlint:all"/>
1078 <compilerarg value="-Werror"/>
1079 <compilerarg line="${build.args}"/>
1080
1081 </javac>
1082 </target>
1083
1084 <!-- jsr166e: find doclint errors -->
1085 <target name="jsr166edoclint">
1086
1087 <mkdir dir="${build.jsr166e.classes.dir}"/>
1088
1089 <javac srcdir="${topsrc.dir}"
1090 destdir="${build.jsr166e.classes.dir}"
1091 debug="${build.debug}"
1092 debuglevel="${build.debuglevel}"
1093 deprecation="${build.deprecation}"
1094 source="${build.jsr166e.java.version}"
1095 classpath=""
1096 bootclasspath="${bootclasspath7}"
1097 includeAntRuntime="false"
1098 includeJavaRuntime="false"
1099 executable="${javac8}"
1100 fork="true">
1101
1102 <include name="jsr166e/**/*.java"/>
1103 <compilerarg value="-XDignore.symbol.file=true"/>
1104 <compilerarg value="-Xlint:all"/>
1105 <compilerarg value="-Werror"/>
1106 <compilerarg value="-Xdoclint:all/protected"/>
1107
1108 </javac>
1109 </target>
1110
1111
1112 <target name="jsr166ejar"
1113 depends="jsr166ecompile"
1114 description="Builds library jar from compiled sources">
1115
1116 <jar destfile="${jsr166e.jar}" index="true">
1117 <fileset dir="${build.jsr166e.classes.dir}"/>
1118 </jar>
1119
1120 </target>
1121
1122
1123 <target name="jsr166edocs"
1124 description="Builds javadocs to build dir">
1125
1126 <delete dir="${jsr166edocs.dir}"/>
1127 <mkdir dir="${jsr166edocs.dir}"/>
1128
1129 <javadoc destdir="${jsr166edocs.dir}"
1130 packagenames="jsr166e.*"
1131 link="${java.api.url}"
1132 access="${build.javadoc.access}"
1133 sourcepath="${topsrc.dir}:${jdk6src.dir}"
1134 source="${build.jsr166e.java.version}"
1135 executable="${javadoc7}">
1136 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1137 <arg value="-XDignore.symbol.file=true"/>
1138
1139 </javadoc>
1140 </target>
1141
1142
1143 <target name="jsr166e-test-tck-one-java-version"
1144 depends="jsr166ejar">
1145
1146 <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1147
1148 <run-tck-tests
1149 tck.src.dir="${test.src.dir}/tck-jsr166e"
1150 target="${build.jsr166e.java.version}"
1151 workdir="${build.jsr166e.dir}"
1152 classes="${jsr166e.jar}"/>
1153 </target>
1154
1155 <target name="jsr166e-test-tck"
1156 description="Runs tck tests for jsr166e for multiple java versions">
1157
1158 <!-- <antcall target="clean"/> -->
1159 <!-- <antcall target="jsr166e-test-tck-one-java-version"> -->
1160 <!-- <param name="build.jsr166e.java.version" value="8"/> -->
1161 <!-- <param name="build.jsr166e.javac" value="${javac8}"/> -->
1162 <!-- </antcall> -->
1163
1164 <antcall target="clean"/>
1165 <antcall target="jsr166e-test-tck-one-java-version">
1166 <param name="build.jsr166e.java.version" value="7"/>
1167 <param name="build.jsr166e.javac" value="${javac7}"/>
1168 </antcall>
1169
1170 <antcall target="clean"/>
1171 <antcall target="jsr166e-test-tck-one-java-version">
1172 <param name="build.jsr166e.java.version" value="6"/>
1173 <param name="build.jsr166e.javac" value="${javac6}"/>
1174 </antcall>
1175 </target>
1176
1177
1178 <target name="jsr166e-test"
1179 depends="jsr166e-test-tck"
1180 description="Runs all tests for jsr166e">
1181 </target>
1182
1183 <target name="jsr166edist"
1184 depends="jsr166edist-jar, jsr166edist-docs"
1185 description="Puts all distributable products in single hierarchy"/>
1186
1187
1188 <target name="jsr166eclean"
1189 description="Removes all jsr166e build products">
1190 <delete dir="${build.jsr166e.dir}"/>
1191 </target>
1192
1193
1194 <target name="jsr166edist-jar"
1195 depends="jsr166eclean, jsr166ejar">
1196 <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1197 </target>
1198
1199 <target name="jsr166edist-docs"
1200 depends="jsr166eclean, jsr166edocs">
1201 <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1202 </target>
1203
1204
1205 <!-- Find buglets that can be detected by static build tools -->
1206
1207 <target name="lint">
1208 <antcall target="dists">
1209 <param name="build.javadoc.access" value="public"/>
1210 </antcall>
1211 </target>
1212
1213 <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1214 <target name="lint-private">
1215 <antcall target="dist">
1216 <param name="build.javadoc.access" value="private"/>
1217 </antcall>
1218 </target>
1219
1220
1221 </project>