Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / tools / perf / benchmarks / robohornet_pro.py
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
3 # found in the LICENSE file.
4
5 """Runs Microsoft's RoboHornet Pro benchmark."""
6
7 import os
8
9 from metrics import power
10 from telemetry import test
11 from telemetry.page import page_measurement
12 from telemetry.page import page_set
13
14
15 class _RobohornetProMeasurement(page_measurement.PageMeasurement):
16   def __init__(self):
17     super(_RobohornetProMeasurement, self).__init__()
18     self._power_metric = power.PowerMetric()
19
20   def CustomizeBrowserOptions(self, options):
21     power.PowerMetric.CustomizeBrowserOptions(options)
22
23   def DidNavigateToPage(self, page, tab):
24     self._power_metric.Start(page, tab)
25
26   def MeasurePage(self, page, tab, results):
27     tab.ExecuteJavaScript('ToggleRoboHornet()')
28     tab.WaitForJavaScriptExpression(
29         'document.getElementById("results").innerHTML.indexOf("Total") != -1',
30         120)
31
32     self._power_metric.Stop(page, tab)
33     self._power_metric.AddResults(tab, results)
34
35     result = int(tab.EvaluateJavaScript('stopTime - startTime'))
36     results.Add('Total', 'ms', result)
37
38
39 class RobohornetPro(test.Test):
40   test = _RobohornetProMeasurement
41
42   def CreatePageSet(self, options):
43     return page_set.PageSet.FromDict({
44         'archive_data_file': '../page_sets/data/robohornet_pro.json',
45         # Measurement require use of real Date.now() for measurement.
46         'make_javascript_deterministic': False,
47         'pages': [
48           { 'url':
49             'http://ie.microsoft.com/testdrive/performance/robohornetpro/' }
50           ]
51         }, os.path.abspath(__file__))