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