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.page import page_measurement 11 from telemetry.page import page_set 12 13 14 class _JsgamebenchMeasurement(page_measurement.PageMeasurement): 15 def MeasurePage(self, _, tab, results): 16 tab.ExecuteJavaScript('UI.call({}, "perftest")') 17 tab.WaitForJavaScriptExpression( 18 'document.getElementById("perfscore0") != null', 1800) 19 js_get_results = 'document.getElementById("perfscore0").innerHTML' 20 result = int(tab.EvaluateJavaScript(js_get_results)) 21 results.Add('Score', 'score (bigger is better)', result) 22 23 24 class Jsgamebench(test.Test): 25 """Counts how many animating sprites can move around on the screen at once.""" 26 test = _JsgamebenchMeasurement 27 28 def CreatePageSet(self, options): 29 return page_set.PageSet.FromDict({ 30 'archive_data_file': '../page_sets/data/jsgamebench.json', 31 'pages': [ 32 { 'url': 'http://localhost/' } 33 ] 34 }, os.path.dirname(__file__)) 35