OLD | NEW |
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 |
11 import thread | 11 import thread |
12 import time | 12 import time |
13 import urllib | 13 import urllib |
14 | 14 |
15 # Allow the import of third party modules | 15 # Allow the import of third party modules |
16 script_dir = os.path.dirname(os.path.abspath(__file__)) | 16 script_dir = os.path.dirname(os.path.abspath(__file__)) |
17 sys.path.append(os.path.join(script_dir, '../../../../third_party/')) | 17 sys.path.append(os.path.join(script_dir, '../../../../third_party/')) |
18 sys.path.append(os.path.join(script_dir, '../../../../tools/valgrind/')) | 18 sys.path.append(os.path.join(script_dir, '../../../../tools/valgrind/')) |
| 19 sys.path.append(os.path.join(script_dir, '../../../../testing/')) |
19 | 20 |
20 import browsertester.browserlauncher | 21 import browsertester.browserlauncher |
21 import browsertester.rpclistener | 22 import browsertester.rpclistener |
22 import browsertester.server | 23 import browsertester.server |
23 | 24 |
24 import memcheck_analyze | 25 import memcheck_analyze |
25 import tsan_analyze | 26 import tsan_analyze |
26 | 27 |
| 28 import test_env |
| 29 |
27 def BuildArgParser(): | 30 def BuildArgParser(): |
28 usage = 'usage: %prog [options]' | 31 usage = 'usage: %prog [options]' |
29 parser = optparse.OptionParser(usage) | 32 parser = optparse.OptionParser(usage) |
30 | 33 |
31 parser.add_option('-p', '--port', dest='port', action='store', type='int', | 34 parser.add_option('-p', '--port', dest='port', action='store', type='int', |
32 default='0', help='The TCP port the server will bind to. ' | 35 default='0', help='The TCP port the server will bind to. ' |
33 'The default is to pick an unused port number.') | 36 'The default is to pick an unused port number.') |
34 parser.add_option('--browser_path', dest='browser_path', action='store', | 37 parser.add_option('--browser_path', dest='browser_path', action='store', |
35 type='string', default=None, | 38 type='string', default=None, |
36 help='Use the browser located here.') | 39 help='Use the browser located here.') |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 # Set the default here so we're assured hard_timeout will be defined. | 193 # Set the default here so we're assured hard_timeout will be defined. |
191 # Tests, such as run_inbrowser_trusted_crash_in_startup_test, may not use the | 194 # Tests, such as run_inbrowser_trusted_crash_in_startup_test, may not use the |
192 # RunFromCommand line entry point - and otherwise get stuck in an infinite | 195 # RunFromCommand line entry point - and otherwise get stuck in an infinite |
193 # loop when something goes wrong and the hard timeout is not set. | 196 # loop when something goes wrong and the hard timeout is not set. |
194 # http://code.google.com/p/chromium/issues/detail?id=105406 | 197 # http://code.google.com/p/chromium/issues/detail?id=105406 |
195 if options.hard_timeout is None: | 198 if options.hard_timeout is None: |
196 options.hard_timeout = options.timeout * 4 | 199 options.hard_timeout = options.timeout * 4 |
197 | 200 |
198 options.files.append(os.path.join(script_dir, 'browserdata', 'nacltest.js')) | 201 options.files.append(os.path.join(script_dir, 'browserdata', 'nacltest.js')) |
199 | 202 |
| 203 # Setup the environment with the setuid sandbox path. |
| 204 test_env.enable_sandbox_if_required(os.environ) |
| 205 |
200 # Create server | 206 # Create server |
201 host = GetHostName() | 207 host = GetHostName() |
202 try: | 208 try: |
203 server = browsertester.server.Create(host, options.port) | 209 server = browsertester.server.Create(host, options.port) |
204 except Exception: | 210 except Exception: |
205 sys.stdout.write('Could not bind %r, falling back to localhost.\n' % host) | 211 sys.stdout.write('Could not bind %r, falling back to localhost.\n' % host) |
206 server = browsertester.server.Create('localhost', options.port) | 212 server = browsertester.server.Create('localhost', options.port) |
207 | 213 |
208 # If port 0 has been requested, an arbitrary port will be bound so we need to | 214 # If port 0 has been requested, an arbitrary port will be bound so we need to |
209 # query it. Older version of Python do not set server_address correctly when | 215 # query it. Older version of Python do not set server_address correctly when |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 # Validate the URL | 364 # Validate the URL |
359 url = options.url | 365 url = options.url |
360 if url is None: | 366 if url is None: |
361 parser.error('Must specify a URL') | 367 parser.error('Must specify a URL') |
362 | 368 |
363 return Run(url, options) | 369 return Run(url, options) |
364 | 370 |
365 | 371 |
366 if __name__ == '__main__': | 372 if __name__ == '__main__': |
367 sys.exit(RunFromCommandLine()) | 373 sys.exit(RunFromCommandLine()) |
OLD | NEW |