| Index: chrome/test/functional/gpu.py
|
| ===================================================================
|
| --- chrome/test/functional/gpu.py (revision 261231)
|
| +++ chrome/test/functional/gpu.py (working copy)
|
| @@ -1,79 +0,0 @@
|
| -#!/usr/bin/env python
|
| -# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -import logging
|
| -import os
|
| -
|
| -import pyauto_functional # Must be imported before pyauto
|
| -import pyauto
|
| -
|
| -
|
| -class GpuTest(pyauto.PyUITest):
|
| - """GPU Tests Runner."""
|
| -
|
| - def _GetGpuPID(self):
|
| - """Fetch the pid of the GPU process."""
|
| - child_processes = self.GetBrowserInfo()['child_processes']
|
| - for x in child_processes:
|
| - if x['type'] == 'GPU':
|
| - return x['pid']
|
| - return None
|
| -
|
| - def _IsHardwareAccelerated(self, feature):
|
| - """Check if gpu is enabled in the machine before running any tests."""
|
| - self.NavigateToURL('about:gpu')
|
| - def IsFeatureStatusLoaded():
|
| - """Returns whether the feature status UI has been loaded.
|
| -
|
| - The about:gpu page fetches status for features asynchronously, so use
|
| - this to check if the fetch is done.
|
| - """
|
| - js = """
|
| - var list = document.querySelector(".feature-status-list");
|
| - domAutomationController.send(list.hasChildNodes() ? "done" : "");
|
| - """
|
| - return self.ExecuteJavascript(js)
|
| - self.assertTrue(self.WaitUntil(IsFeatureStatusLoaded, 10))
|
| - search = feature + ': Hardware accelerated'
|
| - find_result = self.FindInPage(search)['match_count']
|
| - if find_result:
|
| - # about:gpu page starts a gpu process. Restart the browser to clear
|
| - # the state. We could kill the gpu process, but navigating to a page
|
| - # after killing the gpu can lead to flakiness.
|
| - # See crbug.com/93423.
|
| - self.RestartBrowser()
|
| - return True
|
| - else:
|
| - logging.warn('Hardware acceleration not available')
|
| - return False
|
| -
|
| - def _VerifyGPUProcessOnPage(self, url):
|
| - url = self.GetFileURLForDataPath('pyauto_private', 'gpu', url)
|
| - self.NavigateToURL(url)
|
| - self.assertTrue(self.WaitUntil(
|
| - lambda: self._GetGpuPID() is not None), msg='No process for GPU')
|
| -
|
| - def testSingleGpuProcess(self):
|
| - """Verify there's only one gpu process shared across all uses."""
|
| - self.assertTrue(self._IsHardwareAccelerated('WebGL'))
|
| - url = self.GetFileURLForDataPath('pyauto_private',
|
| - 'gpu', 'WebGLField.html')
|
| - self.AppendTab(pyauto.GURL(url))
|
| - # Open a new window.
|
| - self.OpenNewBrowserWindow(True)
|
| - self.NavigateToURL(url, 1, 0)
|
| - # Open a new incognito window.
|
| - self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
|
| - self.NavigateToURL(url, 1, 0)
|
| - # Verify there's only 1 gpu process.
|
| - gpu_process_count = 0
|
| - for x in self.GetBrowserInfo()['child_processes']:
|
| - if x['type'] == 'GPU':
|
| - gpu_process_count += 1
|
| - self.assertEqual(1, gpu_process_count)
|
| -
|
| -
|
| -if __name__ == '__main__':
|
| - pyauto_functional.Main()
|
|
|