OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 import gpu_process_expectations as expectations | 4 import gpu_process_expectations as expectations |
5 import page_sets | 5 import page_sets |
6 | 6 |
7 from telemetry import benchmark | 7 from telemetry import benchmark |
8 from telemetry.page import page_set | 8 from telemetry.page import page_set |
9 from telemetry.page import page_test | 9 from telemetry.page import page_test |
10 | 10 |
11 test_harness_script = r""" | 11 test_harness_script = r""" |
12 var domAutomationController = {}; | 12 var domAutomationController = {}; |
13 domAutomationController._finished = false; | 13 domAutomationController._finished = false; |
14 domAutomationController.setAutomationId = function(id) {} | 14 domAutomationController.setAutomationId = function(id) {} |
15 domAutomationController.send = function(msg) { | 15 domAutomationController.send = function(msg) { |
16 domAutomationController._finished = true; | 16 domAutomationController._finished = true; |
17 } | 17 } |
18 | 18 |
19 window.domAutomationController = domAutomationController; | 19 window.domAutomationController = domAutomationController; |
20 """ | 20 """ |
21 | 21 |
22 class _GpuProcessValidator(page_test.PageTest): | 22 class _GpuProcessValidator(page_test.PageTest): |
23 def __init__(self): | 23 def __init__(self): |
24 super(_GpuProcessValidator, self).__init__( | 24 super(_GpuProcessValidator, self).__init__( |
25 needs_browser_restart_after_each_page=True) | 25 needs_browser_restart_after_each_page=True) |
26 | 26 |
27 def CustomizeBrowserOptions(self, options): | 27 def CustomizeBrowserOptions(self, options): |
28 options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') | 28 options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') |
29 | 29 |
30 def ValidatePage(self, page, tab, results): | 30 def ValidateAndMeasurePage(self, page, tab, results): |
31 has_gpu_process_js = 'chrome.gpuBenchmarking.hasGpuProcess()' | 31 has_gpu_process_js = 'chrome.gpuBenchmarking.hasGpuProcess()' |
32 has_gpu_process = tab.EvaluateJavaScript(has_gpu_process_js) | 32 has_gpu_process = tab.EvaluateJavaScript(has_gpu_process_js) |
33 if not has_gpu_process: | 33 if not has_gpu_process: |
34 raise page_test.Failure('No GPU process detected') | 34 raise page_test.Failure('No GPU process detected') |
35 | 35 |
36 class GpuProcess(benchmark.Benchmark): | 36 class GpuProcess(benchmark.Benchmark): |
37 """Tests that accelerated content triggers the creation of a GPU process""" | 37 """Tests that accelerated content triggers the creation of a GPU process""" |
38 test = _GpuProcessValidator | 38 test = _GpuProcessValidator |
39 page_set = page_sets.GpuProcessTestsPageSet | 39 page_set = page_sets.GpuProcessTestsPageSet |
40 | 40 |
41 def CreateExpectations(self, page_set): | 41 def CreateExpectations(self, page_set): |
42 return expectations.GpuProcessExpectations() | 42 return expectations.GpuProcessExpectations() |
43 | 43 |
44 def CreatePageSet(self, options): | 44 def CreatePageSet(self, options): |
45 page_set = super(GpuProcess, self).CreatePageSet(options) | 45 page_set = super(GpuProcess, self).CreatePageSet(options) |
46 for page in page_set.pages: | 46 for page in page_set.pages: |
47 page.script_to_evaluate_on_commit = test_harness_script | 47 page.script_to_evaluate_on_commit = test_harness_script |
48 return page_set | 48 return page_set |
OLD | NEW |