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."""
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
):
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) {
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();
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')