[Telemetry] Update copyright header style.
[chromium-blink-merge.git] / tools / perf / benchmarks / spaceport.py
blobcd4d773d357eee12cfa6a0d065a381ac232a2a1d
1 # Copyright 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.
5 """Runs spaceport.io's PerfMarks benchmark."""
7 import logging
8 import os
10 from telemetry import test
11 from telemetry.core import util
12 from telemetry.page import page_measurement
13 from telemetry.page import page_set
16 class _SpaceportMeasurement(page_measurement.PageMeasurement):
17 def __init__(self):
18 super(_SpaceportMeasurement, self).__init__()
20 def CustomizeBrowserOptions(self, options):
21 options.AppendExtraBrowserArgs('--disable-gpu-vsync')
23 def MeasurePage(self, page, tab, results):
24 tab.WaitForJavaScriptExpression(
25 '!document.getElementById("start-performance-tests").disabled', 60)
27 tab.ExecuteJavaScript("""
28 window.__results = {};
29 window.console.log = function(str) {
30 if (!str) return;
31 var key_val = str.split(': ');
32 if (!key_val.length == 2) return;
33 __results[key_val[0]] = key_val[1];
35 document.getElementById('start-performance-tests').click();
36 """)
38 num_results = 0
39 num_tests_in_spaceport = 24
40 while num_results < num_tests_in_spaceport:
41 tab.WaitForJavaScriptExpression(
42 'Object.keys(window.__results).length > %d' % num_results, 180)
43 num_results = tab.EvaluateJavaScript(
44 'Object.keys(window.__results).length')
45 logging.info('Completed test %d of %d' %
46 (num_results, num_tests_in_spaceport))
48 result_dict = eval(tab.EvaluateJavaScript(
49 'JSON.stringify(window.__results)'))
50 for key in result_dict:
51 chart, trace = key.split('.', 1)
52 results.Add(trace, 'objects (bigger is better)', float(result_dict[key]),
53 chart_name=chart, data_type='unimportant')
54 results.Add('Score', 'objects (bigger is better)',
55 [float(x) for x in result_dict.values()])
58 # crbug.com/166703: This test frequently times out on Windows.
59 @test.Disabled('mac', 'win')
60 class Spaceport(test.Test):
61 """spaceport.io's PerfMarks benchmark."""
62 test = _SpaceportMeasurement
64 def CreatePageSet(self, options):
65 spaceport_dir = os.path.join(util.GetChromiumSrcDir(), 'chrome', 'test',
66 'data', 'third_party', 'spaceport')
67 ps = page_set.PageSet(file_path=spaceport_dir)
68 ps.AddPageWithDefaultRunNavigate('file://index.html')
69 return ps