Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Side by Side Diff: chrome/test/functional/gpu.py

Issue 222873002: Remove pyauto tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: sync Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 import logging
7 import os
8
9 import pyauto_functional # Must be imported before pyauto
10 import pyauto
11
12
13 class GpuTest(pyauto.PyUITest):
14 """GPU Tests Runner."""
15
16 def _GetGpuPID(self):
17 """Fetch the pid of the GPU process."""
18 child_processes = self.GetBrowserInfo()['child_processes']
19 for x in child_processes:
20 if x['type'] == 'GPU':
21 return x['pid']
22 return None
23
24 def _IsHardwareAccelerated(self, feature):
25 """Check if gpu is enabled in the machine before running any tests."""
26 self.NavigateToURL('about:gpu')
27 def IsFeatureStatusLoaded():
28 """Returns whether the feature status UI has been loaded.
29
30 The about:gpu page fetches status for features asynchronously, so use
31 this to check if the fetch is done.
32 """
33 js = """
34 var list = document.querySelector(".feature-status-list");
35 domAutomationController.send(list.hasChildNodes() ? "done" : "");
36 """
37 return self.ExecuteJavascript(js)
38 self.assertTrue(self.WaitUntil(IsFeatureStatusLoaded, 10))
39 search = feature + ': Hardware accelerated'
40 find_result = self.FindInPage(search)['match_count']
41 if find_result:
42 # about:gpu page starts a gpu process. Restart the browser to clear
43 # the state. We could kill the gpu process, but navigating to a page
44 # after killing the gpu can lead to flakiness.
45 # See crbug.com/93423.
46 self.RestartBrowser()
47 return True
48 else:
49 logging.warn('Hardware acceleration not available')
50 return False
51
52 def _VerifyGPUProcessOnPage(self, url):
53 url = self.GetFileURLForDataPath('pyauto_private', 'gpu', url)
54 self.NavigateToURL(url)
55 self.assertTrue(self.WaitUntil(
56 lambda: self._GetGpuPID() is not None), msg='No process for GPU')
57
58 def testSingleGpuProcess(self):
59 """Verify there's only one gpu process shared across all uses."""
60 self.assertTrue(self._IsHardwareAccelerated('WebGL'))
61 url = self.GetFileURLForDataPath('pyauto_private',
62 'gpu', 'WebGLField.html')
63 self.AppendTab(pyauto.GURL(url))
64 # Open a new window.
65 self.OpenNewBrowserWindow(True)
66 self.NavigateToURL(url, 1, 0)
67 # Open a new incognito window.
68 self.RunCommand(pyauto.IDC_NEW_INCOGNITO_WINDOW)
69 self.NavigateToURL(url, 1, 0)
70 # Verify there's only 1 gpu process.
71 gpu_process_count = 0
72 for x in self.GetBrowserInfo()['child_processes']:
73 if x['type'] == 'GPU':
74 gpu_process_count += 1
75 self.assertEqual(1, gpu_process_count)
76
77
78 if __name__ == '__main__':
79 pyauto_functional.Main()
OLDNEW
« no previous file with comments | « chrome/test/functional/fullscreen_mouselock.py ('k') | chrome/test/functional/gtalk/gtalk_base_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698