15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file.
490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)"""Runs Microsoft's RoboHornet Pro benchmark."""
690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)import os
890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
99ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochfrom telemetry import test
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)from telemetry.page import page_measurement
1190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)from telemetry.page import page_set
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
141e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)class _RobohornetProMeasurement(page_measurement.PageMeasurement):
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  def MeasurePage(self, _, tab, results):
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    tab.ExecuteJavaScript('ToggleRoboHornet()')
171e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)    tab.WaitForJavaScriptExpression(
181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)        'document.getElementById("results").innerHTML.indexOf("Total") != -1',
191e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)        120)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    result = int(tab.EvaluateJavaScript('stopTime - startTime'))
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    results.Add('Total', 'ms', result)
229ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
239ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
249ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochclass RobohornetPro(test.Test):
251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  test = _RobohornetProMeasurement
269ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch
279ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch  def CreatePageSet(self, options):
289ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch    return page_set.PageSet.FromDict({
29a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)        'archive_data_file': '../page_sets/data/robohornet_pro.json',
309ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch        # Measurement require use of real Date.now() for measurement.
319ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch        'make_javascript_deterministic': False,
329ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch        'pages': [
339ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch          { 'url':
349ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch            'http://ie.microsoft.com/testdrive/performance/robohornetpro/' }
359ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch          ]
369ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch        }, os.path.abspath(__file__))
37