27 |
|
(e.g. mercurial forest) or a symlink to same. |
28 |
|
|
29 |
|
Alternatively, define ant variables thus: |
30 |
< |
ant -Djdk$N.home=... |
30 |
> |
ant -Djdk$N.home=... -Djdk$N.src.home=... |
31 |
|
for $N in 6 7 8 9 ... |
32 |
|
|
33 |
|
As of 2015-09, there is incomplete hacky support for jigsaw |
34 |
|
Build for jigsaw using something like: |
35 |
< |
ant -Djdk9.home="$HOME/jdk/jigsaw" -Djdk9.src.dir="$HOME/jdk/src/jigsaw" clean test dist |
35 |
> |
ant -Djdk9.home="$HOME/jdk/jigsaw" -Djdk9.src.home="$HOME/jdk/src/jigsaw" clean test dist |
36 |
|
"docs" target is still broken. |
37 |
|
------------------------------------------------------------------------------ |
38 |
|
</description> |
57 |
|
<property name="build.deprecation" value="false"/> |
58 |
|
<property name="build.javadoc.access" value="protected"/> |
59 |
|
|
60 |
– |
<!-- Tck options; see JSR166TestCase.java |
61 |
– |
To profile a single tck test class: |
62 |
– |
ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck |
63 |
– |
To stress test a single tck test class: |
64 |
– |
ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck |
65 |
– |
--> |
66 |
– |
<property name="jsr166.profileTests" value="false"/> |
67 |
– |
<property name="jsr166.profileThreshold" value="100"/> |
68 |
– |
<property name="jsr166.runsPerTest" value="1"/> |
69 |
– |
<property name="jsr166.tckTestClass" value="JSR166TestCase"/> |
70 |
– |
|
60 |
|
<!-- Build locations --> |
61 |
|
<property name="build.dir" location="build"/> |
62 |
|
<property name="build.classes.dir" location="${build.dir}/classes"/> |
85 |
|
<macrodef name="defjdklocations"> |
86 |
|
<attribute name="v"/> |
87 |
|
<sequential> |
88 |
< |
<property name="jdk@{v}.home" location="${jdks.home}/jdk@{v}"/> |
89 |
< |
<property name="java@{v}" location="${jdk@{v}.home}/bin/java"/> |
90 |
< |
<property name="javac@{v}" location="${jdk@{v}.home}/bin/javac"/> |
91 |
< |
<property name="javadoc@{v}" location="${jdk@{v}.home}/bin/javadoc"/> |
88 |
> |
<property name="jdk@{v}.home" location="${jdks.home}/jdk@{v}"/> |
89 |
> |
<property name="java@{v}" location="${jdk@{v}.home}/bin/java"/> |
90 |
> |
<property name="javac@{v}" location="${jdk@{v}.home}/bin/javac"/> |
91 |
> |
<property name="javadoc@{v}" location="${jdk@{v}.home}/bin/javadoc"/> |
92 |
> |
<property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/> |
93 |
|
<local name="have.java.base"/> |
94 |
|
<available property="have.java.base" |
95 |
< |
file="${jdks.home}/src/jdk@{v}/jdk/src/java.base/share/classes" type="dir"/> |
96 |
< |
<property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/java.base/share/classes" |
95 |
> |
file="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" type="dir"/> |
96 |
> |
<property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" |
97 |
|
if:set="have.java.base"/> |
98 |
< |
<property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes" |
98 |
> |
<property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes" |
99 |
|
unless:set="have.java.base"/> |
100 |
|
<local name="modules"/> |
101 |
|
<available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/> |
176 |
|
<property name="java6.docroot.url" value="http://docs.oracle.com/javase/6/docs"/> |
177 |
|
<property name="java7.docroot.url" value="http://docs.oracle.com/javase/7/docs"/> |
178 |
|
<property name="java8.docroot.url" value="http://docs.oracle.com/javase/8/docs"/> |
179 |
< |
<!-- The expected canonical location does not yet exist as of 2014-07 --> |
179 |
> |
<!-- The expected canonical location does not yet exist as of 2015-11 --> |
180 |
|
<!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> --> |
181 |
|
<property name="java9.docroot.url" value="http://download.java.net/jdk9/docs"/> |
182 |
|
<!-- Default jdk doc location (latest stable release seems best) --> |
195 |
|
<taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant" |
196 |
|
classpath="${lib.dir}/jtreg.jar" /> |
197 |
|
|
198 |
< |
<!-- Test classpath --> |
199 |
< |
<path id="test.classpath"> |
200 |
< |
<pathelement location="${build.testcases.dir}"/> |
201 |
< |
<pathelement location="${junit.jar}"/> |
202 |
< |
</path> |
203 |
< |
|
198 |
> |
<!-- Tck options; see JSR166TestCase.java |
199 |
> |
To profile a single tck test class: |
200 |
> |
ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck |
201 |
> |
To stress test a single tck test class: |
202 |
> |
ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck |
203 |
> |
To stress test a single tck test method: |
204 |
> |
ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck |
205 |
> |
--> |
206 |
> |
<property name="jsr166.tckTestClass" value="JSR166TestCase"/> |
207 |
|
<macrodef name="run-tck-tests"> |
208 |
|
<attribute name="tck.src.dir" default="${tck.src.dir}"/> |
209 |
|
<attribute name="target"/> |
237 |
|
|
238 |
|
<include name="*.java"/> |
239 |
|
<compilerarg value="-XDignore.symbol.file=true"/> |
240 |
< |
<compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/> |
240 |
> |
<compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/> |
241 |
|
<compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/> |
242 |
< |
<compilerarg value="-Xoverride:${build.classes.dir}" if:set="modules"/> |
242 |
> |
<compilerarg value="-Xpatch:${build.classes.dir}" if:set="modules"/> |
243 |
|
<compilerarg line="${build.args}"/> |
244 |
|
<javac-elements/> |
245 |
|
|
250 |
|
jvm="${java@{target}}" |
251 |
|
fork="true"> |
252 |
|
<jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/> |
253 |
< |
<jvmarg value="-Xoverride:${build.classes.dir}" if:set="modules"/> |
253 |
> |
<jvmarg value="-Xpatch:${build.classes.dir}" if:set="modules"/> |
254 |
|
<jvmarg line="@{jvmflags}"/> |
255 |
|
|
256 |
|
<!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck --> |
257 |
< |
<syspropertyset id="java.util.concurrent.ForkJoinPool-properties"> |
257 |
> |
<syspropertyset id="system-properties-used-by-tck"> |
258 |
|
<propertyref prefix="java.util.concurrent.ForkJoinPool"/> |
259 |
+ |
<propertyref prefix="jsr166."/> |
260 |
+ |
<propertyref name="test.timeout.factor"/> |
261 |
|
</syspropertyset> |
262 |
|
|
268 |
– |
<sysproperty key="jsr166.profileTests" value="${jsr166.profileTests}"/> |
269 |
– |
<sysproperty key="jsr166.profileThreshold" value="${jsr166.profileThreshold}"/> |
270 |
– |
<sysproperty key="jsr166.runsPerTest" value="${jsr166.runsPerTest}"/> |
263 |
|
<classpath> |
264 |
|
<pathelement location="${junit.jar}"/> |
265 |
|
<pathelement location="@{workdir}/tck-classes"/> |
291 |
|
</patternset> |
292 |
|
</fileset> |
293 |
|
|
294 |
+ |
<!-- ant -Djtreg.flags=-timeoutFactor:4 --> |
295 |
+ |
<property name="jtreg.flags" value=""/> |
296 |
+ |
|
297 |
|
<macrodef name="run-jtreg-tests"> |
298 |
|
<!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg --> |
299 |
|
<attribute name="source" default="7"/> |
304 |
|
|
305 |
|
<sequential> |
306 |
|
|
307 |
+ |
<!-- ant -Djtreg.verbose=time,fail,error jtreg --> |
308 |
+ |
<property name="jtreg.verbose" value="nopass,fail,error"/> |
309 |
+ |
|
310 |
|
<local name="modules"/> |
311 |
|
<condition property="modules"> |
312 |
|
<available file="${jdk@{target}.home}/jmods" type="dir"/> |
315 |
|
<delete dir="@{workdir}/JTwork" quiet="true"/> |
316 |
|
<delete dir="@{workdir}/JTreport" quiet="true"/> |
317 |
|
<mkdir dir="@{workdir}/JTwork/scratch"/> |
318 |
< |
<mkdir dir="@{workdir}/JTreport"/> |
318 |
> |
<!-- workaround for https://bugs.openjdk.java.net/browse/CODETOOLS-7901571 --> |
319 |
> |
<mkdir dir="@{workdir}/JTreport/html"/> |
320 |
> |
<mkdir dir="@{workdir}/JTreport/text"/> |
321 |
|
<jtreg dir="${jtreg@{target}.src.dir}" |
322 |
|
jdk="${jdk@{target}.home}" |
323 |
|
workDir="@{workdir}/JTwork" |
324 |
|
reportDir="@{workdir}/JTreport"> |
325 |
|
<patternset refid="jdk@{target}.jtreg.tests"/> |
326 |
|
<arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/> |
327 |
< |
<arg value="-Xoverride:${build.classes.dir}" if:set="modules"/> |
327 |
> |
<arg value="-Xpatch:${build.classes.dir}" if:set="modules"/> |
328 |
|
<arg value="-agentvm"/> |
329 |
< |
<arg value="-v:nopass,fail"/> |
329 |
> |
<arg value="-verbose:${jtreg.verbose}"/> |
330 |
|
<arg value="-vmoptions:-esa -ea"/> |
331 |
|
<arg value="-automatic"/> |
332 |
|
<arg value="-k:!ignore"/> |
333 |
|
<arg line="@{jtregflags}"/> |
334 |
+ |
<arg line="${jtreg.flags}"/> |
335 |
|
</jtreg> |
336 |
|
</sequential> |
337 |
|
</macrodef> |
394 |
|
<compilerarg line="${build.args}"/> |
395 |
|
|
396 |
|
</javac> |
397 |
+ |
|
398 |
+ |
<!-- We need jdk9's Contended annotation, but at compile time only --> |
399 |
+ |
<delete file="${destdir}/jdk/internal/vm/annotation/Contended.class"/> |
400 |
|
</target> |
401 |
|
|
402 |
|
|
428 |
|
link="${java9.api.url}" |
429 |
|
overview="${src.dir}/intro.html" |
430 |
|
access="${build.javadoc.access}" |
431 |
< |
sourcepath="${src.dir}:${jdk9src.dir}" |
431 |
> |
sourcepath="${src.dir}:${jdk9.src.dir}" |
432 |
|
classpath="" |
433 |
|
executable="${javadoc9}"> |
434 |
|
<fileset dir="${src.dir}" defaultexcludes="yes"> |
446 |
|
<arg value="implSpec:a:<em>Implementation Requirements:</em>"/> |
447 |
|
<arg value="-tag"/> |
448 |
|
<arg value="implNote:a:<em>Implementation Note:</em>"/> |
449 |
+ |
<!-- tags added in jdk9 --> |
450 |
+ |
<arg value="-tag"/> |
451 |
+ |
<arg value="revised:X"/> |
452 |
+ |
<arg value="-tag"/> |
453 |
+ |
<arg value="spec:X"/> |
454 |
|
</javadoc> |
455 |
|
</target> |
456 |
|
|
612 |
|
debuglevel="${build.debuglevel}" |
613 |
|
deprecation="${build.deprecation}" |
614 |
|
source="${build.sourcelevel}" |
615 |
+ |
target="${build.sourcelevel}" |
616 |
|
fork="true"> |
617 |
|
|
618 |
|
<compilerarg line="${build.args}"/> |
668 |
|
debuglevel="${build.debuglevel}" |
669 |
|
deprecation="${build.deprecation}" |
670 |
|
source="6" |
671 |
+ |
target="6" |
672 |
|
classpath="" |
673 |
|
bootclasspath="${bootclasspath6}" |
674 |
|
includeAntRuntime="false" |
698 |
|
debuglevel="${build.debuglevel}" |
699 |
|
deprecation="${build.deprecation}" |
700 |
|
source="6" |
701 |
+ |
target="6" |
702 |
|
classpath="" |
703 |
< |
bootclasspath="${bootclasspath7}" |
703 |
> |
bootclasspath="${bootclasspath6}" |
704 |
|
includeAntRuntime="false" |
705 |
|
includeJavaRuntime="false" |
706 |
|
executable="${javac8}" |
813 |
|
link="${java7.api.url}" |
814 |
|
overview="${4jdk7src.dir}/intro.html" |
815 |
|
access="${build.javadoc.access}" |
816 |
< |
sourcepath="${4jdk7src.dir}:${jdk7src.dir}" |
816 |
> |
sourcepath="${4jdk7src.dir}:${jdk7.src.dir}" |
817 |
|
classpath="" |
818 |
|
executable="${javadoc7}"> |
819 |
|
<fileset dir="${4jdk7src.dir}" defaultexcludes="yes"> |
866 |
|
classpath="" |
867 |
|
bootclasspath="${bootclasspath6}" |
868 |
|
source="5" |
869 |
+ |
target="5" |
870 |
|
includeAntRuntime="false" |
871 |
|
includeJavaRuntime="false" |
872 |
|
executable="${javac7}" |
907 |
|
packagenames="jsr166x.*" |
908 |
|
link="${java.api.url}" |
909 |
|
access="${build.javadoc.access}" |
910 |
< |
sourcepath="${topsrc.dir}:${jdk6src.dir}" |
910 |
> |
sourcepath="${topsrc.dir}:${jdk6.src.dir}" |
911 |
|
bootclasspath="${bootclasspath6}" |
912 |
|
source="5" |
913 |
|
executable="${javadoc7}"> |
956 |
|
debuglevel="${build.debuglevel}" |
957 |
|
deprecation="${build.deprecation}" |
958 |
|
source="6" |
959 |
+ |
target="6" |
960 |
|
classpath="" |
961 |
|
bootclasspath="${bootclasspath6}" |
962 |
|
includeAntRuntime="false" |
999 |
|
packagenames="jsr166y.*" |
1000 |
|
link="${java.api.url}" |
1001 |
|
access="${build.javadoc.access}" |
1002 |
< |
sourcepath="${topsrc.dir}:${jdk6src.dir}" |
1002 |
> |
sourcepath="${topsrc.dir}:${jdk6.src.dir}" |
1003 |
|
bootclasspath="${bootclasspath6}" |
1004 |
|
source="6" |
1005 |
|
executable="${javadoc7}"> |
1051 |
|
bootclasspath="@{jsr166y.jar}:${bootclasspath6}" |
1052 |
|
classpath="" |
1053 |
|
source="6" |
1054 |
+ |
target="6" |
1055 |
|
includeAntRuntime="false" |
1056 |
|
includeJavaRuntime="false" |
1057 |
|
executable="${javac7}" |
1092 |
|
packagenames="extra166y.*" |
1093 |
|
link="${java.api.url}" |
1094 |
|
access="${build.javadoc.access}" |
1095 |
< |
sourcepath="${topsrc.dir}:${jdk6src.dir}" |
1095 |
> |
sourcepath="${topsrc.dir}:${jdk6.src.dir}" |
1096 |
|
bootclasspath="${bootclasspath6}" |
1097 |
|
source="6" |
1098 |
|
executable="${javadoc7}"> |
1143 |
|
debuglevel="${build.debuglevel}" |
1144 |
|
deprecation="${build.deprecation}" |
1145 |
|
source="${build.jsr166e.java.version}" |
1146 |
+ |
target="${build.jsr166e.java.version}" |
1147 |
|
classpath="" |
1148 |
|
includeAntRuntime="false" |
1149 |
|
includeJavaRuntime="false" |
1170 |
|
debuglevel="${build.debuglevel}" |
1171 |
|
deprecation="${build.deprecation}" |
1172 |
|
source="${build.jsr166e.java.version}" |
1173 |
+ |
target="${build.jsr166e.java.version}" |
1174 |
|
classpath="" |
1175 |
< |
bootclasspath="${bootclasspath7}" |
1175 |
> |
bootclasspath="${bootclasspath6}" |
1176 |
|
includeAntRuntime="false" |
1177 |
|
includeJavaRuntime="false" |
1178 |
|
executable="${javac8}" |
1213 |
|
packagenames="jsr166e.*" |
1214 |
|
link="${java.api.url}" |
1215 |
|
access="${build.javadoc.access}" |
1216 |
< |
sourcepath="${topsrc.dir}:${jdk6src.dir}" |
1216 |
> |
sourcepath="${topsrc.dir}:${jdk6.src.dir}" |
1217 |
|
source="${build.jsr166e.java.version}" |
1218 |
|
executable="${javadoc7}"> |
1219 |
|
<arg line="-Xdocrootparent ${java.docroot.url}"/> |