• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
7import os
8
9from metrics import power
10from telemetry import test
11from telemetry.page import page_measurement
12from telemetry.page import page_set
13
14
15class _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
39class 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
51