Upstream version 7.36.149.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         600)
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     ps = page_set.PageSet(
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       file_path=os.path.abspath(__file__))
48     ps.AddPageWithDefaultRunNavigate(
49       'http://ie.microsoft.com/testdrive/performance/robohornetpro/')
50     return ps