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