| 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 |