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

Side by Side Diff: native_client_sdk/src/build_tools/test_projects.py

Issue 720233003: [NaCl SDK] Convert python scripts from optparse to argparse. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
OLDNEW
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
17 from build_paths import OUT_DIR, SRC_DIR, SDK_SRC_DIR, SCRIPT_DIR 17 from build_paths import OUT_DIR, SRC_DIR, SDK_SRC_DIR, SCRIPT_DIR
18 18
19 sys.path.append(os.path.join(SDK_SRC_DIR, 'tools')) 19 sys.path.append(os.path.join(SDK_SRC_DIR, 'tools'))
20 import getos 20 import getos
21 platform = getos.GetPlatform() 21 platform = getos.GetPlatform()
22 22
23 # TODO(binji): ugly hack -- can I get the browser in a cleaner way? 23 # TODO(binji): ugly hack -- can I get the browser in a cleaner way?
24 sys.path.append(os.path.join(SRC_DIR, 'chrome', 'test', 'nacl_test_injection')) 24 sys.path.append(os.path.join(SRC_DIR, 'chrome', 'test', 'nacl_test_injection'))
25 import find_chrome 25 import find_chrome
26 browser_path = find_chrome.FindChrome(SRC_DIR, ['Debug', 'Release']) 26 browser_path = find_chrome.FindChrome(SRC_DIR, ['Debug', 'Release'])
27 27
28 # Fall back to using CHROME_PATH (same as in common.mk) 28 # Fall back to using CHROME_PATH (same as in common.mk)
29 if not browser_path: 29 if not browser_path:
30 browser_path = os.environ['CHROME_PATH'] 30 browser_path = os.environ.get('CHROME_PATH')
31 31
32 32
33 pepper_ver = str(int(build_version.ChromeMajorVersion())) 33 pepper_ver = str(int(build_version.ChromeMajorVersion()))
34 pepperdir = os.path.join(OUT_DIR, 'pepper_' + pepper_ver) 34 pepperdir = os.path.join(OUT_DIR, 'pepper_' + pepper_ver)
35 35
36 browser_tester_py = os.path.join(SRC_DIR, 'ppapi', 'native_client', 'tools', 36 browser_tester_py = os.path.join(SRC_DIR, 'ppapi', 'native_client', 'tools',
37 'browser_tester', 'browser_tester.py') 37 'browser_tester', 'browser_tester.py')
38 38
39 39
40 ALL_CONFIGS = ['Debug', 'Release'] 40 ALL_CONFIGS = ['Debug', 'Release']
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 # Everything in src is a library, and cannot be run. 306 # Everything in src is a library, and cannot be run.
307 exclude = {'DEST': 'src'} 307 exclude = {'DEST': 'src'}
308 try: 308 try:
309 return parse_dsc.LoadProjectTree(SDK_SRC_DIR, include=include, 309 return parse_dsc.LoadProjectTree(SDK_SRC_DIR, include=include,
310 exclude=exclude) 310 exclude=exclude)
311 except parse_dsc.ValidationError as e: 311 except parse_dsc.ValidationError as e:
312 buildbot_common.ErrorExit(str(e)) 312 buildbot_common.ErrorExit(str(e))
313 313
314 314
315 def main(args): 315 def main(args):
316 parser = optparse.OptionParser() 316 parser = argparse.ArgumentParser(description=__doc__)
317 parser.add_option('-c', '--config', 317 parser.add_argument('-c', '--config',
318 help='Choose configuration to run (Debug or Release). Runs both ' 318 help='Choose configuration to run (Debug or Release). Runs both '
319 'by default', action='append') 319 'by default', action='append')
320 parser.add_option('-x', '--experimental', 320 parser.add_argument('-x', '--experimental',
321 help='Run experimental projects', action='store_true') 321 help='Run experimental projects', action='store_true')
322 parser.add_option('-t', '--toolchain', 322 parser.add_argument('-t', '--toolchain',
323 help='Run using toolchain. Can be passed more than once.', 323 help='Run using toolchain. Can be passed more than once.',
324 action='append', default=[]) 324 action='append', default=[])
325 parser.add_option('-d', '--dest', 325 parser.add_argument('-d', '--dest',
326 help='Select which destinations (project types) are valid.', 326 help='Select which destinations (project types) are valid.',
327 action='append') 327 action='append')
328 parser.add_option('-b', '--build', 328 parser.add_argument('-b', '--build',
329 help='Build each project before testing.', action='store_true') 329 help='Build each project before testing.', action='store_true')
330 parser.add_option('--retry-times', 330 parser.add_argument('--retry-times',
331 help='Number of types to retry on failure (Default: %default)', 331 help='Number of types to retry on failure (Default: %default)',
332 type='int', default=1) 332 type=int, default=1)
333 parser.add_argument('projects', nargs='*')
333 334
334 options, args = parser.parse_args(args) 335 options = parser.parse_args(args)
335 336
336 if not options.toolchain: 337 if not options.toolchain:
337 options.toolchain = ['newlib', 'glibc', 'pnacl', 'host'] 338 options.toolchain = ['newlib', 'glibc', 'pnacl', 'host']
338 339
339 if 'host' in options.toolchain: 340 if 'host' in options.toolchain:
340 options.toolchain.remove('host') 341 options.toolchain.remove('host')
341 options.toolchain.append(platform) 342 options.toolchain.append(platform)
342 print 'Adding platform: ' + platform 343 print 'Adding platform: ' + platform
343 344
344 ValidateToolchains(options.toolchain) 345 ValidateToolchains(options.toolchain)
345 346
346 include = {} 347 include = {}
347 if options.toolchain: 348 if options.toolchain:
348 include['TOOLS'] = options.toolchain 349 include['TOOLS'] = options.toolchain
349 print 'Filter by toolchain: ' + str(options.toolchain) 350 print 'Filter by toolchain: ' + str(options.toolchain)
350 if not options.experimental: 351 if not options.experimental:
351 include['EXPERIMENTAL'] = False 352 include['EXPERIMENTAL'] = False
352 if options.dest: 353 if options.dest:
353 include['DEST'] = options.dest 354 include['DEST'] = options.dest
354 print 'Filter by type: ' + str(options.dest) 355 print 'Filter by type: ' + str(options.dest)
355 if args: 356 if options.projects:
356 include['NAME'] = args 357 include['NAME'] = options.projects
357 print 'Filter by name: ' + str(args) 358 print 'Filter by name: ' + str(options.projects)
358 if not options.config: 359 if not options.config:
359 options.config = ALL_CONFIGS 360 options.config = ALL_CONFIGS
360 361
361 project_tree = GetProjectTree(include) 362 project_tree = GetProjectTree(include)
362 if options.build: 363 if options.build:
363 BuildAllTestsInTree(project_tree, options.toolchain, options.config) 364 BuildAllTestsInTree(project_tree, options.toolchain, options.config)
364 365
365 return RunAllTestsInTree(project_tree, options.toolchain, options.config, 366 return RunAllTestsInTree(project_tree, options.toolchain, options.config,
366 options.retry_times) 367 options.retry_times)
367 368
368 369
369 if __name__ == '__main__': 370 if __name__ == '__main__':
370 script_name = os.path.basename(sys.argv[0]) 371 script_name = os.path.basename(sys.argv[0])
371 try: 372 try:
372 sys.exit(main(sys.argv[1:])) 373 sys.exit(main(sys.argv[1:]))
373 except parse_dsc.ValidationError as e: 374 except parse_dsc.ValidationError as e:
374 buildbot_common.ErrorExit('%s: %s' % (script_name, e)) 375 buildbot_common.ErrorExit('%s: %s' % (script_name, e))
375 except KeyboardInterrupt: 376 except KeyboardInterrupt:
376 buildbot_common.ErrorExit('%s: interrupted' % script_name) 377 buildbot_common.ErrorExit('%s: interrupted' % script_name)
OLDNEW
« no previous file with comments | « native_client_sdk/src/build_tools/parse_dsc.py ('k') | native_client_sdk/src/build_tools/test_sdk.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698