OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # | 2 # |
3 # Copyright 2013 The Chromium Authors. All rights reserved. | 3 # Copyright 2013 The Chromium Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 """Runs all types of tests from one unified interface.""" | 7 """Runs all types of tests from one unified interface.""" |
8 | 8 |
9 import collections | 9 import collections |
10 import logging | 10 import logging |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 options.test_apk_jar_path) | 291 options.test_apk_jar_path) |
292 | 292 |
293 | 293 |
294 def AddUIAutomatorTestOptions(option_parser): | 294 def AddUIAutomatorTestOptions(option_parser): |
295 """Adds UI Automator test options to |option_parser|.""" | 295 """Adds UI Automator test options to |option_parser|.""" |
296 | 296 |
297 option_parser.usage = '%prog uiautomator [options]' | 297 option_parser.usage = '%prog uiautomator [options]' |
298 option_parser.commands_dict = {} | 298 option_parser.commands_dict = {} |
299 option_parser.example = ( | 299 option_parser.example = ( |
300 '%prog uiautomator --test-jar=chromium_testshell_uiautomator_tests' | 300 '%prog uiautomator --test-jar=chromium_testshell_uiautomator_tests' |
301 ' --package-name=org.chromium.chrome.testshell') | 301 ' --package=chromium_test_shell') |
302 option_parser.add_option( | 302 option_parser.add_option( |
303 '--package-name', | 303 '--package', |
304 help='The package name used by the apk containing the application.') | 304 help=('Package under test. Possible values: %s' % |
| 305 constants.PACKAGE_INFO.keys())) |
305 option_parser.add_option( | 306 option_parser.add_option( |
306 '--test-jar', dest='test_jar', | 307 '--test-jar', dest='test_jar', |
307 help=('The name of the dexed jar containing the tests (without the ' | 308 help=('The name of the dexed jar containing the tests (without the ' |
308 '.dex.jar extension). Alternatively, this can be a full path ' | 309 '.dex.jar extension). Alternatively, this can be a full path ' |
309 'to the jar.')) | 310 'to the jar.')) |
310 | 311 |
311 AddJavaTestOptions(option_parser) | 312 AddJavaTestOptions(option_parser) |
312 AddCommonOptions(option_parser) | 313 AddCommonOptions(option_parser) |
313 | 314 |
314 | 315 |
315 def ProcessUIAutomatorOptions(options, error_func): | 316 def ProcessUIAutomatorOptions(options, error_func): |
316 """Processes UIAutomator options/arguments. | 317 """Processes UIAutomator options/arguments. |
317 | 318 |
318 Args: | 319 Args: |
319 options: optparse.Options object. | 320 options: optparse.Options object. |
320 error_func: Function to call with the error message in case of an error. | 321 error_func: Function to call with the error message in case of an error. |
321 | 322 |
322 Returns: | 323 Returns: |
323 A UIAutomatorOptions named tuple which contains all options relevant to | 324 A UIAutomatorOptions named tuple which contains all options relevant to |
324 uiautomator tests. | 325 uiautomator tests. |
325 """ | 326 """ |
326 | 327 |
327 ProcessJavaTestOptions(options, error_func) | 328 ProcessJavaTestOptions(options, error_func) |
328 | 329 |
329 if not options.package_name: | 330 if not options.package: |
330 error_func('--package-name must be specified.') | 331 error_func('--package is required.') |
| 332 |
| 333 if options.package not in constants.PACKAGE_INFO: |
| 334 error_func('Invalid package.') |
331 | 335 |
332 if not options.test_jar: | 336 if not options.test_jar: |
333 error_func('--test-jar must be specified.') | 337 error_func('--test-jar must be specified.') |
334 | 338 |
335 if os.path.exists(options.test_jar): | 339 if os.path.exists(options.test_jar): |
336 # The dexed JAR is fully qualified, assume the info JAR lives along side. | 340 # The dexed JAR is fully qualified, assume the info JAR lives along side. |
337 options.uiautomator_jar = options.test_jar | 341 options.uiautomator_jar = options.test_jar |
338 else: | 342 else: |
339 options.uiautomator_jar = os.path.join( | 343 options.uiautomator_jar = os.path.join( |
340 constants.GetOutDirectory(), | 344 constants.GetOutDirectory(), |
341 constants.SDK_BUILD_JAVALIB_DIR, | 345 constants.SDK_BUILD_JAVALIB_DIR, |
342 '%s.dex.jar' % options.test_jar) | 346 '%s.dex.jar' % options.test_jar) |
343 options.uiautomator_info_jar = ( | 347 options.uiautomator_info_jar = ( |
344 options.uiautomator_jar[:options.uiautomator_jar.find('.dex.jar')] + | 348 options.uiautomator_jar[:options.uiautomator_jar.find('.dex.jar')] + |
345 '_java.jar') | 349 '_java.jar') |
346 | 350 |
347 return uiautomator_test_options.UIAutomatorOptions( | 351 return uiautomator_test_options.UIAutomatorOptions( |
348 options.tool, | 352 options.tool, |
349 options.cleanup_test_files, | 353 options.cleanup_test_files, |
350 options.push_deps, | 354 options.push_deps, |
351 options.annotations, | 355 options.annotations, |
352 options.exclude_annotations, | 356 options.exclude_annotations, |
353 options.test_filter, | 357 options.test_filter, |
354 options.test_data, | 358 options.test_data, |
355 options.save_perf_json, | 359 options.save_perf_json, |
356 options.screenshot_failures, | 360 options.screenshot_failures, |
357 options.uiautomator_jar, | 361 options.uiautomator_jar, |
358 options.uiautomator_info_jar, | 362 options.uiautomator_info_jar, |
359 options.package_name) | 363 options.package) |
360 | 364 |
361 | 365 |
362 def AddMonkeyTestOptions(option_parser): | 366 def AddMonkeyTestOptions(option_parser): |
363 """Adds monkey test options to |option_parser|.""" | 367 """Adds monkey test options to |option_parser|.""" |
364 | 368 |
365 option_parser.usage = '%prog monkey [options]' | 369 option_parser.usage = '%prog monkey [options]' |
366 option_parser.commands_dict = {} | 370 option_parser.commands_dict = {} |
367 option_parser.example = ( | 371 option_parser.example = ( |
368 '%prog monkey --package-name=org.chromium.content_shell_apk' | 372 '%prog monkey --package=chromium_test_shell') |
369 ' --activity-name=.ContentShellActivity') | |
370 | 373 |
371 option_parser.add_option('--package-name', help='Allowed package.') | |
372 option_parser.add_option( | 374 option_parser.add_option( |
373 '--activity-name', help='Name of the activity to start.') | 375 '--package', |
| 376 help=('Package under test. Possible values: %s' % |
| 377 constants.PACKAGE_INFO.keys())) |
374 option_parser.add_option( | 378 option_parser.add_option( |
375 '--event-count', default=10000, type='int', | 379 '--event-count', default=10000, type='int', |
376 help='Number of events to generate [default: %default].') | 380 help='Number of events to generate [default: %default].') |
377 option_parser.add_option( | 381 option_parser.add_option( |
378 '--category', default='', | 382 '--category', default='', |
379 help='A list of allowed categories.') | 383 help='A list of allowed categories.') |
380 option_parser.add_option( | 384 option_parser.add_option( |
381 '--throttle', default=100, type='int', | 385 '--throttle', default=100, type='int', |
382 help='Delay between events (ms) [default: %default]. ') | 386 help='Delay between events (ms) [default: %default]. ') |
383 option_parser.add_option( | 387 option_parser.add_option( |
(...skipping 12 matching lines...) Expand all Loading... |
396 """Processes all monkey test options. | 400 """Processes all monkey test options. |
397 | 401 |
398 Args: | 402 Args: |
399 options: optparse.Options object. | 403 options: optparse.Options object. |
400 error_func: Function to call with the error message in case of an error. | 404 error_func: Function to call with the error message in case of an error. |
401 | 405 |
402 Returns: | 406 Returns: |
403 A MonkeyOptions named tuple which contains all options relevant to | 407 A MonkeyOptions named tuple which contains all options relevant to |
404 monkey tests. | 408 monkey tests. |
405 """ | 409 """ |
406 if not options.package_name: | 410 if not options.package: |
407 error_func('Package name is required.') | 411 error_func('--package is required.') |
| 412 |
| 413 if options.package not in constants.PACKAGE_INFO: |
| 414 error_func('Invalid package.') |
408 | 415 |
409 category = options.category | 416 category = options.category |
410 if category: | 417 if category: |
411 category = options.category.split(',') | 418 category = options.category.split(',') |
412 | 419 |
413 return monkey_test_options.MonkeyOptions( | 420 return monkey_test_options.MonkeyOptions( |
414 options.verbose_count, | 421 options.verbose_count, |
415 options.package_name, | 422 options.package, |
416 options.activity_name, | |
417 options.event_count, | 423 options.event_count, |
418 category, | 424 category, |
419 options.throttle, | 425 options.throttle, |
420 options.seed, | 426 options.seed, |
421 options.extra_args) | 427 options.extra_args) |
422 | 428 |
423 | 429 |
424 def AddPerfTestOptions(option_parser): | 430 def AddPerfTestOptions(option_parser): |
425 """Adds perf test options to |option_parser|.""" | 431 """Adds perf test options to |option_parser|.""" |
426 | 432 |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
759 | 765 |
760 | 766 |
761 def main(argv): | 767 def main(argv): |
762 option_parser = command_option_parser.CommandOptionParser( | 768 option_parser = command_option_parser.CommandOptionParser( |
763 commands_dict=VALID_COMMANDS) | 769 commands_dict=VALID_COMMANDS) |
764 return command_option_parser.ParseAndExecute(option_parser) | 770 return command_option_parser.ParseAndExecute(option_parser) |
765 | 771 |
766 | 772 |
767 if __name__ == '__main__': | 773 if __name__ == '__main__': |
768 sys.exit(main(sys.argv)) | 774 sys.exit(main(sys.argv)) |
OLD | NEW |