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

Side by Side Diff: ppapi/native_client/tools/browser_tester/browser_tester.py

Issue 11818007: Breakpad: Add a test for crashes in the browser process (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review changes Created 7 years, 11 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
« no previous file with comments | « ppapi/native_client/tests/breakpad_crash_test/nacl.scons ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import glob 6 import glob
7 import optparse 7 import optparse
8 import os.path 8 import os.path
9 import socket 9 import socket
10 import sys 10 import sys
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 help='Enable/disable PPAPI Dev interfaces while testing.') 124 help='Enable/disable PPAPI Dev interfaces while testing.')
125 parser.add_option('--nacl_exe_stdin', dest='nacl_exe_stdin', 125 parser.add_option('--nacl_exe_stdin', dest='nacl_exe_stdin',
126 type='string', default=None, 126 type='string', default=None,
127 help='Redirect standard input of NaCl executable.') 127 help='Redirect standard input of NaCl executable.')
128 parser.add_option('--nacl_exe_stdout', dest='nacl_exe_stdout', 128 parser.add_option('--nacl_exe_stdout', dest='nacl_exe_stdout',
129 type='string', default=None, 129 type='string', default=None,
130 help='Redirect standard output of NaCl executable.') 130 help='Redirect standard output of NaCl executable.')
131 parser.add_option('--nacl_exe_stderr', dest='nacl_exe_stderr', 131 parser.add_option('--nacl_exe_stderr', dest='nacl_exe_stderr',
132 type='string', default=None, 132 type='string', default=None,
133 help='Redirect standard error of NaCl executable.') 133 help='Redirect standard error of NaCl executable.')
134 parser.add_option('--expect_browser_process_crash',
135 dest='expect_browser_process_crash',
136 action='store_true',
137 help='Do not signal a failure if the browser process '
138 'crashes')
134 139
135 return parser 140 return parser
136 141
137 142
138 def ProcessToolLogs(options, logs_dir): 143 def ProcessToolLogs(options, logs_dir):
139 if options.tool == 'memcheck': 144 if options.tool == 'memcheck':
140 analyzer = memcheck_analyze.MemcheckAnalyzer('', use_gdb=True) 145 analyzer = memcheck_analyze.MemcheckAnalyzer('', use_gdb=True)
141 logs_wildcard = 'xml.*' 146 logs_wildcard = 'xml.*'
142 elif options.tool == 'tsan': 147 elif options.tool == 'tsan':
143 analyzer = tsan_analyze.TsanAnalyzer('', use_gdb=True) 148 analyzer = tsan_analyze.TsanAnalyzer('', use_gdb=True)
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 249
245 tool_failed = False 250 tool_failed = False
246 time_started = time.time() 251 time_started = time.time()
247 252
248 def HardTimeout(total_time): 253 def HardTimeout(total_time):
249 return total_time >= 0.0 and time.time() - time_started >= total_time 254 return total_time >= 0.0 and time.time() - time_started >= total_time
250 255
251 try: 256 try:
252 while server.test_in_progress or options.interactive: 257 while server.test_in_progress or options.interactive:
253 if not browser.IsRunning(): 258 if not browser.IsRunning():
259 if options.expect_browser_process_crash:
260 break
254 listener.ServerError('Browser process ended during test ' 261 listener.ServerError('Browser process ended during test '
255 '(return code %r)' % browser.GetReturnCode()) 262 '(return code %r)' % browser.GetReturnCode())
256 # If Chrome exits prematurely without making a single request to the 263 # If Chrome exits prematurely without making a single request to the
257 # web server, this is probally a Chrome crash-on-launch bug not related 264 # web server, this is probally a Chrome crash-on-launch bug not related
258 # to the test at hand. Retry, unless we're in interactive mode. In 265 # to the test at hand. Retry, unless we're in interactive mode. In
259 # interactive mode the user may manually close the browser, so don't 266 # interactive mode the user may manually close the browser, so don't
260 # retry (it would just be annoying.) 267 # retry (it would just be annoying.)
261 if not server.received_request and not options.interactive: 268 if not server.received_request and not options.interactive:
262 raise RetryTest('Chrome failed to launch.') 269 raise RetryTest('Chrome failed to launch.')
263 else: 270 else:
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 # Validate the URL 349 # Validate the URL
343 url = options.url 350 url = options.url
344 if url is None: 351 if url is None:
345 parser.error('Must specify a URL') 352 parser.error('Must specify a URL')
346 353
347 return Run(url, options) 354 return Run(url, options)
348 355
349 356
350 if __name__ == '__main__': 357 if __name__ == '__main__':
351 sys.exit(RunFromCommandLine()) 358 sys.exit(RunFromCommandLine())
OLDNEW
« no previous file with comments | « ppapi/native_client/tests/breakpad_crash_test/nacl.scons ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698