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

Side by Side Diff: scripts/slave/runtest.py

Issue 9601021: Add testing library to running tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build/
Patch Set: Rebase and add a TODO for the item under discussion Created 8 years, 9 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 | « scripts/master/factory/chromium_factory.py ('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/env python 1 #!/usr/bin/env 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 """A tool to run a chrome test executable, used by the buildbot slaves. 6 """A tool to run a chrome test executable, used by the buildbot slaves.
7 7
8 When this is run, the current directory (cwd) should be the outer build 8 When this is run, the current directory (cwd) should be the outer build
9 directory (e.g., chrome-release/build/). 9 directory (e.g., chrome-release/build/).
10 10
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 # file attributes), and we'd rather have no sandbox than pull in an old 308 # file attributes), and we'd rather have no sandbox than pull in an old
309 # (possibly incompatible) one from the system. 309 # (possibly incompatible) one from the system.
310 os.environ['CHROME_DEVEL_SANDBOX'] = '' 310 os.environ['CHROME_DEVEL_SANDBOX'] = ''
311 311
312 # Nuke anything that appears to be stale chrome items in the temporary 312 # Nuke anything that appears to be stale chrome items in the temporary
313 # directory from previous test runs (i.e.- from crashes or unittest leaks). 313 # directory from previous test runs (i.e.- from crashes or unittest leaks).
314 slave_utils.RemoveChromeTemporaryFiles() 314 slave_utils.RemoveChromeTemporaryFiles()
315 315
316 os.environ['LD_LIBRARY_PATH'] = '%s:%s/lib:%s/lib.target' % (bin_dir, bin_dir, 316 os.environ['LD_LIBRARY_PATH'] = '%s:%s/lib:%s/lib.target' % (bin_dir, bin_dir,
317 bin_dir) 317 bin_dir)
318 # Figure out what we want for a special llvmpipe directory.
319 if (options.llvmpipe_dir and os.path.exists(options.llvmpipe_dir)):
320 os.environ['LD_LIBRARY_PATH'] += ':' + options.llvmpipe_dir
321
318 if options.parallel: 322 if options.parallel:
319 supervisor_path = os.path.join(build_dir, '..', 'tools', 323 supervisor_path = os.path.join(build_dir, '..', 'tools',
320 'sharding_supervisor', 324 'sharding_supervisor',
321 'sharding_supervisor.py') 325 'sharding_supervisor.py')
322 supervisor_args = ['--no-color', '--retry-failed'] 326 supervisor_args = ['--no-color', '--retry-failed']
323 if options.sharding_args: 327 if options.sharding_args:
324 supervisor_args.extend(options.sharding_args.split()) 328 supervisor_args.extend(options.sharding_args.split())
325 command = [sys.executable, supervisor_path] 329 command = [sys.executable, supervisor_path]
326 command.extend(supervisor_args) 330 command.extend(supervisor_args)
327 command.append(test_exe_path) 331 command.append(test_exe_path)
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 if options.enable_pageheap: 437 if options.enable_pageheap:
434 slave_utils.SetPageHeap(build_dir, 'chrome.exe', False) 438 slave_utils.SetPageHeap(build_dir, 'chrome.exe', False)
435 439
436 if options.generate_json_file: 440 if options.generate_json_file:
437 _GenerateJSONForTestResults(options, results_tracker) 441 _GenerateJSONForTestResults(options, results_tracker)
438 442
439 return result 443 return result
440 444
441 445
442 def main(): 446 def main():
447 import platform
448
449 xvfb_path = os.path.join(os.path.dirname(sys.argv[0]), '..', '..',
450 'third_party', 'xvfb', platform.architecture()[0])
451
443 # Initialize logging. 452 # Initialize logging.
444 log_level = logging.INFO 453 log_level = logging.INFO
445 logging.basicConfig(level=log_level, 454 logging.basicConfig(level=log_level,
446 format='%(asctime)s %(filename)s:%(lineno)-3d' 455 format='%(asctime)s %(filename)s:%(lineno)-3d'
447 ' %(levelname)s %(message)s', 456 ' %(levelname)s %(message)s',
448 datefmt='%y%m%d %H:%M:%S') 457 datefmt='%y%m%d %H:%M:%S')
449 458
450 option_parser = optparse.OptionParser(usage=USAGE) 459 option_parser = optparse.OptionParser(usage=USAGE)
451 460
452 # Since the trailing program to run may have has command-line args of its 461 # Since the trailing program to run may have has command-line args of its
(...skipping 27 matching lines...) Expand all
480 option_parser.add_option('', '--run-python-script', action='store_true', 489 option_parser.add_option('', '--run-python-script', action='store_true',
481 default=False, 490 default=False,
482 help='treat first argument as a python script' 491 help='treat first argument as a python script'
483 'to run.') 492 'to run.')
484 option_parser.add_option('', '--generate-json-file', action='store_true', 493 option_parser.add_option('', '--generate-json-file', action='store_true',
485 default=False, 494 default=False,
486 help='output JSON results file if specified.') 495 help='output JSON results file if specified.')
487 option_parser.add_option('', '--parallel', action='store_true', 496 option_parser.add_option('', '--parallel', action='store_true',
488 help='Shard and run tests in parallel for speed ' 497 help='Shard and run tests in parallel for speed '
489 'with sharding_supervisor.') 498 'with sharding_supervisor.')
490 option_parser.add_option('', '--special-xvfb-dir', default=os.path.join( 499 option_parser.add_option('', '--llvmpipe', action='store_const',
491 os.path.dirname(sys.argv[0]), '..', '..', 'xvfb'), 500 value=xvfb_path, dest='llvmpipe_dir',
501 help='Use software gpu pipe directory.')
502 option_parser.add_option('', '--no-llvmpipe', action='store_false',
503 value=None, dest='llvmpipe_dir',
504 help='Do not use software gpu pipe directory.')
505 option_parser.add_option('', '--llvmpipe-dir',
506 default=None, dest='llvmpipe_dir',
507 help='Path to software gpu library directory.')
508 option_parser.add_option('', '--special-xvfb-dir', default=xvfb_path,
492 help='Path to virtual X server directory on Linux.') 509 help='Path to virtual X server directory on Linux.')
493 option_parser.add_option('', '--special-xvfb', action='store_true', 510 option_parser.add_option('', '--special-xvfb', action='store_true',
494 default='auto', 511 default='auto',
495 help='use non-default virtual X server on Linux.') 512 help='use non-default virtual X server on Linux.')
496 option_parser.add_option('', '--no-special-xvfb', action='store_false', 513 option_parser.add_option('', '--no-special-xvfb', action='store_false',
497 dest='special_xvfb', 514 dest='special_xvfb',
498 help='Use default virtual X server on Linux.') 515 help='Use default virtual X server on Linux.')
499 option_parser.add_option('', '--auto-special-xvfb', action='store_const', 516 option_parser.add_option('', '--auto-special-xvfb', action='store_const',
500 const='auto', dest='special_xvfb', 517 const='auto', dest='special_xvfb',
501 help='Guess as to virtual X server on Linux.') 518 help='Guess as to virtual X server on Linux.')
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 '%d new files were left in %s: Fix the tests to clean up themselves.' 591 '%d new files were left in %s: Fix the tests to clean up themselves.'
575 ) % ((new_temp_files - temp_files), tempfile.gettempdir()) 592 ) % ((new_temp_files - temp_files), tempfile.gettempdir())
576 # TODO(maruel): Make it an error soon. Not yet since I want to iron out all 593 # TODO(maruel): Make it an error soon. Not yet since I want to iron out all
577 # the remaining cases before. 594 # the remaining cases before.
578 #result = 1 595 #result = 1
579 return result 596 return result
580 597
581 598
582 if '__main__' == __name__: 599 if '__main__' == __name__:
583 sys.exit(main()) 600 sys.exit(main())
OLDNEW
« no previous file with comments | « scripts/master/factory/chromium_factory.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698