project.properties revision 1899:c9ffb95dfef4
1#
2# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# This code is free software; you can redistribute it and/or modify it
6# under the terms of the GNU General Public License version 2 only, as
7# published by the Free Software Foundation.
8#
9# This code is distributed in the hope that it will be useful, but WITHOUT
10# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12# version 2 for more details (a copy is included in the LICENSE file that
13# accompanied this code).
14#
15# You should have received a copy of the GNU General Public License version
16# 2 along with this work; if not, write to the Free Software Foundation,
17# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18#
19# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20# or visit www.oracle.com if you need additional information or have any
21# questions.
22#
23
24application.title=nashorn
25
26# location of JDK embedded ASM sources
27jdk.java.base.dir=../jdk/src/java.base/share/classes
28jdk.asm.src.dir=${jdk.java.base.dir}/jdk/internal/org/objectweb/asm
29
30# location of JDK embedded jline sources
31jdk.jline.src.dir=../jdk/src/jdk.internal.le/share/classes
32
33# source and target levels
34build.compiler=modern
35javac.source=1.9
36javac.target=1.9
37
38javadoc.option=\
39    -tag "implSpec:a:Implementation Requirements:" \
40    -tag "implNote:a:Implementation Note:" \
41    -tag "moduleGraph:a:Module Graph"
42
43# nashorn version information
44nashorn.version=0.1
45nashorn.fullversion=0.1
46nashorn.product.name=Oracle Nashorn
47
48# This directory is removed when the project is cleaned:
49build.dir=build
50build.classes.dir=${build.dir}/classes
51build.zip=${build.dir}/nashorn.zip
52build.gzip=${build.dir}/nashorn.tar.gz
53
54nashorn.override.option=\
55 --patch-module jdk.scripting.nashorn=${build.classes.dir}/jdk.scripting.nashorn \
56 --patch-module jdk.scripting.nashorn.shell=${build.classes.dir}/jdk.scripting.nashorn.shell \
57 --patch-module jdk.dynalink=${build.classes.dir}/jdk.dynalink
58
59# project directory of <nashorn> ant task
60nashorntask.dir=buildtools/nashorntask
61
62# nashorn Shell tool
63nashorn.shell.tool=jdk.nashorn.tools.Shell
64
65# nasgen tool
66nasgen.tool=jdk.nashorn.internal.tools.nasgen.Main
67
68nasgen.module.imports=\
69    --add-exports java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED \
70    --add-exports java.base/jdk.internal.org.objectweb.asm.util=ALL-UNNAMED
71
72# parallel test runner tool
73parallel.test.runner=jdk.nashorn.internal.test.framework.ParallelTestRunner
74
75# test classes directory
76build.test.classes.dir=${build.dir}/test/classes
77
78# nashorn test jar - internal tests jar and api tests jar
79nashorn.internal.tests.jar=${build.dir}/nashorn-internal-tests.jar
80nashorn.api.tests.jar=${build.dir}/nashorn-api-tests.jar
81
82# test results directory
83build.test.results.dir=${build.dir}/test/reports
84build.nosecurity.test.results.dir=${build.dir}/test/nosecurity/reports
85build.nooptimistic.test.results.dir=${build.dir}/test/nooptimistic/reports
86
87# This directory is removed when the project is cleaned:
88dist.dir=dist
89dynalink.jar=${dist.dir}/dynalink.jar
90nashorn.jar=${dist.dir}/nashorn.jar
91jjs.jar=${dist.dir}/jjs.jar
92dist.javadoc.dir=${dist.dir}/javadoc
93dist.nashornapi.javadoc.dir=${dist.javadoc.dir}/nashornapi
94dist.dynalinkapi.javadoc.dir=${dist.javadoc.dir}/dynalinkapi
95
96# configuration for java flight recorder
97run.test.jvmargs.jfr=-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,disk=true,dumponexit=true,dumponexitpath=${build.dir},stackdepth=128
98
99# test library location
100test.lib=${basedir}${file.separator}test${file.separator}lib
101
102# jars refererred
103file.reference.testng.jar=${test.lib}${file.separator}testng-6.8.jar
104file.reference.jcommander.jar=${test.lib}${file.separator}jcommander-1.27.jar
105file.reference.bsh.jar=${test.lib}${file.separator}bsh-2.0b4.jar
106file.reference.snakeyaml.jar=${test.lib}${file.separator}snakeyaml-1.6.jar
107file.reference.asmtools.jar=${test.lib}${file.separator}asmtools-60.jar
108
109# TestNG ant task classpath
110testng.ant.classpath=\
111    ${file.reference.testng.jar}${path.separator}\
112    ${file.reference.jcommander.jar}${path.separator}\
113    ${file.reference.bsh.jar}${path.separator}\
114    ${file.reference.snakeyaml.jar}${path.separator}
115
116# Set testng verbose level
117# From TestNG docs: "the verbosity level (0 to 10 where 10 is most detailed)
118# Actually, this is a lie: you can specify -1 and this will put TestNG in
119# debug mode (no longer slicing off stack traces and all)."
120
121testng.verbose=2
122
123# TestNG listeners - we want to replace TestNG's own JUnit
124# reporter, but want everything else provided by default
125# Unfortunately, we've to clone the other default reporters here.
126
127testng.listeners=\
128 org.testng.reporters.SuiteHTMLReporter, \
129 org.testng.reporters.TestHTMLReporter, \
130 org.testng.reporters.jq.Main, \
131 org.testng.reporters.FailedReporter, \
132 org.testng.reporters.XMLReporter \
133 org.testng.reporters.EmailableReporter, \
134 jdk.nashorn.internal.test.framework.JSJUnitReportReporter
135
136javac.debug=true
137javac.encoding=ascii
138javac.test.classpath=\
139    ${build.test.classes.dir}${path.separator}\
140    ${file.reference.testng.jar}${path.separator}\
141    ${file.reference.jcommander.jar}${path.separator}\
142    ${file.reference.bsh.jar}${path.separator}\
143    ${file.reference.snakeyaml.jar}
144
145test.module.imports=\
146    --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.ir=ALL-UNNAMED \
147    --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.codegen=ALL-UNNAMED \
148    --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.parser=ALL-UNNAMED \
149    --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.objects=ALL-UNNAMED \
150    --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime=ALL-UNNAMED \
151    --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.doubleconv=ALL-UNNAMED \
152    --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker=ALL-UNNAMED \
153    --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.events=ALL-UNNAMED \
154    --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.options=ALL-UNNAMED \
155    --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.regexp=ALL-UNNAMED \
156    --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.regexp.joni=ALL-UNNAMED \
157    --add-exports jdk.scripting.nashorn/jdk.nashorn.tools=ALL-UNNAMED \
158    --add-exports java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED \
159    --add-opens jdk.scripting.nashorn/jdk.nashorn.internal.runtime=ALL-UNNAMED \
160    --add-opens jdk.scripting.nashorn/jdk.nashorn.internal.runtime.doubleconv=ALL-UNNAMED
161
162meta.inf.dir=${nashorn.module.src.dir}/META-INF
163
164run.classpath=\
165    ${build.classes.dir}
166
167# test scripts to run
168test.dir=test
169test.nosecurity.dir=test/script/nosecurity
170test.script.dir=test/script
171test.basic.dir=test/script/basic
172test.maptests.dir=test/script/maptests
173test.error.dir=test/script/error
174test.sandbox.dir=test/script/sandbox
175test.trusted.dir=test/script/trusted
176test.external.dir=test/script/external
177test262.dir=${test.external.dir}/test262
178test262.suite.dir=${test262.dir}/test/suite
179testjfx.dir=${test.script.dir}/jfx
180testmarkdown.dir=${test.script.dir}/markdown
181
182test-sys-prop.test.dir=${test.dir}
183test-sys-prop.test.js.roots=${test.basic.dir} ${test.maptests.dir} ${test.error.dir} ${test.sandbox.dir} ${test.trusted.dir}
184test-sys-prop.test262.suite.dir=${test262.suite.dir}
185test-sys-prop.es5conform.testcases.dir=${test.external.dir}/ES5Conform/TestCases
186test-sys-prop.test.basic.dir=${test.basic.dir}
187test-sys-prop.test.external.dir=${test.external.dir}
188test-sys-prop.test.maptests.dir=${test.maptests.dir}
189test-sys-prop.test.sandbox.dir=${test.sandbox.dir}
190test-sys-prop.test.trusted.dir=${test.trusted.dir}
191
192test-sys-prop-no-security.test.dir=${test.dir}
193test-sys-prop-no-security.test.js.roots=${test.nosecurity.dir}
194
195# framework root for our script tests
196test-sys-prop.test.js.framework=${test.script.dir}/assert.js
197test-sys-prop-no-security.test.js.framework=${test.script.dir}/assert.js
198
199# Control the verbosity of ParserTest
200test-sys-prop.parsertest.verbose=false
201
202# turn on/off scripting mode for parser tests
203test-sys-prop.parsertest.scripting=true
204test-sys-prop.parserapitest.verbose=false
205
206# turn on/off test262 scripts for parser tests
207test-sys-prop.parsertest.test262=false
208test-sys-prop.parserapitest.test262=false
209
210# Control the verbosity of the CompilerTest
211test-sys-prop.compilertest.verbose=false
212
213# turn on/off scripting mode for compiler tests
214test-sys-prop.compilertest.scripting=true
215
216# turn on/off test262 scripts for compiler tests
217test-sys-prop.compilertest.test262=false
218
219# test directory to be excluded.
220test-sys-prop.test.js.exclude.dir=${test.script.dir}/currently-failing ${test.external.dir}
221
222# run everything that's js in here, without checking file headers for test annotations
223test-sys-prop.test.js.unchecked.dir=${test262.dir}
224
225# test root for octane
226octane-test-sys-prop.test.js.roots=${test.external.dir}/octane/
227
228# run octane benchmars in separate processes? (recommended)
229octane-test-sys-prop.separate.process=true
230
231# framework root for octane
232octane-test-sys-prop.test.js.framework=${test.basic.dir}/run-octane.js
233
234# test root for sunspider
235sunspider-test-sys-prop.test.js.roots=${test.external.dir}/sunspider/tests/sunspider-1.0.2/
236
237# framework root for sunspider
238sunspider-test-sys-prop.test.js.framework=${test.basic.dir}/runsunspider.js
239
240# list of tests to be excluded
241sunspider-test-sys-prop.test.js.exclude.list=
242
243# execute our script tests in shared nashorn context or not?
244test-sys-prop.test.js.shared.context=false
245
246# execute test262 tests in shared nashorn context or not?
247test262-test-sys-prop.test.js.shared.context=true
248
249# test262 test root
250test262-test-sys-prop.test.js.roots=${test262.suite.dir}
251
252# test262 enable/disable strict mode tests
253test262-test-sys-prop.test.js.enable.strict.mode=true
254
255# file containing test262 tests to be excluded
256# test262-test-sys-prop.test.js.excludes.file=${test262.dir}/test/config/excludelist.xml
257
258# list of test262 files to be excluded
259test262-test-sys-prop.test.js.exclude.list=\
260    ${test262.suite.dir}/ch07/7.4/S7.4_A6.js \
261    ${test262.suite.dir}/ch07/7.8/7.8.5/S7.8.5_A1.4_T2.js \
262    ${test262.suite.dir}/ch15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-170.js 
263
264# list of test262 test dirs to be excluded
265test262-test-sys-prop.test.js.exclude.dir=\
266    ${test262.suite.dir}/intl402/ \
267    ${test262.suite.dir}/bestPractice/
268
269test262-test-sys-prop.test.failed.list.file=${build.dir}/test/failedTests
270
271# test262 test frameworks
272test262-test-sys-prop.test.js.framework=\
273    --class-cache-size=10 \
274    --no-java \
275    --no-typed-arrays \
276    -timezone=PST \
277    ${test.script.dir}/test262.js \
278    ${test262.dir}/test/harness/framework.js \
279    ${test262.dir}/test/harness/sta.js
280
281# testmarkdown test root
282testmarkdown-test-sys-prop.test.js.roots=${testmarkdown.dir}
283
284# execute testmarkdown tests in shared nashorn context or not?
285testmarkdown-test-sys-prop.test.js.shared.context=false
286
287# framework root for markdown script tests
288testmarkdown-test-sys-prop.test.js.framework=\
289    ${test.script.dir}${file.separator}markdown.js
290
291# testjfx test root
292testjfx-test-sys-prop.test.js.roots=${testjfx.dir}
293
294# execute testjfx tests in shared nashorn context or not?
295testjfx-test-sys-prop.test.js.shared.context=false
296
297# framework root for our script tests
298testjfx-test-sys-prop.test.js.framework=\
299    -fx \
300    ${test.script.dir}${file.separator}jfx.js
301
302file.reference.jemmyfx.jar=${test.lib}${file.separator}JemmyFX.jar
303file.reference.jemmycore.jar=${test.lib}${file.separator}JemmyCore.jar
304file.reference.jemmyawtinput.jar=${test.lib}${file.separator}JemmyAWTInput.jar
305file.reference.jfxrt.jar=${java.home}${file.separator}lib${file.separator}ext${file.separator}jfxrt.jar
306testjfx.run.test.classpath=\
307    ${file.reference.jemmyfx.jar}${path.separator}\
308    ${file.reference.jemmycore.jar}${path.separator}\
309    ${file.reference.jemmyawtinput.jar}${path.separator}\
310    ${file.reference.testng.jar}${path.separator}\
311    ${file.reference.jcommander.jar}${path.separator}\
312    ${file.reference.bsh.jar}${path.separator}\
313    ${file.reference.snakeyaml.jar}${path.separator}\
314    ${nashorn.internal.tests.jar}${path.separator}\
315    ${nashorn.api.tests.jar}
316
317# testjfx VM options for script tests with @fork option
318testjfx-test-sys-prop.test.fork.jvm.options=${run.test.jvmargs.main} -Xmx${run.test.xmx} -cp ${testjfx.run.test.classpath}
319
320run.test.classpath=\
321    ${file.reference.testng.jar}${path.separator}\
322    ${file.reference.jcommander.jar}${path.separator}\
323    ${file.reference.bsh.jar}${path.separator}\
324    ${file.reference.snakeyaml.jar}${path.separator}\
325    ${nashorn.internal.tests.jar}${path.separator}\
326    ${nashorn.api.tests.jar}
327
328dynalink.module.src.dir=src/jdk.dynalink/share/classes
329dynalink.module.classes.dir=${build.classes.dir}/jdk.dynalink
330nashorn.module.src.dir=src/jdk.scripting.nashorn/share/classes
331nashorn.module.classes.dir=${build.classes.dir}/jdk.scripting.nashorn
332nashorn.shell.module.src.dir=src/jdk.scripting.nashorn.shell/share/classes
333nashorn.shell.module.classes.dir=${build.classes.dir}/jdk.scripting.nashorn.shell
334
335src.dir=${dynalink.module.src.dir}${path.separator}\
336        ${nashorn.module.src.dir}${path.separator}\
337        ${nashorn.shell.module.src.dir}${path.separator}\
338        ${jdk.jline.src.dir}
339
340test.src.dir=test/src
341
342# -Xmx is used for all tests, -Xms only for octane benchmark
343run.test.xmx=2G
344run.test.xms=2G
345
346# uncomment this jfr.args to enable light recordings. the stack needs to be cranked up to 1024 frames,
347# or everything will as of the now drown in lambda forms and be cut off.
348#
349#jfr.args=-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,disk=true,dumponexit=true,dumponexitpath="test_suite.jfr",stackdepth=1024 \
350
351jfr.args=
352
353run.test.user.language=tr
354run.test.user.country=TR
355
356run.test.jvmargs.common=\
357  -server \
358  ${test.module.imports} \
359  ${run.test.jvmargs.external} \
360  --add-modules jdk.scripting.nashorn.shell \
361  ${nashorn.override.option} \
362  -Dfile.encoding=UTF-8 \
363  -Duser.language=${run.test.user.language} \
364  -Duser.country=${run.test.user.country} \
365  -Dnashorn.typeInfo.cacheDir=${build.dir}${file.separator}test${file.separator}type_info_cache \
366  ${jfr.args} \
367  -XX:+HeapDumpOnOutOfMemoryError
368
369# turn on assertions for tests
370run.test.jvmargs.main=${run.test.jvmargs.common} -esa -ea
371
372# Extra jvmargs that might be useful for debugging
373# and performance improvements/monitoring
374#
375# -XX:+UnlockDiagnosticVMOptions
376#
377# turn off compressed class pointers in metaspace
378# -XX:-UseCompressedKlassPointers
379#
380# dump the heap after every GC
381# -XX:+PrintHeapAtGC
382#
383# manually set a metaspace size for class data
384# -XX:ClassMetaspaceSize=300M
385#
386# print out methods compiled
387# -XX:+PrintCompilation
388#
389# print all compiled nmethods with oopmaps and lots of other info
390# -XX:+PrintNMethods
391#
392# activate the generic "UseNewCode" flag to test whatever functionality
393# lies behind it. This is the preferred way to test a, yet flagless,
394# feature in HotSpot - for example, the uncommon trap placement fix
395# was hidden behind this flag before it became the default
396#
397# -XX:+UnlockDiagnosticVMOptions -XX:+UseNewCode
398#
399# Crank up the type profile level to 222, which has some warmup
400# penalties, but produces much better code for JavaScript, where better
401# and more intrusive type profiling is required to get rid of
402# a large amount of unnecessary guard code, that could not otherwise
403# be eliminated
404#
405# -XX:TypeProfileLevel=222
406#
407
408# Use best known performance options for octane
409run.test.jvmargs.octane.main=${run.test.jvmargs.common} -XX:TypeProfileLevel=222
410
411# Security manager args - make sure that we run with the nashorn.policy that the build creates
412run.test.jvmsecurityargs=-Xverify:all -Djava.security.manager -Djava.security.policy=${build.dir}/nashorn.policy -Djava.security.properties=${build.dir}/nashorn.security.properties
413
414# VM options for script tests with @fork option
415test-sys-prop.test.fork.jvm.options=${run.test.jvmargs.main} -Xmx${run.test.xmx} ${run.test.jvmsecurityargs} -cp ${run.test.classpath}
416# VM options for no-security script tests with @fork option - same as above but without jvmsecurityargs
417test-sys-prop-no-security.test.fork.jvm.options=${run.test.jvmargs.main} -Xmx${run.test.xmx} -cp ${run.test.classpath}
418
419# path of rhino.jar for benchmarks
420rhino.dir=
421rhino.jar=${rhino.dir}/js.jar
422
423v8.shell=d8
424
425# How many iterations should 'ant octane' run for each
426# benchmark
427octane.iterations=25
428
429# List of octane tests to run, as properties prefixed with
430# "octane.benchmark." mapping to the benchmark name in
431# the test harness
432#
433# Octane tests that are disabled should have their entire line
434# commented out  Tests may be disabled for functionality reasons when
435# they have bugs or when the runtime doesn't handle them (yet)
436octane.benchmark.box2d=box2d
437#octane.benchmark.code-load=code-load
438octane.benchmark.crypto=crypto
439octane.benchmark.deltablue=deltablue
440octane.benchmark.earley-boyer=earley-boyer
441octane.benchmark.gbemu=gbemu
442octane.benchmark.navier-stokes=navier-stokes
443octane.benchmark.mandreel=mandreel
444octane.benchmark.pdfjs=pdfjs
445octane.benchmark.raytrace=raytrace
446octane.benchmark.regexp=regexp
447octane.benchmark.richards=richards
448octane.benchmark.splay=splay
449#octane.benchmark.typescript=typescript
450#octane.benchmark.zlib=zlib
451
452#path to rhino jar file
453octaneperf-sys-prop.rhino.jar=${rhino.jar}
454
455#timeout for performance tests in minutes
456octaneperf-sys-prop.timeout.value=10
457
458#how many iterations to run sunspider after warmup
459sunspider.iterations=3000
460
461#################
462# code coverage #
463#################
464
465#enable/disable code coverage; please redifine in the ${user.home}/.nashorn.project.local.properties
466make.code.coverage=false
467
468#type of codecoverage; one of static or dynamic. Now only dynamic is supported
469jcov=dynamic
470
471#naming of CC results
472#NB directory specified in the cc.dir will be cleaned up!!!
473cc.dir=${basedir}/../Codecoverage_Nashorn
474cc.result.file.name=CC_${jcov}_nashorn.xml
475
476#dynamic CC parameters; please redefine in the ${user.home}/.nashorn.project.local.properties
477jcov2.lib.dir=${basedir}/../jcov2/lib
478jcov.jar=${jcov2.lib.dir}/jcov.jar
479cc.include=jdk\.nashorn\.*
480cc.exclude=jdk\.nashorn\.internal\.scripts\.*
481cc.dynamic.genereate.template=true
482cc.template=${cc.dir}/CC_template.xml
483cc.dynamic.args=-javaagent:${jcov.jar}=include=${cc.include},exclude=${cc.exclude},type=all,verbose=0,file=${cc.dir}/${cc.result.file.name}
484