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

Side by Side Diff: build/android/pylib/test_options_parser.py

Issue 10917283: Upstream changes to python tests. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 3 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
« no previous file with comments | « build/android/pylib/run_python_tests.py ('k') | build/android/run_instrumentation_tests.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Parses options for the instrumentation tests.""" 5 """Parses options for the instrumentation tests."""
6 6
7 import constants 7 import constants
8 import optparse 8 import optparse
9 import os 9 import os
10 10
11 _SDK_OUT_DIR = os.path.join(constants.CHROME_DIR, 'out') 11 _SDK_OUT_DIR = os.path.join(constants.CHROME_DIR, 'out')
12 12
13 13
14 def AddBuildTypeOption(option_parser): 14 def AddBuildTypeOption(option_parser):
15 """Decorates OptionParser with build type option."""
15 default_build_type = 'Debug' 16 default_build_type = 'Debug'
16 if 'BUILDTYPE' in os.environ: 17 if 'BUILDTYPE' in os.environ:
17 default_build_type = os.environ['BUILDTYPE'] 18 default_build_type = os.environ['BUILDTYPE']
18 option_parser.add_option('--debug', action='store_const', const='Debug', 19 option_parser.add_option('--debug', action='store_const', const='Debug',
19 dest='build_type', default=default_build_type, 20 dest='build_type', default=default_build_type,
20 help='If set, run test suites under out/Debug. ' 21 help='If set, run test suites under out/Debug. '
21 'Default is env var BUILDTYPE or Debug') 22 'Default is env var BUILDTYPE or Debug')
22 option_parser.add_option('--release', action='store_const', const='Release', 23 option_parser.add_option('--release', action='store_const', const='Release',
23 dest='build_type', 24 dest='build_type',
24 help='If set, run test suites under out/Release. ' 25 help='If set, run test suites under out/Release. '
25 'Default is env var BUILDTYPE or Debug.') 26 'Default is env var BUILDTYPE or Debug.')
26 27
27 28
28 def CreateTestRunnerOptionParser(usage=None, default_timeout=60): 29 def AddTestRunnerOptions(option_parser, default_timeout=60):
29 """Returns a new OptionParser with arguments applicable to all tests.""" 30 """Decorates OptionParser with options applicable to all tests."""
30 option_parser = optparse.OptionParser(usage=usage) 31
31 option_parser.add_option('-t', dest='timeout', 32 option_parser.add_option('-t', dest='timeout',
32 help='Timeout to wait for each test', 33 help='Timeout to wait for each test',
33 type='int', 34 type='int',
34 default=default_timeout) 35 default=default_timeout)
35 option_parser.add_option('-c', dest='cleanup_test_files', 36 option_parser.add_option('-c', dest='cleanup_test_files',
36 help='Cleanup test files on the device after run', 37 help='Cleanup test files on the device after run',
37 action='store_true') 38 action='store_true')
38 option_parser.add_option('-v', 39 option_parser.add_option('-v',
39 '--verbose', 40 '--verbose',
40 dest='verbose_count', 41 dest='verbose_count',
41 default=0, 42 default=0,
42 action='count', 43 action='count',
43 help='Verbose level (multiple times for more)') 44 help='Verbose level (multiple times for more)')
44 profilers = ['devicestatsmonitor', 'chrometrace', 'dumpheap', 'smaps', 45 profilers = ['devicestatsmonitor', 'chrometrace', 'dumpheap', 'smaps',
45 'traceview'] 46 'traceview']
46 option_parser.add_option('--profiler', dest='profilers', action='append', 47 option_parser.add_option('--profiler', dest='profilers', action='append',
47 choices=profilers, 48 choices=profilers,
48 help='Profiling tool to run during test. ' 49 help='Profiling tool to run during test. '
49 'Pass multiple times to run multiple profilers. ' 50 'Pass multiple times to run multiple profilers. '
50 'Available profilers: %s' % profilers) 51 'Available profilers: %s' % profilers)
51 option_parser.add_option('--tool', 52 option_parser.add_option('--tool',
52 dest='tool', 53 dest='tool',
53 help='Run the test under a tool ' 54 help='Run the test under a tool '
54 '(use --tool help to list them)') 55 '(use --tool help to list them)')
55 AddBuildTypeOption(option_parser) 56 AddBuildTypeOption(option_parser)
56 return option_parser
57 57
58 58
59 def ParseInstrumentationArgs(args): 59 def AddInstrumentationOptions(option_parser):
60 """Parse arguments and return options with defaults.""" 60 """Decorates OptionParser with instrumentation tests options."""
61 61
62 option_parser = CreateTestRunnerOptionParser() 62 AddTestRunnerOptions(option_parser)
63 option_parser.add_option('-w', '--wait_debugger', dest='wait_for_debugger', 63 option_parser.add_option('-w', '--wait_debugger', dest='wait_for_debugger',
64 action='store_true', help='Wait for debugger.') 64 action='store_true', help='Wait for debugger.')
65 option_parser.add_option('-I', dest='install_apk', help='Install APK.', 65 option_parser.add_option('-I', dest='install_apk', help='Install APK.',
66 action='store_true') 66 action='store_true')
67 option_parser.add_option('-f', '--test_filter', 67 option_parser.add_option('-f', '--test_filter',
68 help='Test filter (if not fully qualified, ' 68 help='Test filter (if not fully qualified, '
69 'will run all matches).') 69 'will run all matches).')
70 option_parser.add_option('-A', '--annotation', dest='annotation_str', 70 option_parser.add_option('-A', '--annotation', dest='annotation_str',
71 help=('Run only tests with any of the given ' 71 help=('Run only tests with any of the given '
72 'annotations. ' 72 'annotations. '
(...skipping 22 matching lines...) Expand all
95 help='Saves the JSON file for each UI Perf test.') 95 help='Saves the JSON file for each UI Perf test.')
96 option_parser.add_option('--shard_retries', type=int, default=1, 96 option_parser.add_option('--shard_retries', type=int, default=1,
97 help=('Number of times to retry each failure when ' 97 help=('Number of times to retry each failure when '
98 'sharding.')) 98 'sharding.'))
99 option_parser.add_option('--official-build', help='Run official build tests.') 99 option_parser.add_option('--official-build', help='Run official build tests.')
100 option_parser.add_option('--device', 100 option_parser.add_option('--device',
101 help='Serial number of device we should use.') 101 help='Serial number of device we should use.')
102 option_parser.add_option('--python_test_root', 102 option_parser.add_option('--python_test_root',
103 help='Root of the python-driven tests.') 103 help='Root of the python-driven tests.')
104 104
105 options, args = option_parser.parse_args(args) 105 def ValidateInstrumentationOptions(options, args):
106 """Validate options/arguments and populate options with defaults."""
106 if len(args) > 1: 107 if len(args) > 1:
107 option_parser.error('Unknown argument:', args[1:]) 108 option_parser.error('Unknown argument:', args[1:])
108 if options.java_only and options.python_only: 109 if options.java_only and options.python_only:
109 option_parser.error('Options java_only (-j) and python_only (-p) ' 110 option_parser.error('Options java_only (-j) and python_only (-p) '
110 'are mutually exclusive') 111 'are mutually exclusive')
111 112
112 options.run_java_tests = True 113 options.run_java_tests = True
113 options.run_python_tests = True 114 options.run_python_tests = True
114 if options.java_only: 115 if options.java_only:
115 options.run_python_tests = False 116 options.run_python_tests = False
116 elif options.python_only: 117 elif options.python_only:
117 options.run_java_tests = False 118 options.run_java_tests = False
118 119
119 options.test_apk_path = os.path.join(_SDK_OUT_DIR, 120 options.test_apk_path = os.path.join(_SDK_OUT_DIR,
120 options.build_type, 121 options.build_type,
121 '%s.apk' % options.test_apk) 122 '%s.apk' % options.test_apk)
122 options.test_apk_jar_path = os.path.join(_SDK_OUT_DIR, 123 options.test_apk_jar_path = os.path.join(_SDK_OUT_DIR,
123 options.build_type, 124 options.build_type,
124 '%s.jar' 125 '%s.jar'
125 % options.test_apk) 126 % options.test_apk)
126 if options.annotation_str: 127 if options.annotation_str:
127 options.annotation = options.annotation_str.split() 128 options.annotation = options.annotation_str.split()
128 elif options.test_filter: 129 elif options.test_filter:
129 options.annotation = [] 130 options.annotation = []
130 else: 131 else:
131 options.annotation = ['Smoke', 'SmallTest', 'MediumTest', 'LargeTest'] 132 options.annotation = ['Smoke', 'SmallTest', 'MediumTest', 'LargeTest']
132 133
133 return options
OLDNEW
« no previous file with comments | « build/android/pylib/run_python_tests.py ('k') | build/android/run_instrumentation_tests.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698