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

Side by Side Diff: Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py

Issue 546133003: Reformat webkitpy.layout_tests w/ format-webkitpy. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
1 # Copyright (C) 2010 Google Inc. All rights reserved. 1 # Copyright (C) 2010 Google Inc. All rights reserved.
2 # Copyright (C) 2010 Gabor Rapcsanyi (rgabor@inf.u-szeged.hu), University of Sze ged 2 # Copyright (C) 2010 Gabor Rapcsanyi (rgabor@inf.u-szeged.hu), University of Sze ged
3 # Copyright (C) 2011 Apple Inc. All rights reserved. 3 # Copyright (C) 2011 Apple Inc. All rights reserved.
4 # 4 #
5 # Redistribution and use in source and binary forms, with or without 5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions are 6 # modification, are permitted provided that the following conditions are
7 # met: 7 # met:
8 # 8 #
9 # * Redistributions of source code must retain the above copyright 9 # * Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer. 10 # notice, this list of conditions and the following disclaimer.
(...skipping 27 matching lines...) Expand all
38 from webkitpy.layout_tests.controllers.manager import Manager 38 from webkitpy.layout_tests.controllers.manager import Manager
39 from webkitpy.layout_tests.models import test_run_results 39 from webkitpy.layout_tests.models import test_run_results
40 from webkitpy.layout_tests.port import configuration_options, platform_options 40 from webkitpy.layout_tests.port import configuration_options, platform_options
41 from webkitpy.layout_tests.views import buildbot_results 41 from webkitpy.layout_tests.views import buildbot_results
42 from webkitpy.layout_tests.views import printing 42 from webkitpy.layout_tests.views import printing
43 from webkitpy.layout_tests.generate_results_dashboard import GenerateDashBoard 43 from webkitpy.layout_tests.generate_results_dashboard import GenerateDashBoard
44 44
45 _log = logging.getLogger(__name__) 45 _log = logging.getLogger(__name__)
46 46
47 47
48
49 def main(argv, stdout, stderr): 48 def main(argv, stdout, stderr):
50 options, args = parse_args(argv) 49 options, args = parse_args(argv)
51 50
52 if options.platform and 'test' in options.platform and not 'browser_test' in options.platform: 51 if options.platform and 'test' in options.platform and not 'browser_test' in options.platform:
53 # It's a bit lame to import mocks into real code, but this allows the us er 52 # It's a bit lame to import mocks into real code, but this allows the us er
54 # to run tests against the test platform interactively, which is useful for 53 # to run tests against the test platform interactively, which is useful for
55 # debugging test failures. 54 # debugging test failures.
56 from webkitpy.common.host_mock import MockHost 55 from webkitpy.common.host_mock import MockHost
57 host = MockHost() 56 host = MockHost()
58 else: 57 else:
59 host = Host() 58 host = Host()
60 59
61 if options.lint_test_files: 60 if options.lint_test_files:
62 from webkitpy.layout_tests.lint_test_expectations import run_checks 61 from webkitpy.layout_tests.lint_test_expectations import run_checks
63 return run_checks(host, options, stderr) 62 return run_checks(host, options, stderr)
64 63
65 try: 64 try:
66 port = host.port_factory.get(options.platform, options) 65 port = host.port_factory.get(options.platform, options)
67 except NotImplementedError, e: 66 except NotImplementedError as e:
68 # FIXME: is this the best way to handle unsupported port names? 67 # FIXME: is this the best way to handle unsupported port names?
69 print >> stderr, str(e) 68 print >> stderr, str(e)
70 return test_run_results.UNEXPECTED_ERROR_EXIT_STATUS 69 return test_run_results.UNEXPECTED_ERROR_EXIT_STATUS
71 70
72 try: 71 try:
73 run_details = run(port, options, args, stderr) 72 run_details = run(port, options, args, stderr)
74 if ((run_details.exit_code not in test_run_results.ERROR_CODES or 73 if ((run_details.exit_code not in test_run_results.ERROR_CODES or
75 run_details.exit_code == test_run_results.EARLY_EXIT_STATUS) and 74 run_details.exit_code == test_run_results.EARLY_EXIT_STATUS) and
76 not run_details.initial_results.keyboard_interrupted): 75 not run_details.initial_results.keyboard_interrupted):
77 bot_printer = buildbot_results.BuildBotPrinter(stdout, options.debug _rwt_logging) 76 bot_printer = buildbot_results.BuildBotPrinter(stdout, options.debug _rwt_logging)
78 bot_printer.print_results(run_details) 77 bot_printer.print_results(run_details)
79 78
80 if options.enable_versioned_results: 79 if options.enable_versioned_results:
81 gen_dash_board = GenerateDashBoard(port) 80 gen_dash_board = GenerateDashBoard(port)
82 gen_dash_board.generate() 81 gen_dash_board.generate()
83 82
84 return run_details.exit_code 83 return run_details.exit_code
85 84
86 # We need to still handle KeyboardInterrupt, atleast for webkitpy unittest c ases. 85 # We need to still handle KeyboardInterrupt, atleast for webkitpy unittest c ases.
87 except KeyboardInterrupt: 86 except KeyboardInterrupt:
88 return test_run_results.INTERRUPTED_EXIT_STATUS 87 return test_run_results.INTERRUPTED_EXIT_STATUS
89 except test_run_results.TestRunException as e: 88 except test_run_results.TestRunException as e:
90 print >> stderr, e.msg 89 print >> stderr, e.msg
91 return e.code 90 return e.code
92 except BaseException as e: 91 except BaseException as e:
93 if isinstance(e, Exception): 92 if isinstance(e, Exception):
94 print >> stderr, '\n%s raised: %s' % (e.__class__.__name__, str(e)) 93 print >> stderr, '\n%s raised: %s' % (e.__class__.__name__, str(e))
95 traceback.print_exc(file=stderr) 94 traceback.print_exc(file=stderr)
96 return test_run_results.UNEXPECTED_ERROR_EXIT_STATUS 95 return test_run_results.UNEXPECTED_ERROR_EXIT_STATUS
97 96
98 97
99 def parse_args(args): 98 def parse_args(args):
100 option_group_definitions = [] 99 option_group_definitions = []
101 100
102 option_group_definitions.append(("Platform options", platform_options())) 101 option_group_definitions.append(('Platform options', platform_options()))
103 option_group_definitions.append(("Configuration options", configuration_opti ons())) 102 option_group_definitions.append(('Configuration options', configuration_opti ons()))
104 option_group_definitions.append(("Printing Options", printing.print_options( ))) 103 option_group_definitions.append(('Printing Options', printing.print_options( )))
105 104
106 option_group_definitions.append(("Android-specific Options", [ 105 option_group_definitions.append(('Android-specific Options', [
107 optparse.make_option("--adb-device", 106 optparse.make_option('--adb-device',
108 action="append", default=[], 107 action='append', default=[],
109 help="Run Android layout tests on these devices."), 108 help='Run Android layout tests on these devices.'),
110 109
111 # FIXME: Flip this to be off by default once we can log the device setup more cleanly. 110 # FIXME: Flip this to be off by default once we can log the device setup more cleanly.
112 optparse.make_option("--no-android-logging", 111 optparse.make_option('--no-android-logging',
113 action="store_false", dest='android_logging', default=True, 112 action='store_false', dest='android_logging', defau lt=True,
114 help="Do not log android-specific debug messages (default is to log as part of --debug-rwt-logging"), 113 help='Do not log android-specific debug messages (d efault is to log as part of --debug-rwt-logging'),
115 ])) 114 ]))
116 115
117 option_group_definitions.append(("Results Options", [ 116 option_group_definitions.append(('Results Options', [
118 optparse.make_option("-p", "--pixel", "--pixel-tests", action="store_tru e", 117 optparse.make_option('-p', '--pixel', '--pixel-tests', action='store_tru e',
119 dest="pixel_tests", help="Enable pixel-to-pixel PNG comparisons"), 118 dest='pixel_tests', help='Enable pixel-to-pixel PNG comparisons'),
120 optparse.make_option("--no-pixel", "--no-pixel-tests", action="store_fal se", 119 optparse.make_option('--no-pixel', '--no-pixel-tests', action='store_fal se',
121 dest="pixel_tests", help="Disable pixel-to-pixel PNG comparisons"), 120 dest='pixel_tests', help='Disable pixel-to-pixel PN G comparisons'),
122 optparse.make_option("--results-directory", help="Location of test resul ts"), 121 optparse.make_option('--results-directory', help='Location of test resul ts'),
123 optparse.make_option("--build-directory", 122 optparse.make_option('--build-directory',
124 help="Path to the directory under which build files are kept (should not include configuration)"), 123 help='Path to the directory under which build files are kept (should not include configuration)'),
125 optparse.make_option("--add-platform-exceptions", action="store_true", d efault=False, 124 optparse.make_option('--add-platform-exceptions', action='store_true', d efault=False,
126 help="Save generated results into the *most-specific-platform* direc tory rather than the *generic-platform* directory"), 125 help='Save generated results into the *most-specifi c-platform* directory rather than the *generic-platform* directory'),
127 optparse.make_option("--new-baseline", action="store_true", 126 optparse.make_option('--new-baseline', action='store_true',
128 default=False, help="Save generated results as new baselines " 127 default=False, help='Save generated results as new baselines '
129 "into the *most-specific-platform* directory, overwriting whate ver's " 128 "into the *most-specific-platform* directory, overw riting whatever's "
130 "already there. Equivalent to --reset-results --add-platform-ex ceptions"), 129 'already there. Equivalent to --reset-results --add -platform-exceptions'),
131 optparse.make_option("--reset-results", action="store_true", 130 optparse.make_option('--reset-results', action='store_true',
132 default=False, help="Reset expectations to the " 131 default=False, help='Reset expectations to the '
133 "generated results in their existing location."), 132 'generated results in their existing location.'),
134 optparse.make_option("--no-new-test-results", action="store_false", 133 optparse.make_option('--no-new-test-results', action='store_false',
135 dest="new_test_results", default=True, 134 dest='new_test_results', default=True,
136 help="Don't create new baselines when no expected results exist"), 135 help="Don't create new baselines when no expected r esults exist"),
137 136
138 #FIXME: we should support a comma separated list with --pixel-test-direc tory as well. 137 # FIXME: we should support a comma separated list with --pixel-test-dire ctory as well.
139 optparse.make_option("--pixel-test-directory", action="append", default= [], dest="pixel_test_directories", 138 optparse.make_option('--pixel-test-directory', action='append', default= [], dest='pixel_test_directories',
140 help="A directory where it is allowed to execute tests as pixel test s. " 139 help='A directory where it is allowed to execute te sts as pixel tests. '
141 "Specify multiple times to add multiple directories. " 140 'Specify multiple times to add multiple directories . '
142 "This option implies --pixel-tests. If specified, only those te sts " 141 'This option implies --pixel-tests. If specified, o nly those tests '
143 "will be executed as pixel tests that are located in one of the " 142 'will be executed as pixel tests that are located i n one of the '
144 "directories enumerated with the option. Some ports may ignore this " 143 'directories enumerated with the option. Some ports may ignore this '
145 "option while others can have a default value that can be overr idden here."), 144 'option while others can have a default value that can be overridden here.'),
146 145
147 optparse.make_option("--skip-failing-tests", action="store_true", 146 optparse.make_option('--skip-failing-tests', action='store_true',
148 default=False, help="Skip tests that are expected to fail. " 147 default=False, help='Skip tests that are expected t o fail. '
149 "Note: When using this option, you might miss new crashes " 148 'Note: When using this option, you might miss new c rashes '
150 "in these tests."), 149 'in these tests.'),
151 optparse.make_option("--additional-drt-flag", action="append", 150 optparse.make_option('--additional-drt-flag', action='append',
152 default=[], help="Additional command line flag to pass to the driver " 151 default=[], help='Additional command line flag to p ass to the driver '
153 "Specify multiple times to add multiple flags."), 152 'Specify multiple times to add multiple flags.'),
154 optparse.make_option("--driver-name", type="string", 153 optparse.make_option('--driver-name', type='string',
155 help="Alternative driver binary to use"), 154 help='Alternative driver binary to use'),
156 optparse.make_option("--additional-platform-directory", action="append", 155 optparse.make_option('--additional-platform-directory', action='append',
157 default=[], help="Additional directory where to look for test " 156 default=[], help='Additional directory where to loo k for test '
158 "baselines (will take precendence over platform baselines). " 157 'baselines (will take precendence over platform bas elines). '
159 "Specify multiple times to add multiple search path entries."), 158 'Specify multiple times to add multiple search path entries.'),
160 optparse.make_option("--additional-expectations", action="append", defau lt=[], 159 optparse.make_option('--additional-expectations', action='append', defau lt=[],
161 help="Path to a test_expectations file that will override previous e xpectations. " 160 help='Path to a test_expectations file that will ov erride previous expectations. '
162 "Specify multiple times for multiple sets of overrides."), 161 'Specify multiple times for multiple sets of overri des.'),
163 optparse.make_option("--compare-port", action="store", default=None, 162 optparse.make_option('--compare-port', action='store', default=None,
164 help="Use the specified port's baselines first"), 163 help="Use the specified port's baselines first"),
165 optparse.make_option("--no-show-results", action="store_false", 164 optparse.make_option('--no-show-results', action='store_false',
166 default=True, dest="show_results", 165 default=True, dest='show_results',
167 help="Don't launch a browser with results after the tests " 166 help="Don't launch a browser with results after the tests "
168 "are done"), 167 'are done'),
169 optparse.make_option("--full-results-html", action="store_true", 168 optparse.make_option('--full-results-html', action='store_true',
170 default=False, 169 default=False,
171 help="Show all failures in results.html, rather than only regression s"), 170 help='Show all failures in results.html, rather tha n only regressions'),
172 optparse.make_option("--clobber-old-results", action="store_true", 171 optparse.make_option('--clobber-old-results', action='store_true',
173 default=False, help="Clobbers test results from previous runs."), 172 default=False, help='Clobbers test results from pre vious runs.'),
174 optparse.make_option("--enable-versioned-results", action="store_true", 173 optparse.make_option('--enable-versioned-results', action='store_true',
175 default=False, help="Archive the test results for later access."), 174 default=False, help='Archive the test results for l ater access.'),
176 optparse.make_option("--smoke", action="store_true", 175 optparse.make_option('--smoke', action='store_true',
177 help="Run just the SmokeTests"), 176 help='Run just the SmokeTests'),
178 optparse.make_option("--no-smoke", dest="smoke", action="store_false", 177 optparse.make_option('--no-smoke', dest='smoke', action='store_false',
179 help="Do not run just the SmokeTests"), 178 help='Do not run just the SmokeTests'),
180 ])) 179 ]))
181 180
182 option_group_definitions.append(("Testing Options", [ 181 option_group_definitions.append(('Testing Options', [
183 optparse.make_option("--build", dest="build", 182 optparse.make_option('--build', dest='build',
184 action="store_true", default=True, 183 action='store_true', default=True,
185 help="Check to ensure the build is up-to-date (default)."), 184 help='Check to ensure the build is up-to-date (defa ult).'),
186 optparse.make_option("--no-build", dest="build", 185 optparse.make_option('--no-build', dest='build',
187 action="store_false", help="Don't check to see if the build is up-to -date."), 186 action='store_false', help="Don't check to see if t he build is up-to-date."),
188 optparse.make_option("-n", "--dry-run", action="store_true", 187 optparse.make_option('-n', '--dry-run', action='store_true',
189 default=False, 188 default=False,
190 help="Do everything but actually run the tests or upload results."), 189 help='Do everything but actually run the tests or u pload results.'),
191 optparse.make_option("--nocheck-sys-deps", action="store_true", 190 optparse.make_option('--nocheck-sys-deps', action='store_true',
192 default=False, 191 default=False,
193 help="Don't check the system dependencies (themes)"), 192 help="Don't check the system dependencies (themes)" ),
194 optparse.make_option("--wrapper", 193 optparse.make_option('--wrapper',
195 help="wrapper command to insert before invocations of " 194 help='wrapper command to insert before invocations of '
196 "the driver; option is split on whitespace before " 195 'the driver; option is split on whitespace before '
197 "running. (Example: --wrapper='valgrind --smc-check=all')"), 196 "running. (Example: --wrapper='valgrind --smc-check =all')"),
198 optparse.make_option("-i", "--ignore-tests", action="append", default=[] , 197 optparse.make_option('-i', '--ignore-tests', action='append', default=[] ,
199 help="directories or test to ignore (may specify multiple times)"), 198 help='directories or test to ignore (may specify mu ltiple times)'),
200 optparse.make_option("--ignore-flaky-tests", action="store", 199 optparse.make_option('--ignore-flaky-tests', action='store',
201 help=("Control whether tests that are flaky on the bots get ignored. " 200 help=('Control whether tests that are flaky on the bots get ignored.'
202 "'very-flaky' == Ignore any tests that flaked more than once on the bot." 201 "'very-flaky' == Ignore any tests that flaked more than once on the bot."
203 "'maybe-flaky' == Ignore any tests that flaked once on the bot." 202 "'maybe-flaky' == Ignore any tests that flake d once on the bot."
204 "'unexpected' == Ignore any tests that had unexpected results on the bot.")), 203 "'unexpected' == Ignore any tests that had un expected results on the bot.")),
205 optparse.make_option("--ignore-builder-category", action="store", 204 optparse.make_option('--ignore-builder-category', action='store',
206 help=("The category of builders to use with the --ignore-flaky-tests " 205 help=('The category of builders to use with the --i gnore-flaky-tests '
207 "option ('layout' or 'deps').")), 206 "option ('layout' or 'deps').")),
208 optparse.make_option("--test-list", action="append", 207 optparse.make_option('--test-list', action='append',
209 help="read list of tests to run from file", metavar="FILE"), 208 help='read list of tests to run from file', metavar ='FILE'),
210 optparse.make_option("--skipped", action="store", default=None, 209 optparse.make_option('--skipped', action='store', default=None,
211 help=("control how tests marked SKIP are run. " 210 help=('control how tests marked SKIP are run. '
212 "'default' == Skip tests unless explicitly listed on the comman d line, " 211 "'default' == Skip tests unless explicitly li sted on the command line, "
213 "'ignore' == Run them anyway, " 212 "'ignore' == Run them anyway, "
214 "'only' == only run the SKIP tests, " 213 "'only' == only run the SKIP tests, "
215 "'always' == always skip, even if listed on the command line.") ), 214 "'always' == always skip, even if listed on t he command line.")),
216 optparse.make_option("--time-out-ms", 215 optparse.make_option('--time-out-ms',
217 help="Set the timeout for each test"), 216 help='Set the timeout for each test'),
218 optparse.make_option("--order", action="store", default="natural", 217 optparse.make_option('--order', action='store', default='natural',
219 help=("determine the order in which the test cases will be run. " 218 help=('determine the order in which the test cases will be run. '
220 "'none' == use the order in which the tests were listed either in arguments or test list, " 219 "'none' == use the order in which the tests w ere listed either in arguments or test list, "
221 "'natural' == use the natural order (default), " 220 "'natural' == use the natural order (default) , "
222 "'random-seeded' == randomize the test order using a fixed see d, " 221 "'random-seeded' == randomize the test order using a fixed seed, "
223 "'random' == randomize the test order.")), 222 "'random' == randomize the test order.")),
224 optparse.make_option("--run-chunk", 223 optparse.make_option('--run-chunk',
225 help=("Run a specified chunk (n:l), the nth of len l, " 224 help=('Run a specified chunk (n:l), the nth of len l, '
226 "of the layout tests")), 225 'of the layout tests')),
227 optparse.make_option("--run-part", help=("Run a specified part (n:m), " 226 optparse.make_option('--run-part', help=('Run a specified part (n:m), '
228 "the nth of m parts, of the layout tests")), 227 'the nth of m parts, of the lay out tests')),
229 optparse.make_option("--batch-size", 228 optparse.make_option('--batch-size',
230 help=("Run a the tests in batches (n), after every n tests, " 229 help=('Run a the tests in batches (n), after every n tests, '
231 "the driver is relaunched."), type="int", default=None), 230 'the driver is relaunched.'), type='int', def ault=None),
232 optparse.make_option("--run-singly", action="store_true", 231 optparse.make_option('--run-singly', action='store_true',
233 default=False, help="DEPRECATED, same as --batch-size=1 --verbose"), 232 default=False, help='DEPRECATED, same as --batch-si ze=1 --verbose'),
234 optparse.make_option("--child-processes", 233 optparse.make_option('--child-processes',
235 help="Number of drivers to run in parallel."), 234 help='Number of drivers to run in parallel.'),
236 # FIXME: Display default number of child processes that will run. 235 # FIXME: Display default number of child processes that will run.
237 optparse.make_option("-f", "--fully-parallel", action="store_true", 236 optparse.make_option('-f', '--fully-parallel', action='store_true',
238 help="run all tests in parallel"), 237 help='run all tests in parallel'),
239 optparse.make_option("--exit-after-n-failures", type="int", default=None , 238 optparse.make_option('--exit-after-n-failures', type='int', default=None ,
240 help="Exit after the first N failures instead of running all " 239 help='Exit after the first N failures instead of ru nning all '
241 "tests"), 240 'tests'),
242 optparse.make_option("--exit-after-n-crashes-or-timeouts", type="int", 241 optparse.make_option('--exit-after-n-crashes-or-timeouts', type='int',
243 default=None, help="Exit after the first N crashes instead of " 242 default=None, help='Exit after the first N crashes instead of '
244 "running all tests"), 243 'running all tests'),
245 optparse.make_option("--iterations", type="int", default=1, help="Number of times to run the set of tests (e.g. ABCABCABC)"), 244 optparse.make_option(
246 optparse.make_option("--repeat-each", type="int", default=1, help="Numbe r of times to run each test (e.g. AAABBBCCC)"), 245 '--iterations',
247 optparse.make_option("--retry-failures", action="store_true", 246 type='int',
248 help="Re-try any tests that produce unexpected results. Default is t o not retry if an explicit list of tests is passed to run-webkit-tests."), 247 default=1,
249 optparse.make_option("--no-retry-failures", action="store_false", 248 help='Number of times to run the set of tests (e.g. ABCABCABC)'),
250 dest="retry_failures", 249 optparse.make_option('--repeat-each', type='int', default=1, help='Numbe r of times to run each test (e.g. AAABBBCCC)'),
251 help="Don't re-try any tests that produce unexpected results."), 250 optparse.make_option('--retry-failures', action='store_true',
252 251 help='Re-try any tests that produce unexpected resu lts. Default is to not retry if an explicit list of tests is passed to run-webki t-tests.'),
253 optparse.make_option("--max-locked-shards", type="int", default=0, 252 optparse.make_option('--no-retry-failures', action='store_false',
254 help="Set the maximum number of locked shards"), 253 dest='retry_failures',
255 optparse.make_option("--additional-env-var", type="string", action="appe nd", default=[], 254 help="Don't re-try any tests that produce unexpecte d results."),
256 help="Passes that environment variable to the tests (--additional-en v-var=NAME=VALUE)"), 255
257 optparse.make_option("--profile", action="store_true", 256 optparse.make_option('--max-locked-shards', type='int', default=0,
258 help="Output per-test profile information."), 257 help='Set the maximum number of locked shards'),
259 optparse.make_option("--profiler", action="store", 258 optparse.make_option('--additional-env-var', type='string', action='appe nd', default=[],
260 help="Output per-test profile information, using the specified profi ler."), 259 help='Passes that environment variable to the tests (--additional-env-var=NAME=VALUE)'),
261 optparse.make_option("--driver-logging", action="store_true", 260 optparse.make_option('--profile', action='store_true',
262 help="Print detailed logging of the driver/content_shell"), 261 help='Output per-test profile information.'),
263 optparse.make_option("--disable-breakpad", action="store_true", 262 optparse.make_option('--profiler', action='store',
264 help="Don't use breakpad to symbolize unexpected crashes."), 263 help='Output per-test profile information, using th e specified profiler.'),
265 optparse.make_option("--enable-leak-detection", action="store_true", 264 optparse.make_option('--driver-logging', action='store_true',
266 help="Enable the leak detection of DOM objects."), 265 help='Print detailed logging of the driver/content_ shell'),
267 optparse.make_option("--enable-sanitizer", action="store_true", 266 optparse.make_option('--disable-breakpad', action='store_true',
268 help="Only alert on sanitizer-related errors and crashes"), 267 help="Don't use breakpad to symbolize unexpected cr ashes."),
269 ])) 268 optparse.make_option('--enable-leak-detection', action='store_true',
270 269 help='Enable the leak detection of DOM objects.'),
271 option_group_definitions.append(("Miscellaneous Options", [ 270 optparse.make_option('--enable-sanitizer', action='store_true',
272 optparse.make_option("--lint-test-files", action="store_true", 271 help='Only alert on sanitizer-related errors and cr ashes'),
273 default=False, help=("Makes sure the test files parse for all " 272 ]))
274 "configurations. Does not run any tests.")), 273
274 option_group_definitions.append(('Miscellaneous Options', [
275 optparse.make_option('--lint-test-files', action='store_true',
276 default=False, help=('Makes sure the test files par se for all '
277 'configurations. Does not run any tests.')),
275 ])) 278 ]))
276 279
277 # FIXME: Move these into json_results_generator.py 280 # FIXME: Move these into json_results_generator.py
278 option_group_definitions.append(("Result JSON Options", [ 281 option_group_definitions.append(('Result JSON Options', [
279 optparse.make_option("--master-name", help="The name of the buildbot mas ter."), 282 optparse.make_option('--master-name', help='The name of the buildbot mas ter.'),
280 optparse.make_option("--builder-name", default="", 283 optparse.make_option('--builder-name', default='',
281 help=("The name of the builder shown on the waterfall running " 284 help=('The name of the builder shown on the waterfa ll running '
282 "this script e.g. WebKit.")), 285 'this script e.g. WebKit.')),
283 optparse.make_option("--build-name", default="DUMMY_BUILD_NAME", 286 optparse.make_option('--build-name', default='DUMMY_BUILD_NAME',
284 help=("The name of the builder used in its path, e.g. " 287 help=('The name of the builder used in its path, e. g. '
285 "webkit-rel.")), 288 'webkit-rel.')),
286 optparse.make_option("--build-number", default="DUMMY_BUILD_NUMBER", 289 optparse.make_option('--build-number', default='DUMMY_BUILD_NUMBER',
287 help=("The build number of the builder running this script.")), 290 help=('The build number of the builder running this script.')),
288 optparse.make_option("--test-results-server", default="", 291 optparse.make_option('--test-results-server', default='',
289 help=("If specified, upload results json files to this appengine " 292 help=('If specified, upload results json files to t his appengine '
290 "server.")), 293 'server.')),
291 optparse.make_option("--write-full-results-to", 294 optparse.make_option('--write-full-results-to',
292 help=("If specified, copy full_results.json from the results dir " 295 help=('If specified, copy full_results.json from th e results dir '
293 "to the specified path.")), 296 'to the specified path.')),
294 ])) 297 ]))
295 298
296 option_parser = optparse.OptionParser() 299 option_parser = optparse.OptionParser()
297 300
298 for group_name, group_options in option_group_definitions: 301 for group_name, group_options in option_group_definitions:
299 option_group = optparse.OptionGroup(option_parser, group_name) 302 option_group = optparse.OptionGroup(option_parser, group_name)
300 option_group.add_options(group_options) 303 option_group.add_options(group_options)
301 option_parser.add_option_group(option_group) 304 option_parser.add_option_group(option_group)
302 305
303 return option_parser.parse_args(args) 306 return option_parser.parse_args(args)
304 307
305 308
306 def _set_up_derived_options(port, options, args): 309 def _set_up_derived_options(port, options, args):
307 """Sets the options values that depend on other options values.""" 310 """Sets the options values that depend on other options values."""
308 if not options.child_processes: 311 if not options.child_processes:
309 options.child_processes = os.environ.get("WEBKIT_TEST_CHILD_PROCESSES", 312 options.child_processes = os.environ.get('WEBKIT_TEST_CHILD_PROCESSES',
310 str(port.default_child_processe s())) 313 str(port.default_child_processe s()))
311 if not options.max_locked_shards: 314 if not options.max_locked_shards:
312 options.max_locked_shards = int(os.environ.get("WEBKIT_TEST_MAX_LOCKED_S HARDS", 315 options.max_locked_shards = int(os.environ.get('WEBKIT_TEST_MAX_LOCKED_S HARDS',
313 str(port.default_max_lock ed_shards()))) 316 str(port.default_max_lock ed_shards())))
314 317
315 if not options.configuration: 318 if not options.configuration:
316 options.configuration = port.default_configuration() 319 options.configuration = port.default_configuration()
317 320
318 if options.pixel_tests is None: 321 if options.pixel_tests is None:
319 options.pixel_tests = port.default_pixel_tests() 322 options.pixel_tests = port.default_pixel_tests()
320 323
321 if not options.time_out_ms: 324 if not options.time_out_ms:
322 options.time_out_ms = str(port.default_timeout_ms()) 325 options.time_out_ms = str(port.default_timeout_ms())
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 365
363 if not options.test_list: 366 if not options.test_list:
364 options.test_list = [] 367 options.test_list = []
365 options.test_list.append(port.host.filesystem.join(port.layout_tests_dir (), 'SmokeTests')) 368 options.test_list.append(port.host.filesystem.join(port.layout_tests_dir (), 'SmokeTests'))
366 if not options.skipped: 369 if not options.skipped:
367 options.skipped = 'always' 370 options.skipped = 'always'
368 371
369 if not options.skipped: 372 if not options.skipped:
370 options.skipped = 'default' 373 options.skipped = 'default'
371 374
375
372 def run(port, options, args, logging_stream): 376 def run(port, options, args, logging_stream):
373 logger = logging.getLogger() 377 logger = logging.getLogger()
374 logger.setLevel(logging.DEBUG if options.debug_rwt_logging else logging.INFO ) 378 logger.setLevel(logging.DEBUG if options.debug_rwt_logging else logging.INFO )
375 379
376 try: 380 try:
377 printer = printing.Printer(port, options, logging_stream, logger=logger) 381 printer = printing.Printer(port, options, logging_stream, logger=logger)
378 382
379 _set_up_derived_options(port, options, args) 383 _set_up_derived_options(port, options, args)
380 manager = Manager(port, options, printer) 384 manager = Manager(port, options, printer)
381 printer.print_config(port.results_directory()) 385 printer.print_config(port.results_directory())
382 386
383 run_details = manager.run(args) 387 run_details = manager.run(args)
384 _log.debug("Testing completed, Exit status: %d" % run_details.exit_code) 388 _log.debug('Testing completed, Exit status: %d' % run_details.exit_code)
385 return run_details 389 return run_details
386 finally: 390 finally:
387 printer.cleanup() 391 printer.cleanup()
388 392
389 if __name__ == '__main__': 393 if __name__ == '__main__':
390 sys.exit(main(sys.argv[1:], sys.stdout, sys.stderr)) 394 sys.exit(main(sys.argv[1:], sys.stdout, sys.stderr))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698