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

Unified Diff: content/test/gpu/gpu_tests/context_lost.py

Issue 256433003: Make context_lost test more of a stress test. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/test/gpu/gpu_tests/context_lost.py
diff --git a/content/test/gpu/gpu_tests/context_lost.py b/content/test/gpu/gpu_tests/context_lost.py
index 342558a9b2709cc90d84b673288e1fa832a87d16..64e4f5b4dc0890de6f19eed920095b67c41bea58 100644
--- a/content/test/gpu/gpu_tests/context_lost.py
+++ b/content/test/gpu/gpu_tests/context_lost.py
@@ -50,38 +50,53 @@ class _ContextLostValidator(page_test.PageTest):
def CustomizeBrowserOptions(self, options):
options.AppendExtraBrowserArgs(
'--disable-domain-blocking-for-3d-apis')
+ options.AppendExtraBrowserArgs(
+ '--disable-gpu-process-crash-limit')
# Required for about:gpucrash handling from Telemetry.
options.AppendExtraBrowserArgs('--enable-gpu-benchmarking')
def ValidatePage(self, page, tab, results):
if page.kill_gpu_process:
- if not tab.browser.supports_tab_control:
- raise page_test.Failure('Browser must support tab control')
- # Crash the GPU process.
- new_tab = tab.browser.tabs.New()
- # To access these debug URLs from Telemetry, they have to be
- # written using the chrome:// scheme.
- new_tab.Navigate('chrome://gpucrash')
- # Activate the original tab and wait for completion.
- tab.Activate()
- completed = False
- try:
- util.WaitFor(lambda: tab.EvaluateJavaScript(
- 'window.domAutomationController._finished'), wait_timeout)
- completed = True
- except util.TimeoutException:
- pass
- new_tab.Close()
- if not completed:
- raise page_test.Failure(
- 'Test didn\'t complete (no context lost event?)')
- if not tab.EvaluateJavaScript('window.domAutomationController._succeeded'):
- raise page_test.Failure('Test failed (context not restored properly?)')
+ # Doing the GPU process kill operation cooperatively -- in the
+ # same page's context -- is much more stressful than restarting
+ # the browser every time.
+ for x in range(page.number_of_gpu_process_kills):
+ if not tab.browser.supports_tab_control:
+ raise page_test.Failure('Browser must support tab control')
+ # Reset the test's state.
+ tab.EvaluateJavaScript(
+ 'window.domAutomationController._succeeded = false');
+ tab.EvaluateJavaScript(
+ 'window.domAutomationController._finished = false');
+ # Crash the GPU process.
+ new_tab = tab.browser.tabs.New()
+ # To access these debug URLs from Telemetry, they have to be
+ # written using the chrome:// scheme.
+ new_tab.Navigate('chrome://gpucrash')
+ # Activate the original tab and wait for completion.
+ tab.Activate()
+ completed = False
+ try:
+ util.WaitFor(lambda: tab.EvaluateJavaScript(
+ 'window.domAutomationController._finished'), wait_timeout)
+ completed = True
+ except util.TimeoutException:
+ pass
+ new_tab.Close()
+ if not completed:
+ raise page_test.Failure(
+ 'Test didn\'t complete (no context lost event?)')
+ if not tab.EvaluateJavaScript(
+ 'window.domAutomationController._succeeded'):
+ raise page_test.Failure(
+ 'Test failed (context not restored properly?)')
class ContextLost(test_module.Test):
enabled = True
test = _ContextLostValidator
-
+ # For the record, this would have been another way to get the pages
+ # to repeat. pageset_repeat would be another option.
+ # options = {'page_repeat': 5}
def CreatePageSet(self, options):
page_set_dict = {
'description': 'Test cases for real and synthetic context lost events',
@@ -97,7 +112,8 @@ class ContextLost(test_module.Test):
{ 'action': 'wait',
'javascript': 'window.domAutomationController._loaded' }
],
- 'kill_gpu_process': True
+ 'kill_gpu_process': True,
+ 'number_of_gpu_process_kills': 30,
},
{
'name': 'ContextLost.WebGLContextLostFromLoseContextExtension',
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698