Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / tools / perf / benchmarks / robohornet_pro.py
1 # Copyright 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 benchmark
11 from telemetry.page import page_set
12 from telemetry.page import page_test
13 from telemetry.value import scalar
14
15
16 class _RobohornetProMeasurement(page_test.PageTest):
17   def __init__(self):
18     super(_RobohornetProMeasurement, self).__init__()
19     self._power_metric = None
20
21   def CustomizeBrowserOptions(self, options):
22     power.PowerMetric.CustomizeBrowserOptions(options)
23
24   def WillStartBrowser(self, browser):
25     self._power_metric = power.PowerMetric(browser)
26
27   def DidNavigateToPage(self, page, tab):
28     self._power_metric.Start(page, tab)
29
30   def ValidateAndMeasurePage(self, page, tab, results):
31     tab.ExecuteJavaScript('ToggleRoboHornet()')
32     tab.WaitForJavaScriptExpression(
33         'document.getElementById("results").innerHTML.indexOf("Total") != -1',
34         600)
35
36     self._power_metric.Stop(page, tab)
37     self._power_metric.AddResults(tab, results)
38
39     result = int(tab.EvaluateJavaScript('stopTime - startTime'))
40     results.AddValue(
41         scalar.ScalarValue(results.current_page, 'Total', 'ms', result))
42
43
44
45 class RobohornetPro(benchmark.Benchmark):
46   test = _RobohornetProMeasurement
47
48   def CreatePageSet(self, options):
49     ps = page_set.PageSet(
50       archive_data_file='../page_sets/data/robohornet_pro.json',
51       # Measurement require use of real Date.now() for measurement.
52       make_javascript_deterministic=False,
53       file_path=os.path.abspath(__file__))
54     ps.AddPageWithDefaultRunNavigate(
55       'http://ie.microsoft.com/testdrive/performance/robohornetpro/')
56     return ps