OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Runs Mozilla's Kraken JavaScript benchmark.""" | 5 """Runs Mozilla's Kraken JavaScript benchmark.""" |
6 | 6 |
7 import os | 7 import os |
8 | 8 |
9 from telemetry import test | 9 from telemetry import test |
10 from telemetry.core import util | 10 from telemetry.core import util |
11 from telemetry.page import page_measurement | 11 from telemetry.page import page_measurement |
| 12 from telemetry.page import result_data_type |
12 from telemetry.page import page_set | 13 from telemetry.page import page_set |
13 | 14 |
14 | 15 |
15 def _Mean(l): | 16 def _Mean(l): |
16 return float(sum(l)) / len(l) if len(l) > 0 else 0.0 | 17 return float(sum(l)) / len(l) if len(l) > 0 else 0.0 |
17 | 18 |
18 | 19 |
19 class KrakenMeasurement(page_measurement.PageMeasurement): | 20 class KrakenMeasurement(page_measurement.PageMeasurement): |
20 def MeasurePage(self, _, tab, results): | 21 def MeasurePage(self, _, tab, results): |
21 js_is_done = """ | 22 js_is_done = """ |
22 document.title.indexOf("Results") != -1 && document.readyState == "complete" | 23 document.title.indexOf("Results") != -1 && document.readyState == "complete" |
23 """ | 24 """ |
24 def _IsDone(): | 25 def _IsDone(): |
25 return bool(tab.EvaluateJavaScript(js_is_done)) | 26 return bool(tab.EvaluateJavaScript(js_is_done)) |
26 util.WaitFor(_IsDone, 500, poll_interval=5) | 27 util.WaitFor(_IsDone, 500, poll_interval=5) |
27 | 28 |
28 js_get_results = """ | 29 js_get_results = """ |
29 var formElement = document.getElementsByTagName("input")[0]; | 30 var formElement = document.getElementsByTagName("input")[0]; |
30 decodeURIComponent(formElement.value.split("?")[1]); | 31 decodeURIComponent(formElement.value.split("?")[1]); |
31 """ | 32 """ |
32 result_dict = eval(tab.EvaluateJavaScript(js_get_results)) | 33 result_dict = eval(tab.EvaluateJavaScript(js_get_results)) |
33 total = 0 | 34 total = 0 |
34 for key in result_dict: | 35 for key in result_dict: |
35 if key == 'v': | 36 if key == 'v': |
36 continue | 37 continue |
37 results.Add(key, 'ms', result_dict[key], data_type='unimportant') | 38 results.Add(key, 'ms', result_dict[key], result_data_type.UNIMPORTANT) |
38 total += _Mean(result_dict[key]) | 39 total += _Mean(result_dict[key]) |
39 results.Add('Total', 'ms', total) | 40 results.Add('Total', 'ms', total) |
40 | 41 |
41 | 42 |
42 class Kraken(test.Test): | 43 class Kraken(test.Test): |
43 """Mozilla's Kraken JavaScript benchmark.""" | 44 """Mozilla's Kraken JavaScript benchmark.""" |
44 test = KrakenMeasurement | 45 test = KrakenMeasurement |
45 | 46 |
46 def CreatePageSet(self, options): | 47 def CreatePageSet(self, options): |
47 return page_set.PageSet.FromDict({ | 48 return page_set.PageSet.FromDict({ |
48 'archive_data_file': '../data/kraken.json', | 49 'archive_data_file': '../data/kraken.json', |
49 'pages': [ | 50 'pages': [ |
50 { 'url': 'http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html' } | 51 { 'url': 'http://krakenbenchmark.mozilla.org/kraken-1.1/driver.html' } |
51 ] | 52 ] |
52 }, os.path.abspath(__file__)) | 53 }, os.path.abspath(__file__)) |
OLD | NEW |