Home | History | Annotate | Download | only in benchmarks
      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 Facebook's JSGameBench benchmark."""
      6 
      7 import os
      8 
      9 from telemetry import test
     10 from telemetry.core import util
     11 from telemetry.page import page_measurement
     12 from telemetry.page import page_set
     13 
     14 
     15 class JsgamebenchMeasurement(page_measurement.PageMeasurement):
     16   def MeasurePage(self, _, tab, results):
     17     tab.ExecuteJavaScript('UI.call({}, "perftest")')
     18 
     19     js_is_done = 'document.getElementById("perfscore0") != null'
     20     def _IsDone():
     21       return bool(tab.EvaluateJavaScript(js_is_done))
     22     util.WaitFor(_IsDone, 1200)
     23 
     24     js_get_results = 'document.getElementById("perfscore0").innerHTML'
     25     result = int(tab.EvaluateJavaScript(js_get_results))
     26     results.Add('Score', 'score (bigger is better)', result)
     27 
     28 
     29 class Jsgamebench(test.Test):
     30   """Counts how many animating sprites can move around on the screen at once."""
     31   test = JsgamebenchMeasurement
     32 
     33   def CreatePageSet(self, options):
     34     return page_set.PageSet.FromDict({
     35         'archive_data_file': '../data/jsgamebench.json',
     36         'pages': [
     37           { 'url': 'http://localhost/' }
     38           ]
     39         }, os.path.dirname(__file__))
     40