nashorn/test/script/basic/run-octane.js
author jlaskey
Fri, 21 Dec 2012 16:36:24 -0400
changeset 16147 e63b63819133
child 16151 97c1e756ae1e
permissions -rw-r--r--
8005403: Open-source Nashorn Reviewed-by: attila, hannesw, lagergren, sundar Contributed-by: james.laskey@oracle.com, akhil.arora@oracle.com, andreas.woess@jku.at, attila.szegedi@oracle.com, hannes.wallnoefer@oracle.com, henry.jen@oracle.com, marcus.lagergren@oracle.com, pavel.semenov@oracle.com, pavel.stepanov@oracle.com, petr.hejl@oracle.com, petr.pisl@oracle.com, sundararajan.athijegannathan@oracle.com
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16147
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     1
/*
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     2
 * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     4
 * 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     7
 * published by the Free Software Foundation.
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     8
 * 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    13
 * accompanied this code).
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    14
 * 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    18
 * 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    21
 * questions.
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    22
 */
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    23
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    24
/**
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    25
 * @subtest
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    26
 */
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    27
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    28
var tests = [
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    29
    "box2d.js",
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    30
    "code-load.js",
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    31
    "crypto.js", 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    32
    "deltablue.js", 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    33
    "earley-boyer.js", 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    34
    "gbemu.js",	     
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    35
    "navier-stokes.js", 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    36
    "pdfjs.js",
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    37
    "raytrace.js",
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    38
    "regexp.js", 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    39
    "richards.js", 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    40
    "splay.js" 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    41
];
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    42
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    43
// hack, teardown breaks things defined in the global space, making it impossible
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    44
// to do multiple consecutive benchmark runs with the same harness. I think it's a bug
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    45
// that the setup and teardown aren't each others constructor and destructor but rather
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    46
// that the benchmarks rely on partial global state. For shame, Octane! 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    47
var ignoreTeardown = [
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    48
    { name: "box2d.js" },
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    49
    { name: "gbemu.js" },
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    50
];
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    51
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    52
var dir = (typeof(__DIR__) == 'undefined') ? "test/script/basic/" : __DIR__;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    53
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    54
// TODO: why is this path hard coded when it's defined in project properties?
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    55
var path = dir + "../external/octane/benchmarks/";
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    56
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    57
var runtime = "";
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    58
var verbose = false;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    59
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    60
var numberOfIterations = 5;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    61
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    62
function endsWith(str, suffix) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    63
    return str.indexOf(suffix, str.length - suffix.length) !== -1;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    64
}
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    65
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    66
function run_one_benchmark(arg, iters) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    67
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    68
    load(path + 'base.js');
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    69
    load(arg);
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    70
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    71
    var file_name;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    72
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    73
    var file = arg.split('/');
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    74
    if (file.length == 1) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    75
        file = arg.split('\\');
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    76
    }    
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    77
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    78
    //trim off trailing path separators
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    79
    while (file[file.length - 1].indexOf(".js") == -1) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    80
	file.pop();
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    81
    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    82
    file_name = file[file.length - 1];
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    83
    
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    84
    if (typeof compile_only !== 'undefined') {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    85
	print("Compiled OK: " + file_name);
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    86
	return;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    87
    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    88
    
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    89
    var success = true;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    90
    var hiscore = 0;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    91
    var loscore = 10e8;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    92
    var current_name;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    93
    
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    94
    function PrintResult(name, result) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    95
	current_name = name;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    96
    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    97
        
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    98
    function PrintError(name, error) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    99
	current_name = name;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   100
	PrintResult(name, error);
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   101
	success = false;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   102
    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   103
        
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   104
    function PrintScore(score) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   105
	if (success) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   106
	    if (+score >= hiscore) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   107
		hiscore = +score;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   108
	    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   109
	    if (+score <= loscore) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   110
		loscore = +score;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   111
	    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   112
	}
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   113
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   114
	if (verbose) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   115
	    print("Score: " + score);
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   116
	}
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   117
    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   118
    
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   119
    if (iters == undefined) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   120
	iters = numberOfIterations;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   121
    } else {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   122
	numberOfIterations = iters;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   123
    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   124
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   125
    print(runtime + ": running " + file_name + "...");
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   126
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   127
    for (var i = 0; i < numberOfIterations; i++) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   128
	var callbacks =
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   129
	    { NotifyResult: PrintResult,
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   130
	      NotifyError: PrintError,
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   131
	      NotifyScore: PrintScore };	
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   132
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   133
	for (j in ignoreTeardown) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   134
	    var ignore = ignoreTeardown[j];
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   135
	    if (endsWith(arg, ignore.name)) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   136
		var teardownOverride = ignore.teardown;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   137
		if (!teardownOverride) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   138
		    teardownOverride = function() {};
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   139
		}
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   140
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   141
		for (k in BenchmarkSuite.suites) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   142
		    var benchmarks = BenchmarkSuite.suites[k].benchmarks;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   143
		    for (l in benchmarks) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   144
			benchmarks[l].TearDown = teardownOverride;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   145
		    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   146
                }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   147
		break;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   148
	    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   149
	}
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   150
	
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   151
	BenchmarkSuite.RunSuites(callbacks);
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   152
    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   153
    
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   154
    var start = "Score: ";
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   155
    if (runtime != "") {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   156
	start = runtime + ": ";
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   157
    } 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   158
    print(start + current_name + ' (version ' + BenchmarkSuite.version + '): ' + loscore + '-' + hiscore);
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   159
}
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   160
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   161
function run_suite(tests, iters) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   162
    for (var idx = 0; idx < tests.length; idx++) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   163
	run_one_benchmark(tests[idx], iters, false);
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   164
    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   165
}
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   166
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   167
runtime = "command line";
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   168
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   169
var args = [];
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   170
if (typeof $ARGS !== 'undefined') {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   171
    args = $ARGS;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   172
} else if (typeof arguments !== 'undefined' && arguments.length != 0) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   173
    args = arguments;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   174
}  
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   175
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   176
var new_args = [];
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   177
for (i in args) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   178
    if (args[i].toString().indexOf(' ') != -1) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   179
	args[i] = args[i].replace(/\/$/, '');
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   180
	var s = args[i].split(' ');
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   181
	for (j in s) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   182
	    new_args.push(s[j]);
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   183
	}
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   184
    } else {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   185
	new_args.push(args[i]);
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   186
    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   187
}
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   188
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   189
if (new_args.length != 0) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   190
    args = new_args;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   191
}
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   192
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   193
var tests_found = [];
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   194
var iters = undefined;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   195
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   196
for (var i = 0; i < args.length; i++) { 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   197
    arg = args[i];
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   198
    if (arg == "--iterations") {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   199
	iters = +args[++i];
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   200
    } else if (arg == "--runtime") {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   201
	runtime = args[++i];
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   202
    } else if (arg == "--verbose") {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   203
	verbose = true;
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   204
    } else if (arg == "") {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   205
	continue; //skip
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   206
    } else {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   207
	tests_found.push(arg);
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   208
    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   209
}
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   210
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   211
if (tests_found.length == 0) {    
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   212
    for (i in tests) {
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   213
	tests_found.push(path + tests[i]);
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   214
    }
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   215
} 
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   216
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   217
tests_found.sort();
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   218
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   219
run_suite(tests_found, iters);
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   220
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   221
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   222