make/build-benchmark.xml

Fri, 05 Jun 2015 12:38:53 +0200

author
mhaupt
date
Fri, 05 Jun 2015 12:38:53 +0200
changeset 1398
2f1b9f4daec1
parent 963
e2497b11a021
child 1205
4112748288bb
permissions
-rw-r--r--

8080087: Nashorn $ENV.PWD is originally undefined
Summary: On Windows, the PWD environment variable does not exist and cannot be imported in scripting mode, so it is set explicitly.
Reviewed-by: lagergren, sundar

jlaskey@3 1 <?xml version="1.0" encoding="UTF-8"?>
attila@963 2
jlaskey@3 3 <!--
attila@963 4 Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
attila@963 5 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
attila@963 6
attila@963 7 This code is free software; you can redistribute it and/or modify it
attila@963 8 under the terms of the GNU General Public License version 2 only, as
attila@963 9 published by the Free Software Foundation.
attila@963 10
attila@963 11 This code is distributed in the hope that it will be useful, but WITHOUT
attila@963 12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
attila@963 13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
attila@963 14 version 2 for more details (a copy is included in the LICENSE file that
attila@963 15 accompanied this code).
attila@963 16
attila@963 17 You should have received a copy of the GNU General Public License version
attila@963 18 2 along with this work; if not, write to the Free Software Foundation,
attila@963 19 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
attila@963 20
attila@963 21 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
attila@963 22 or visit www.oracle.com if you need additional information or have any
attila@963 23 questions.
jlaskey@3 24 -->
jlaskey@3 25
attila@963 26
attila@963 27 <project
attila@963 28 name="nashorn-benchmarks"
attila@963 29 default="all"
attila@963 30 basedir=".."
attila@963 31 xmlns:if="ant:if">
attila@963 32
attila@963 33 <!--
attila@963 34 Below are the octane benchmarks that should be run.
attila@963 35 The ones that are excluded, as Nashorn currently has
attila@963 36 some issues with them (functionality or performance)
attila@963 37 are commented out
attila@963 38 -->
attila@963 39
attila@963 40 <!-- box2d -->
attila@963 41 <target name="octane-box2d" depends="octane-box2d-nashorn"/>
attila@963 42 <target name="octane-box2d-nashorn" depends="jar">
attila@963 43 <run-one cond="octane.benchmark.box2d" runtime="nashorn"/>
attila@963 44 </target>
attila@963 45 <target name="octane-box2d-v8" depends="jar">
attila@963 46 <run-one cond="octane.benchmark.box2d" runtime="v8"/>
attila@963 47 </target>
attila@963 48 <target name="octane-box2d-rhino" depends="jar">
attila@963 49 <run-one cond="octane.benchmark.box2d" runtime="rhino"/>
attila@963 50 </target>
attila@963 51
attila@963 52 <!-- code-load -->
attila@963 53 <target name="octane-code-load" depends="octane-code-load-nashorn"/>
attila@963 54 <target name="octane-code-load-nashorn" depends="jar">
attila@963 55 <run-one cond="octane.benchmark.code-load" runtime="nashorn"/>
attila@963 56 </target>
attila@963 57 <target name="octane-code-load-v8" depends="jar">
attila@963 58 <run-one cond="octane.benchmark.code-load" runtime="v8"/>
attila@963 59 </target>
attila@963 60 <target name="octane-code-load-rhino" depends="jar">
attila@963 61 <run-one cond="octane.benchmark.code-load" runtime="rhino"/>
attila@963 62 </target>
attila@963 63
attila@963 64 <!-- crypto -->
attila@963 65 <target name="octane-crypto" depends="octane-crypto-nashorn"/>
attila@963 66 <target name="octane-crypto-nashorn" depends="jar">
attila@963 67 <run-one cond="octane.benchmark.crypto" runtime="nashorn"/>
attila@963 68 </target>
attila@963 69 <target name="octane-crypto-v8" depends="jar">
attila@963 70 <run-one cond="octane.benchmark.crypto" runtime="v8"/>
attila@963 71 </target>
attila@963 72 <target name="octane-crypto-rhino" depends="jar">
attila@963 73 <run-one cond="octane.benchmark.crypto" runtime="rhino"/>
attila@963 74 </target>
attila@963 75
attila@963 76 <!-- deltablue -->
attila@963 77 <target name="octane-deltablue" depends="octane-deltablue-nashorn"/>
attila@963 78 <target name="octane-deltablue-nashorn" depends="jar">
attila@963 79 <run-one cond="octane.benchmark.deltablue" runtime="nashorn"/>
attila@963 80 </target>
attila@963 81 <target name="octane-deltablue-v8" depends="jar">
attila@963 82 <run-one cond="octane.benchmark.deltablue" runtime="v8"/>
attila@963 83 </target>
attila@963 84 <target name="octane-deltablue-rhino" depends="jar">
attila@963 85 <run-one cond="octane.benchmark.deltablue" runtime="rhino"/>
attila@963 86 </target>
attila@963 87
attila@963 88 <!-- earley-boyer -->
attila@963 89 <target name="octane-earley-boyer" depends="octane-earley-boyer-nashorn"/>
attila@963 90 <target name="octane-earley-boyer-nashorn" depends="jar">
attila@963 91 <run-one cond="octane.benchmark.earley-boyer" runtime="nashorn"/>
attila@963 92 </target>
attila@963 93 <target name="octane-earley-boyer-v8" depends="jar">
attila@963 94 <run-one cond="octane.benchmark.earley-boyer" runtime="v8"/>
attila@963 95 </target>
attila@963 96 <target name="octane-earley-boyer-rhino" depends="jar">
attila@963 97 <run-one cond="octane.benchmark.earley-boyer" runtime="rhino"/>
jlaskey@3 98 </target>
lagergren@298 99
attila@963 100 <!-- gbemu -->
attila@963 101 <target name="octane-gbemu" depends="octane-gbemu-nashorn"/>
attila@963 102 <target name="octane-gbemu-nashorn" depends="jar">
attila@963 103 <run-one cond="octane.benchmark.gbemu" runtime="nashorn"/>
attila@963 104 </target>
attila@963 105 <target name="octane-gbemu-v8" depends="jar">
attila@963 106 <run-one cond="octane.benchmark.gbemu" runtime="v8"/>
attila@963 107 </target>
attila@963 108 <target name="octane-gbemu-rhino" depends="jar">
attila@963 109 <run-one cond="octane.benchmark.gbemu" runtime="rhino"/>
lagergren@298 110 </target>
lagergren@295 111
attila@963 112 <!-- mandreel -->
attila@963 113 <target name="octane-mandreel" depends="octane-mandreel-nashorn"/>
attila@963 114 <target name="octane-mandreel-nashorn" depends="jar">
attila@963 115 <run-one cond="octane.benchmark.mandreel" runtime="nashorn"/>
attila@963 116 </target>
attila@963 117 <target name="octane-mandreel-v8" depends="jar">
attila@963 118 <run-one cond="octane.benchmark.mandreel" runtime="v8"/>
attila@963 119 </target>
attila@963 120 <target name="octane-mandreel-rhino" depends="jar">
attila@963 121 <run-one cond="octane.benchmark.mandreel" runtime="rhino"/>
attila@963 122 </target>
attila@963 123
attila@963 124 <!-- navier-stokes -->
attila@963 125 <target name="octane-navier-stokes" depends="octane-navier-stokes-nashorn"/>
attila@963 126 <target name="octane-navier-stokes-nashorn" depends="jar">
attila@963 127 <run-one cond="octane.benchmark.navier-stokes" runtime="nashorn"/>
attila@963 128 </target>
attila@963 129 <target name="octane-navier-stokes-v8" depends="jar">
attila@963 130 <run-one cond="octane.benchmark.navier-stokes" runtime="v8"/>
attila@963 131 </target>
attila@963 132 <target name="octane-navier-stokes-rhino" depends="jar">
attila@963 133 <run-one cond="octane.benchmark.navier-stokes" runtime="rhino"/>
attila@963 134 </target>
attila@963 135
attila@963 136 <!-- pdfjs -->
attila@963 137 <target name="octane-pdfjs" depends="octane-pdfjs-nashorn"/>
attila@963 138 <target name="octane-pdfjs-nashorn" depends="jar">
attila@963 139 <run-one cond="octane.benchmark.pdfjs" runtime="nashorn"/>
attila@963 140 </target>
attila@963 141 <target name="octane-pdfjs-v8" depends="jar">
attila@963 142 <run-one cond="octane.benchmark.pdfjs" runtime="v8"/>
attila@963 143 </target>
attila@963 144 <target name="octane-pdfjs-rhino" depends="jar">
attila@963 145 <run-one cond="octane.benchmark.pdfjs" runtime="rhino"/>
attila@963 146 </target>
attila@963 147
attila@963 148 <!-- raytrace -->
attila@963 149 <target name="octane-raytrace" depends="octane-raytrace-nashorn"/>
attila@963 150 <target name="octane-raytrace-nashorn" depends="jar">
attila@963 151 <run-one cond="octane.benchmark.raytrace" runtime="nashorn"/>
attila@963 152 </target>
attila@963 153 <target name="octane-raytrace-v8" depends="jar">
attila@963 154 <run-one cond="octane.benchmark.raytrace" runtime="v8"/>
attila@963 155 </target>
attila@963 156 <target name="octane-raytrace-rhino" depends="jar">
attila@963 157 <run-one cond="octane.benchmark.raytrace" runtime="rhino"/>
attila@963 158 </target>
attila@963 159
attila@963 160 <!-- regexp -->
attila@963 161 <target name="octane-regexp" depends="octane-regexp-nashorn"/>
attila@963 162 <target name="octane-regexp-nashorn" depends="jar">
attila@963 163 <run-one cond="octane.benchmark.regexp" runtime="nashorn"/>
attila@963 164 </target>
attila@963 165 <target name="octane-regexp-v8" depends="jar">
attila@963 166 <run-one cond="octane.benchmark.regexp" runtime="v8"/>
attila@963 167 </target>
attila@963 168 <target name="octane-regexp-rhino" depends="jar">
attila@963 169 <run-one cond="octane.benchmark.regexp" runtime="rhino"/>
attila@963 170 </target>
attila@963 171
attila@963 172 <!-- richards -->
attila@963 173 <target name="octane-richards" depends="octane-richards-nashorn"/>
attila@963 174 <target name="octane-richards-nashorn" depends="jar">
attila@963 175 <run-one cond="octane.benchmark.richards" runtime="nashorn"/>
attila@963 176 </target>
attila@963 177 <target name="octane-richards-v8" depends="jar">
attila@963 178 <run-one cond="octane.benchmark.richards" runtime="v8"/>
attila@963 179 </target>
attila@963 180 <target name="octane-richards-rhino" depends="jar">
attila@963 181 <run-one cond="octane.benchmark.richards" runtime="rhino"/>
attila@963 182 </target>
attila@963 183
attila@963 184 <!-- splay -->
attila@963 185 <target name="octane-splay" depends="octane-splay-nashorn"/>
attila@963 186 <target name="octane-splay-nashorn" depends="jar">
attila@963 187 <run-one cond="octane.benchmark.splay" runtime="nashorn"/>
attila@963 188 </target>
attila@963 189 <target name="octane-splay-v8" depends="jar">
attila@963 190 <run-one cond="octane.benchmark.splay" runtime="v8"/>
attila@963 191 </target>
attila@963 192 <target name="octane-splay-rhino" depends="jar">
attila@963 193 <run-one cond="octane.benchmark.splay" runtime="rhino"/>
attila@963 194 </target>
attila@963 195
attila@963 196 <!-- typescript -->
attila@963 197 <target name="octane-typescript" depends="octane-typescript-nashorn"/>
attila@963 198 <target name="octane-typescript-nashorn" depends="jar">
attila@963 199 <run-one cond="octane.benchmark.typescript" runtime="nashorn"/>
attila@963 200 </target>
attila@963 201 <target name="octane-typescript-v8" depends="jar">
attila@963 202 <run-one cond="octane.benchmark.typescript" runtime="v8"/>
attila@963 203 </target>
attila@963 204 <target name="octane-typescript-rhino" depends="jar">
attila@963 205 <run-one cond="octane.benchmark.typescript" runtime="rhino"/>
attila@963 206 </target>
attila@963 207
attila@963 208 <!-- zlib -->
attila@963 209 <target name="octane-zlib" depends="octane-zlib-nashorn"/>
attila@963 210 <target name="octane-zlib-nashorn" depends="jar">
attila@963 211 <run-one cond="octane.benchmark.zlib" runtime="nashorn"/>
attila@963 212 </target>
attila@963 213 <target name="octane-zlib-v8" depends="jar">
attila@963 214 <run-one cond="octane.benchmark.zlib" runtime="v8"/>
attila@963 215 </target>
attila@963 216 <target name="octane-zlib-rhino" depends="jar">
attila@963 217 <run-one cond="octane.benchmark.zlib" runtime="rhino"/>
attila@963 218 </target>
attila@963 219
attila@963 220 <!--
attila@963 221 Benchmark runners for one or more benchmarks, single
attila@963 222 or multiple process
attila@963 223 -->
attila@963 224
attila@963 225 <target name="octane-process-separate" if="${octane-test-sys-prop.separate.process}">
attila@963 226 <echo message="Running each benchmark in separate processes, starting new JVMs for each."/>
attila@963 227 <script language="javascript"><![CDATA[
attila@963 228 var props = [];
attila@963 229
attila@963 230 for (var prop in project.getProperties()) {
attila@963 231 if (prop.startsWith("octane.benchmark.")) {
attila@963 232 props.push(prop);
attila@963 233 }
attila@963 234 }
attila@963 235
attila@963 236 //sort benchmark props in alphabetical order by name
attila@963 237 props.sort(function(a, b) {
attila@963 238 if (a < b) {
attila@963 239 return -1;
attila@963 240 } else if (a > b) {
attila@963 241 return 1;
attila@963 242 } else {
attila@963 243 return 0;
attila@963 244 }
attila@963 245 });
attila@963 246
attila@963 247 var runtime = project.getProperty("runtime");
attila@963 248
attila@963 249 for (var i in props) {
attila@963 250 var task = project.createTask("run-one");
attila@963 251 // workaround for https://issues.apache.org/bugzilla/show_bug.cgi?id=53831, still not fixed
attila@963 252 if (task.getOwningTarget() == null) {
attila@963 253 task.setOwningTarget(self.getOwningTarget());
attila@963 254 }
attila@963 255 var prop = props[i];
attila@963 256 task.setDynamicAttribute("cond", prop);
attila@963 257 task.setDynamicAttribute("runtime", runtime);
attila@963 258 task.perform();
attila@963 259 }
attila@963 260 ]]></script>
attila@963 261 </target>
attila@963 262
attila@963 263 <target name="octane-process-single" unless="${octane-test-sys-prop.separate.process}">
attila@963 264 <echo message="Running all benchmarks in the same process."/>
attila@963 265 <pathconvert property="octane.benchmarks" pathsep=" ">
attila@963 266 <propertyset>
attila@963 267 <propertyref prefix="octane.benchmark."/>
attila@963 268 </propertyset>
attila@963 269 </pathconvert>
attila@963 270 <antcall target="run-octane${runtime}">
attila@963 271 <param name="octane-tests" value="${octane.benchmarks}"/>
sundar@25 272 </antcall>
jlaskey@3 273 </target>
jlaskey@3 274
attila@963 275 <!--
attila@963 276 run 'octane' in single or separate processes based on config
attila@963 277 This uses nashorn as the default runtime
attila@963 278 -->
attila@963 279 <target name="octane-nashorn" depends="jar">
attila@963 280 <property name="runtime" value="nashorn"/>
attila@963 281 <antcall target="octane-process-separate"/>
attila@963 282 <antcall target="octane-process-single"/>
sundar@25 283 </target>
sundar@25 284
attila@963 285 <!-- alias for 'octane' -->
attila@963 286 <target name="octane" depends="octane-nashorn"/>
jlaskey@3 287
jlaskey@3 288 <!-- run octane benchmarks using octane as runtime -->
attila@963 289 <target name="octane-v8" depends="jar">
attila@963 290 <property name="runtime" value="v8"/>
attila@963 291 <antcall target="octane-process-separate"/>
attila@963 292 <antcall target="octane-process-single"/>
jlaskey@3 293 </target>
jlaskey@3 294
jlaskey@3 295 <!-- run octane benchmarks using Rhino as runtime -->
attila@963 296 <target name="octane-rhino" depends="jar">
attila@963 297 <property name="runtime" value="rhino"/>
attila@963 298 <antcall target="octane-process-separate"/>
attila@963 299 <antcall target="octane-process-single"/>
jlaskey@3 300 </target>
attila@963 301
attila@963 302 <macrodef name="run-one">
attila@963 303 <attribute name="cond"/>
attila@963 304 <attribute name="runtime" default=""/>
attila@963 305 <sequential>
attila@963 306 <antcall target="run-octane-@{runtime}" if:set="@{cond}">
attila@963 307 <param name="octane-tests" value="${@{cond}}"/>
attila@963 308 </antcall>
attila@963 309 </sequential>
attila@963 310 </macrodef>
attila@963 311
attila@963 312 <target name="run-octane-nashorn">
jlaskey@3 313 <java classname="${nashorn.shell.tool}"
jlaskey@3 314 classpath="${run.test.classpath}"
jlaskey@3 315 fork="true"
jlaskey@3 316 dir=".">
jlaskey@3 317 <jvmarg line="${ext.class.path}"/>
hannesw@562 318 <jvmarg line="${run.test.jvmargs.octane} -Xms${run.test.xms} -Xmx${run.test.xmx}"/>
attila@963 319 <!-- pass on all properties prefixed with 'nashorn' to the runtime -->
attila@963 320 <syspropertyset>
attila@963 321 <propertyref prefix="nashorn."/>
attila@963 322 </syspropertyset>
jlaskey@3 323 <arg value="${octane-test-sys-prop.test.js.framework}"/>
attila@963 324 <arg value="-scripting"/>
jlaskey@3 325 <arg value="--"/>
jlaskey@3 326 <arg value="${octane-tests}"/>
jlaskey@3 327 <arg value="--runtime"/>
attila@963 328 <arg value="nashorn"/>
jlaskey@3 329 <arg value="--verbose"/>
attila@963 330 <arg value="--iterations ${octane.iterations}"/>
jlaskey@3 331 </java>
jlaskey@3 332 </target>
jlaskey@3 333
jlaskey@3 334 <target name="run-octane-v8">
jlaskey@3 335 <exec executable="${v8.shell}">
jlaskey@3 336 <arg value="${octane-test-sys-prop.test.js.framework}"/>
jlaskey@3 337 <arg value="--"/>
attila@963 338 <arg value="${octane-tests}"/>
jlaskey@3 339 <arg value="--runtime"/>
jlaskey@3 340 <arg value="v8"/>
jlaskey@3 341 <arg value="--verbose"/>
attila@963 342 <arg value="--iterations ${octane.iterations}"/>
jlaskey@3 343 </exec>
jlaskey@3 344 </target>
jlaskey@3 345
jlaskey@3 346 <target name="run-octane-rhino">
jlaskey@3 347 <java jar="${rhino.jar}"
jlaskey@3 348 classpath="${run.test.classpath}"
jlaskey@3 349 fork="true"
jlaskey@3 350 dir=".">
hannesw@562 351 <jvmarg line="${run.test.jvmargs.octane} -Xms${run.test.xms} -Xmx${run.test.xmx}"/>
attila@963 352 <arg value="-opt"/>
attila@963 353 <arg value="9"/>
jlaskey@3 354 <arg value="${octane-test-sys-prop.test.js.framework}"/>
jlaskey@3 355 <arg value="${octane-tests}"/>
jlaskey@3 356 <arg value="--runtime"/>
attila@963 357 <arg value="rhino"/>
jlaskey@3 358 <arg value="--verbose"/>
attila@963 359 <arg value="--iterations ${octane.iterations}"/>
jlaskey@3 360 </java>
jlaskey@3 361 </target>
jlaskey@3 362
jlaskey@3 363 <!-- run octane with all known runtimes for comparison -->
jlaskey@3 364 <target name="octane-all" depends="octane, octane-v8, octane-rhino">
jlaskey@3 365 <exec executable="${v8.shell}">
jlaskey@3 366 <arg value="${octane-test-sys-prop.test.js.framework}"/>
jlaskey@3 367 <arg value="${octane-tests}/"/>
jlaskey@3 368 </exec>
jlaskey@3 369 </target>
attila@963 370
jlaskey@3 371 <target name="sunspider-init" depends="jar">
jlaskey@3 372 <fileset id="sunspider-set"
attila@963 373 dir="${sunspider-test-sys-prop.test.js.roots}"
attila@963 374 excludes="${sunspider-test-sys-prop.test.js.exclude.list}">
jlaskey@3 375 <include name="**/*.js"/>
jlaskey@3 376 </fileset>
jlaskey@3 377 <pathconvert pathsep=" " property="sunspider-tests" refid="sunspider-set"/>
jlaskey@3 378 </target>
jlaskey@3 379
attila@963 380 <!--- SUNSPIDER JOB BELOW -->
attila@963 381
jlaskey@3 382 <!-- run sunspider with Nashorn -->
attila@963 383 <target name="sunspider" depends="sunspider-nashorn"/>
attila@963 384
attila@963 385 <target name="sunspider-nashorn" depends="sunspider-init">
jlaskey@3 386 <java classname="${nashorn.shell.tool}"
jlaskey@3 387 classpath="${run.test.classpath}"
jlaskey@3 388 fork="true"
jlaskey@3 389 dir=".">
jlaskey@3 390 <jvmarg line="${ext.class.path}"/>
hannesw@562 391 <jvmarg line="${run.test.jvmargs} -Xmx${run.test.xmx}"/>
jlaskey@3 392 <arg value="-timezone=PST"/>
jlaskey@3 393 <arg value="--class-cache-size=50"/>
jlaskey@3 394 <arg value="${sunspider-test-sys-prop.test.js.framework}"/>
jlaskey@3 395 <arg value="--"/>
jlaskey@3 396 <arg value="${sunspider-tests}/"/>
attila@963 397 <arg value="--verbose"/>
attila@963 398 <arg value="--times"/>
attila@963 399 <arg value="${sunspider.iterations}"/>
jlaskey@3 400 </java>
jlaskey@3 401 </target>
jlaskey@3 402
jlaskey@3 403 <!-- run sunspider with v8 -->
jlaskey@3 404 <target name="sunspider-v8" depends="sunspider-init">
jlaskey@3 405 <exec executable="${v8.shell}">
jlaskey@3 406 <arg value="${sunspider-test-sys-prop.test.js.framework}"/>
jlaskey@3 407 <arg value="--"/>
jlaskey@3 408 <arg value="${sunspider-tests}/"/>
attila@963 409 <arg value="--verbose"/>
attila@963 410 <arg value="--times"/>
attila@963 411 <arg value="${sunspider.iterations}"/>
jlaskey@3 412 </exec>
jlaskey@3 413 </target>
jlaskey@3 414
jlaskey@3 415 <!-- run sunspider with Rhino -->
jlaskey@3 416 <target name="sunspider-rhino" depends="sunspider-init">
jlaskey@3 417 <java jar="${rhino.jar}"
jlaskey@3 418 classpath="${run.test.classpath}"
jlaskey@3 419 fork="true"
jlaskey@3 420 dir=".">
hannesw@562 421 <jvmarg line="${run.test.jvmargs} -Xmx${run.test.xmx}"/>
attila@963 422 <arg value="-opt"/>
attila@963 423 <arg value="9"/>
jlaskey@3 424 <arg value="${sunspider-test-sys-prop.test.js.framework}"/>
jlaskey@3 425 <arg value="${sunspider-tests}/"/>
attila@963 426 <arg value="--verbose"/>
attila@963 427 <arg value="--times"/>
attila@963 428 <arg value="${sunspider.iterations}"/>
jlaskey@3 429 </java>
jlaskey@3 430 </target>
jlaskey@3 431
jlaskey@3 432 </project>

mercurial