# Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Runs Facebook's JSGameBench benchmark.""" import os from telemetry import test from telemetry.core import util from telemetry.page import page_measurement from telemetry.page import page_set class JsgamebenchMeasurement(page_measurement.PageMeasurement): def MeasurePage(self, _, tab, results): tab.ExecuteJavaScript('UI.call({}, "perftest")') js_is_done = 'document.getElementById("perfscore0") != null' def _IsDone(): return bool(tab.EvaluateJavaScript(js_is_done)) util.WaitFor(_IsDone, 1200) js_get_results = 'document.getElementById("perfscore0").innerHTML' result = int(tab.EvaluateJavaScript(js_get_results)) results.Add('Score', 'score (bigger is better)', result) class Jsgamebench(test.Test): """Counts how many animating sprites can move around on the screen at once.""" test = JsgamebenchMeasurement def CreatePageSet(self, options): return page_set.PageSet.FromDict({ 'archive_data_file': '../data/jsgamebench.json', 'pages': [ { 'url': 'http://localhost/' } ] }, os.path.dirname(__file__))