ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.155
Committed: Mon Jun 16 18:01:38 2014 UTC (9 years, 10 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.154: +1 -1 lines
Log Message:
add simple infrastructure for implementation-dependent tests

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