       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
      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 jdk.build.dir=build
      37 nashorn.make.dir=make/nashorn
      38
      39 javadoc.base.url=https://docs.oracle.com/javase/9/docs/api/
      40 javadoc.pkg.list=make/nashorn
      41
      42 javadoc.option=\
      43     -tag "implSpec:a:Implementation Requirements:" \
      44     -tag "implNote:a:Implementation Note:" \
      45     -tag "moduleGraph:a:Module Graph"
      46
      47 # nashorn version information
      48 nashorn.version=0.1
      49 nashorn.fullversion=0.1
      50 nashorn.product.name=Oracle Nashorn
      51
      52 # This directory is removed when the project is cleaned:
      53 build.dir=${jdk.build.dir}/nashorn
      54 build.classes.dir=${build.dir}/classes
      55 build.zip=${build.dir}/nashorn.zip
      56 build.gzip=${build.dir}/nashorn.tar.gz
      57
      58 nashorn.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
      64 nashorntask.dir=${nashorn.make.dir}/buildtools/nashorntask
      65 nashorntask.dist.dir=${build.dir}/nashorntask/dist
      66
      67 # nashorn Shell tool
      68 nashorn.shell.tool=jdk.nashorn.tools.Shell
      69
      70 # nasgen tool
      71 nasgen.tool=jdk.nashorn.internal.tools.nasgen.Main
      72
      73 nasgen.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
      78 parallel.test.runner=jdk.nashorn.internal.test.framework.ParallelTestRunner
      79
      80 # test classes directory
      81 build.test.classes.dir=${build.dir}/test/classes
      82
      83 # nashorn test jar - internal tests jar and api tests jar
      84 nashorn.internal.tests.jar=${build.dir}/nashorn-internal-tests.jar
      85 nashorn.api.tests.jar=${build.dir}/nashorn-api-tests.jar
      86
      87 # test results directory
      88 build.test.results.dir=${build.dir}/test/reports
      89 build.nosecurity.test.results.dir=${build.dir}/test/nosecurity/reports
      90 build.nooptimistic.test.results.dir=${build.dir}/test/nooptimistic/reports
      91
      92 # This directory is removed when the project is cleaned:
      93 dist.dir=build/nashorn/dist
      94 dynalink.jar=${dist.dir}/dynalink.jar
      95 nashorn.jar=${dist.dir}/nashorn.jar
      96 jjs.jar=${dist.dir}/jjs.jar
      97 dist.javadoc.dir=${dist.dir}/javadoc
      98 dist.nashornapi.javadoc.dir=${dist.javadoc.dir}/nashornapi
      99 dist.dynalinkapi.javadoc.dir=${dist.javadoc.dir}/dynalinkapi
     100
     101 # configuration for flight recorder
     102 run.test.jvmargs.jfr=XX:StartFlightRecording=disk=true,dumponexit=true,dumponexitpath=${build.dir},stackdepth=128
     103
     104 # test library location
     105 test.lib=test/nashorn/lib
     106
     107 # jars refererred
     108 file.reference.testng.jar=${test.lib}${file.separator}testng-6.8.jar
     109 file.reference.jcommander.jar=${test.lib}${file.separator}jcommander-1.27.jar
     110 file.reference.bsh.jar=${test.lib}${file.separator}bsh-2.0b4.jar
     111 file.reference.snakeyaml.jar=${test.lib}${file.separator}snakeyaml-1.6.jar
     112 file.reference.asmtools.jar=${test.lib}${file.separator}asmtools-60.jar
     113
     114 # TestNG ant task classpath
     115 testng.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
     126 testng.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
     132 testng.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
     141 javac.debug=true
     142 javac.encoding=ascii
     143 javac.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
     150 test.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
     165 test.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
     170 meta.inf.dir=${nashorn.module.src.dir}/META-INF
     171
     172 run.classpath=\
     173     ${build.classes.dir}
     174
     175 # test scripts to run
     176 test.dir=test/nashorn
     177 test.nosecurity.dir=${test.dir}/script/nosecurity
     178 test.script.dir=${test.dir}/script
     179 test.basic.dir=${test.script.dir}/basic
     180 test.maptests.dir=${test.script.dir}/maptests
     181 test.error.dir=${test.script.dir}/error
     182 test.sandbox.dir=${test.script.dir}/sandbox
     183 test.trusted.dir=${test.script.dir}/trusted
     184 test.external.dir=${test.script.dir}/external
     185 test262.dir=${test.external.dir}/test262
     186 test262.suite.dir=${test262.dir}/test/suite
     187 testjfx.dir=${test.script.dir}/jfx
     188 testmarkdown.dir=${test.script.dir}/markdown
     189
     190 test-sys-prop.test.dir=${test.dir}
     191 test-sys-prop.test.js.roots=${test.basic.dir} ${test.maptests.dir} ${test.error.dir} ${test.sandbox.dir} ${test.trusted.dir}
     192 test-sys-prop.test262.suite.dir=${test262.suite.dir}
     193 test-sys-prop.es5conform.testcases.dir=${test.external.dir}/ES5Conform/TestCases
     194 test-sys-prop.test.basic.dir=${test.basic.dir}
     195 test-sys-prop.test.external.dir=${test.external.dir}
     196 test-sys-prop.test.maptests.dir=${test.maptests.dir}
     197 test-sys-prop.test.sandbox.dir=${test.sandbox.dir}
     198 test-sys-prop.test.trusted.dir=${test.trusted.dir}
     199
     200 test-sys-prop-no-security.test.dir=${test.dir}
     201 test-sys-prop-no-security.test.js.roots=${test.nosecurity.dir}
     202
     203 # framework root for our script tests
     204 test-sys-prop.test.js.framework=${test.script.dir}/assert.js
     205 test-sys-prop-no-security.test.js.framework=${test.script.dir}/assert.js
     206
     207 # Control the verbosity of ParserTest
     208 test-sys-prop.parsertest.verbose=false
     209
     210 # turn on/off scripting mode for parser tests
     211 test-sys-prop.parsertest.scripting=true
     212 test-sys-prop.parserapitest.verbose=false
     213
     214 # turn on/off test262 scripts for parser tests
     215 test-sys-prop.parsertest.test262=false
     216 test-sys-prop.parserapitest.test262=false
     217
     218 # Control the verbosity of the CompilerTest
     219 test-sys-prop.compilertest.verbose=false
     220
     221 # turn on/off scripting mode for compiler tests
     222 test-sys-prop.compilertest.scripting=true
     223
     224 # turn on/off test262 scripts for compiler tests
     225 test-sys-prop.compilertest.test262=false
     226
     227 # test directory to be excluded.
     228 test-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
     231 test-sys-prop.test.js.unchecked.dir=${test262.dir}
     232
     233 # test root for octane
     234 octane-test-sys-prop.test.js.roots=${test.external.dir}/octane/
     235
     236 # run octane benchmars in separate processes? (recommended)
     237 octane-test-sys-prop.separate.process=true
     238
     239 # framework root for octane
     240 octane-test-sys-prop.test.js.framework=${test.basic.dir}/run-octane.js
     241
     242 # test root for sunspider
     243 sunspider-test-sys-prop.test.js.roots=${test.external.dir}/sunspider/tests/sunspider-1.0.2/
     244
     245 # framework root for sunspider
     246 sunspider-test-sys-prop.test.js.framework=${test.basic.dir}/runsunspider.js
     247
     248 # list of tests to be excluded
     249 sunspider-test-sys-prop.test.js.exclude.list=
     250
     251 # execute our script tests in shared nashorn context or not?
     252 test-sys-prop.test.js.shared.context=false
     253
     254 # execute test262 tests in shared nashorn context or not?
     255 test262-test-sys-prop.test.js.shared.context=true
     256
     257 # test262 test root
     258 test262-test-sys-prop.test.js.roots=${test262.suite.dir}
     259
     260 # test262 enable/disable strict mode tests
     261 test262-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
     267 test262-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
     273 test262-test-sys-prop.test.js.exclude.dir=\
     274     ${test262.suite.dir}/intl402/ \
     275     ${test262.suite.dir}/bestPractice/
     276
     277 test262-test-sys-prop.test.failed.list.file=${build.dir}/test/failedTests
     278
     279 # test262 test frameworks
     280 test262-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
     290 testmarkdown-test-sys-prop.test.js.roots=${testmarkdown.dir}
     291
     292 # execute testmarkdown tests in shared nashorn context or not?
     293 testmarkdown-test-sys-prop.test.js.shared.context=false
     294
     295 # framework root for markdown script tests
     296 testmarkdown-test-sys-prop.test.js.framework=\
     297     ${test.script.dir}${file.separator}markdown.js
     298
     299 # testjfx test root
     300 testjfx-test-sys-prop.test.js.roots=${testjfx.dir}
     301
     302 # execute testjfx tests in shared nashorn context or not?
     303 testjfx-test-sys-prop.test.js.shared.context=false
     304
     305 # framework root for our script tests
     306 testjfx-test-sys-prop.test.js.framework=\
     307     -fx \
     308     ${test.script.dir}${file.separator}jfx.js
     309
     310 file.reference.jemmyfx.jar=${test.lib}${file.separator}JemmyFX.jar
     311 file.reference.jemmycore.jar=${test.lib}${file.separator}JemmyCore.jar
     312 file.reference.jemmyawtinput.jar=${test.lib}${file.separator}JemmyAWTInput.jar
     313 file.reference.jfxrt.jar=${java.home}${file.separator}lib${file.separator}ext${file.separator}jfxrt.jar
     314 testjfx.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
     326 testjfx-test-sys-prop.test.fork.jvm.options=${run.test.jvmargs.main} -Xmx${run.test.xmx} -cp ${testjfx.run.test.classpath}
     327
     328 run.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
     336 dynalink.module.src.dir=src/jdk.dynalink/share/classes
     337 dynalink.module.classes.dir=${build.classes.dir}/jdk.dynalink
     338 nashorn.module.src.dir=src/jdk.scripting.nashorn/share/classes
     339 nashorn.module.classes.dir=${build.classes.dir}/jdk.scripting.nashorn
     340 nashorn.shell.module.src.dir=src/jdk.scripting.nashorn.shell/share/classes
     341 nashorn.shell.module.classes.dir=${build.classes.dir}/jdk.scripting.nashorn.shell
     342
     343 src.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
     348 test.src.dir=test/nashorn/src
     349
     350 # -Xmx is used for all tests, -Xms only for octane benchmark
     351 run.test.xmx=2G
     352 run.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
     359 jfr.args=
     360
     361 run.test.user.language=tr
     362 run.test.user.country=TR
     363
     364 run.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
     379 run.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
     418 run.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
     421 run.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
     424 test-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
     426 test-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
     429 rhino.dir=
     430 rhino.jar=${rhino.dir}/js.jar
     431
     432 v8.shell=d8
     433
     434 # How many iterations should 'ant octane' run for each
     435 # benchmark
     436 octane.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)
     445 octane.benchmark.box2d=box2d
     446 #octane.benchmark.code-load=code-load
     447 octane.benchmark.crypto=crypto
     448 octane.benchmark.deltablue=deltablue
     449 octane.benchmark.earley-boyer=earley-boyer
     450 octane.benchmark.gbemu=gbemu
     451 octane.benchmark.navier-stokes=navier-stokes
     452 octane.benchmark.mandreel=mandreel
     453 octane.benchmark.pdfjs=pdfjs
     454 octane.benchmark.raytrace=raytrace
     455 octane.benchmark.regexp=regexp
     456 octane.benchmark.richards=richards
     457 octane.benchmark.splay=splay
     458 #octane.benchmark.typescript=typescript
     459 #octane.benchmark.zlib=zlib
     460
     461 #path to rhino jar file
     462 octaneperf-sys-prop.rhino.jar=${rhino.jar}
     463
     464 #timeout for performance tests in minutes
     465 octaneperf-sys-prop.timeout.value=10
     466
     467 #how many iterations to run sunspider after warmup
     468 sunspider.iterations=3000
     469
     470 #################
     471 # code coverage #
     472 #################
     473
     474 #enable/disable code coverage; please redifine in the ${user.home}/.nashorn.project.local.properties
     475 make.code.coverage=false
     476
     477 #type of codecoverage; one of static or dynamic. Now only dynamic is supported
     478 jcov=dynamic
     479
     480 #naming of CC results
     481 #NB directory specified in the cc.dir will be cleaned up!!!
     482 cc.dir=${build.dir}/Codecoverage_Nashorn
     483 cc.result.file.name=CC_${jcov}_nashorn.xml
     484
     485 #dynamic CC parameters; please redefine in the ${user.home}/.nashorn.project.local.properties
     486 jcov2.lib.dir=${build.dir}/jcov2/lib
     487 jcov.jar=${jcov2.lib.dir}/jcov.jar
     488 cc.include=jdk\.nashorn\.*
     489 cc.exclude=jdk\.nashorn\.internal\.scripts\.*
     490 cc.dynamic.genereate.template=true
     491 cc.template=${cc.dir}/CC_template.xml
     492 cc.dynamic.args=-javaagent:${jcov.jar}=include=${cc.include},exclude=${cc.exclude},type=all,verbose=0,file=${cc.dir}/${cc.result.file.name}