Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2013 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 optparse | 6 import argparse |
| 7 import os | 7 import os |
| 8 import subprocess | 8 import subprocess |
| 9 import sys | 9 import sys |
| 10 import time | 10 import time |
| 11 | 11 |
| 12 import build_projects | 12 import build_projects |
| 13 import build_version | 13 import build_version |
| 14 import buildbot_common | 14 import buildbot_common |
| 15 import parse_dsc | 15 import parse_dsc |
| 16 | 16 |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 302 # Everything in src is a library, and cannot be run. | 302 # Everything in src is a library, and cannot be run. |
| 303 exclude = {'DEST': 'src'} | 303 exclude = {'DEST': 'src'} |
| 304 try: | 304 try: |
| 305 return parse_dsc.LoadProjectTree(SDK_SRC_DIR, include=include, | 305 return parse_dsc.LoadProjectTree(SDK_SRC_DIR, include=include, |
| 306 exclude=exclude) | 306 exclude=exclude) |
| 307 except parse_dsc.ValidationError as e: | 307 except parse_dsc.ValidationError as e: |
| 308 buildbot_common.ErrorExit(str(e)) | 308 buildbot_common.ErrorExit(str(e)) |
| 309 | 309 |
| 310 | 310 |
| 311 def main(args): | 311 def main(args): |
| 312 parser = optparse.OptionParser() | 312 parser = argparse.ArgumentParser(description=__doc__) |
| 313 parser.add_option('-c', '--config', | 313 parser.add_argument('-c', '--config', |
| 314 help='Choose configuration to run (Debug or Release). Runs both ' | 314 help='Choose configuration to run (Debug or Release). Runs both ' |
| 315 'by default', action='append') | 315 'by default', action='append') |
| 316 parser.add_option('-x', '--experimental', | 316 parser.add_argument('-x', '--experimental', |
| 317 help='Run experimental projects', action='store_true') | 317 help='Run experimental projects', action='store_true') |
| 318 parser.add_option('-t', '--toolchain', | 318 parser.add_argument('-t', '--toolchain', |
| 319 help='Run using toolchain. Can be passed more than once.', | 319 help='Run using toolchain. Can be passed more than once.', |
| 320 action='append', default=[]) | 320 action='append', default=[]) |
| 321 parser.add_option('-d', '--dest', | 321 parser.add_argument('-d', '--dest', |
| 322 help='Select which destinations (project types) are valid.', | 322 help='Select which destinations (project types) are valid.', |
| 323 action='append') | 323 action='append') |
| 324 parser.add_option('-b', '--build', | 324 parser.add_argument('-b', '--build', |
| 325 help='Build each project before testing.', action='store_true') | 325 help='Build each project before testing.', action='store_true') |
| 326 parser.add_option('--retry-times', | 326 parser.add_argument('--retry-times', |
| 327 help='Number of types to retry on failure (Default: %default)', | 327 help='Number of types to retry on failure (Default: %default)', |
| 328 type='int', default=1) | 328 type='int', default=1) |
| 329 parser.add_argument('projects') | |
|
binji
2014/11/13 23:57:02
nargs='*'
Sam Clegg
2014/11/30 17:55:11
Done.
| |
| 329 | 330 |
| 330 options, args = parser.parse_args(args[1:]) | 331 options = parser.parse_args(args) |
| 331 | 332 |
| 332 if not options.toolchain: | 333 if not options.toolchain: |
| 333 options.toolchain = ['newlib', 'glibc', 'pnacl', 'host'] | 334 options.toolchain = ['newlib', 'glibc', 'pnacl', 'host'] |
| 334 | 335 |
| 335 if 'host' in options.toolchain: | 336 if 'host' in options.toolchain: |
| 336 options.toolchain.remove('host') | 337 options.toolchain.remove('host') |
| 337 options.toolchain.append(platform) | 338 options.toolchain.append(platform) |
| 338 print 'Adding platform: ' + platform | 339 print 'Adding platform: ' + platform |
| 339 | 340 |
| 340 ValidateToolchains(options.toolchain) | 341 ValidateToolchains(options.toolchain) |
| 341 | 342 |
| 342 include = {} | 343 include = {} |
| 343 if options.toolchain: | 344 if options.toolchain: |
| 344 include['TOOLS'] = options.toolchain | 345 include['TOOLS'] = options.toolchain |
| 345 print 'Filter by toolchain: ' + str(options.toolchain) | 346 print 'Filter by toolchain: ' + str(options.toolchain) |
| 346 if not options.experimental: | 347 if not options.experimental: |
| 347 include['EXPERIMENTAL'] = False | 348 include['EXPERIMENTAL'] = False |
| 348 if options.dest: | 349 if options.dest: |
| 349 include['DEST'] = options.dest | 350 include['DEST'] = options.dest |
| 350 print 'Filter by type: ' + str(options.dest) | 351 print 'Filter by type: ' + str(options.dest) |
| 351 if args: | 352 if options.projects: |
| 352 include['NAME'] = args | 353 include['NAME'] = options.projects |
| 353 print 'Filter by name: ' + str(args) | 354 print 'Filter by name: ' + str(options.projects) |
| 354 if not options.config: | 355 if not options.config: |
| 355 options.config = ALL_CONFIGS | 356 options.config = ALL_CONFIGS |
| 356 | 357 |
| 357 project_tree = GetProjectTree(include) | 358 project_tree = GetProjectTree(include) |
| 358 if options.build: | 359 if options.build: |
| 359 BuildAllTestsInTree(project_tree, options.toolchain, options.config) | 360 BuildAllTestsInTree(project_tree, options.toolchain, options.config) |
| 360 | 361 |
| 361 return RunAllTestsInTree(project_tree, options.toolchain, options.config, | 362 return RunAllTestsInTree(project_tree, options.toolchain, options.config, |
| 362 options.retry_times) | 363 options.retry_times) |
| 363 | 364 |
| 364 | 365 |
| 365 if __name__ == '__main__': | 366 if __name__ == '__main__': |
| 366 script_name = os.path.basename(sys.argv[0]) | 367 script_name = os.path.basename(sys.argv[0]) |
| 367 try: | 368 try: |
| 368 sys.exit(main(sys.argv)) | 369 sys.exit(main(sys.argv[1:])) |
| 369 except parse_dsc.ValidationError as e: | 370 except parse_dsc.ValidationError as e: |
| 370 buildbot_common.ErrorExit('%s: %s' % (script_name, e)) | 371 buildbot_common.ErrorExit('%s: %s' % (script_name, e)) |
| 371 except KeyboardInterrupt: | 372 except KeyboardInterrupt: |
| 372 buildbot_common.ErrorExit('%s: interrupted' % script_name) | 373 buildbot_common.ErrorExit('%s: interrupted' % script_name) |
| OLD | NEW |