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