Home | History | Annotate | Download | only in benchmarks
      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 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
     51