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