146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)# Copyright 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. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)"""Runs Facebook's JSGameBench benchmark. 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)As of May 14, 2014, JSGameBench is no longer maintained. See README.md: 846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)https://github.com/facebookarchive/jsgamebench 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)The benchmark is kept here for historical purposes but is disabled on the bots. 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)""" 1290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)import os 1490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochfrom telemetry import benchmark 1690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)from telemetry.page import page_set 176e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)from telemetry.page import page_test 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdochfrom telemetry.value import scalar 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class _JsgamebenchMeasurement(page_test.PageTest): 225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) def __init__(self): 235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) super(_JsgamebenchMeasurement, self).__init__() 245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) def ValidateAndMeasurePage(self, page, tab, results): 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tab.ExecuteJavaScript('UI.call({}, "perftest")') 271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) tab.WaitForJavaScriptExpression( 28a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 'document.getElementById("perfscore0") != null', 1800) 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) js_get_results = 'document.getElementById("perfscore0").innerHTML' 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) result = int(tab.EvaluateJavaScript(js_get_results)) 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch results.AddValue(scalar.ScalarValue( 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch results.current_page, 'Score', 'score (bigger is better)', result)) 349ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 359ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch@benchmark.Disabled 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass Jsgamebench(benchmark.Benchmark): 389ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch """Counts how many animating sprites can move around on the screen at once.""" 391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) test = _JsgamebenchMeasurement 409ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 419ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch def CreatePageSet(self, options): 425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ps = page_set.PageSet( 435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu archive_data_file='../page_sets/data/jsgamebench.json', 445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu file_path=os.path.dirname(__file__)) 455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu ps.AddPageWithDefaultRunNavigate('http://localhost/') 465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu return ps 47