Chromium Code Reviews| Index: build/android/pylib/utils/test_options_parser.py |
| diff --git a/build/android/pylib/utils/test_options_parser.py b/build/android/pylib/utils/test_options_parser.py |
| index 53527532c91566b9f0aa6d7757d7004220ec4cbb..0352d2195631a3dbaf21968463d6e00f012895e2 100644 |
| --- a/build/android/pylib/utils/test_options_parser.py |
| +++ b/build/android/pylib/utils/test_options_parser.py |
| @@ -28,6 +28,7 @@ def AddBuildTypeOption(option_parser): |
| help='If set, run test suites under out/Release. ' |
| 'Default is env var BUILDTYPE or Debug.') |
| + |
| def AddInstallAPKOption(option_parser): |
| """Decorates OptionParser with apk option used to install the APK.""" |
| AddBuildTypeOption(option_parser) |
| @@ -127,14 +128,12 @@ def AddGTestOptions(option_parser): |
| 'the APK.') |
| -def AddInstrumentationOptions(option_parser): |
| - """Decorates OptionParser with instrumentation tests options.""" |
| +def AddCommonInstrumentationOptions(option_parser): |
|
craigdh
2013/03/19 20:37:46
split these up into pylib/<test_type>/options_pars
frankf
2013/03/19 23:28:08
Yea, we need to rethink the option parsers in gene
|
| + """Decorates OptionParser with base instrumentation tests options.""" |
| AddTestRunnerOptions(option_parser) |
| option_parser.add_option('-w', '--wait_debugger', dest='wait_for_debugger', |
| action='store_true', help='Wait for debugger.') |
| - option_parser.add_option('-I', dest='install_apk', help='Install APK.', |
| - action='store_true') |
| option_parser.add_option('-f', '--test_filter', |
| help='Test filter (if not fully qualified, ' |
| 'will run all matches).') |
| @@ -153,11 +152,6 @@ def AddInstrumentationOptions(option_parser): |
| dest='number_of_runs', default=1, |
| help=('How many times to run each test, regardless ' |
| 'of the result. (Default is 1)')) |
| - option_parser.add_option('--test-apk', dest='test_apk', |
| - help=('The name of the apk containing the tests ' |
| - '(without the .apk extension). For SDK ' |
| - 'builds, the apk name without the debug ' |
| - 'suffix(for example, ContentShellTest).')) |
| option_parser.add_option('--screenshot', dest='screenshot_failures', |
| action='store_true', |
| help='Capture screenshots of test failures') |
| @@ -193,17 +187,44 @@ def AddInstrumentationOptions(option_parser): |
| 'directory, and <source> is relative to the ' |
| 'chromium build directory.')) |
| -def ValidateInstrumentationOptions(option_parser, options, args): |
| - """Validate options/arguments and populate options with defaults.""" |
| + |
| +def AddInstrumentationOptions(option_parser): |
| + """Decorates OptionParser with instrumentation tests options.""" |
| + |
| + AddCommonInstrumentationOptions(option_parser) |
| + option_parser.add_option('-I', dest='install_apk', |
| + help='Install APK.', action='store_true') |
| + option_parser.add_option('--test-apk', dest='test_apk', |
| + help=('The name of the apk containing the tests ' |
| + '(without the .apk extension). For SDK ' |
| + 'builds, the apk name without the debug ' |
| + 'suffix(for example, ContentShellTest).')) |
| + |
| + |
| +def AddUIAutomatorOptions(option_parser): |
| + """Decorates OptionParser with uiautomator tests options.""" |
| + |
| + AddCommonInstrumentationOptions(option_parser) |
| + option_parser.add_option( |
| + '--package-name', |
| + help=('The package name used by the apk containing the application.')) |
| + option_parser.add_option( |
| + '--uiautomator-jar', |
| + help=('Path to the uiautomator jar to be installed on the device.')) |
| + option_parser.add_option( |
| + '--uiautomator-info-jar', |
| + help=('Path to the uiautomator jar for use by proguard.')) |
| + |
| + |
| +def ValidateCommonInstrumentationOptions(option_parser, options, args): |
| + """Validate common options/arguments and populate options with defaults.""" |
| if len(args) > 1: |
| option_parser.print_help(sys.stderr) |
| option_parser.error('Unknown arguments: %s' % args[1:]) |
| + |
| if options.java_only and options.python_only: |
| option_parser.error('Options java_only (-j) and python_only (-p) ' |
| 'are mutually exclusive.') |
| - if not options.test_apk: |
| - option_parser.error('--test-apk must be specified.') |
| - |
| options.run_java_tests = True |
| options.run_python_tests = True |
| if options.java_only: |
| @@ -211,6 +232,21 @@ def ValidateInstrumentationOptions(option_parser, options, args): |
| elif options.python_only: |
| options.run_java_tests = False |
| + if options.annotation_str: |
| + options.annotation = options.annotation_str.split() |
| + elif options.test_filter: |
| + options.annotation = [] |
| + else: |
| + options.annotation = ['Smoke', 'SmallTest', 'MediumTest', 'LargeTest'] |
| + |
| + |
| +def ValidateInstrumentationOptions(option_parser, options, args): |
| + """Validate options/arguments and populate options with defaults.""" |
| + ValidateCommonInstrumentationOptions(option_parser, options, args) |
| + |
| + if not options.test_apk: |
| + option_parser.error('--test-apk must be specified.') |
| + |
| if os.path.exists(options.test_apk): |
| # The APK is fully qualified, assume the JAR lives along side. |
| options.test_apk_path = options.test_apk |
| @@ -224,9 +260,18 @@ def ValidateInstrumentationOptions(option_parser, options, args): |
| options.test_apk_jar_path = os.path.join( |
| _SDK_OUT_DIR, options.build_type, constants.SDK_BUILD_TEST_JAVALIB_DIR, |
| '%s.jar' % options.test_apk) |
| - if options.annotation_str: |
| - options.annotation = options.annotation_str.split() |
| - elif options.test_filter: |
| - options.annotation = [] |
| - else: |
| - options.annotation = ['Smoke', 'SmallTest', 'MediumTest', 'LargeTest'] |
| + |
| + |
| +def ValidateUIAutomatorOptions(option_parser, options, args): |
| + """Validate uiautomator options/arguments.""" |
| + ValidateCommonInstrumentationOptions(option_parser, options, args) |
| + |
| + if not options.package_name: |
| + option_parser.error('--package-name must be specified.') |
| + |
| + if not options.uiautomator_jar: |
| + option_parser.error('--uiautomator-jar must be specified.') |
| + |
| + if not options.uiautomator_info_jar: |
| + option_parser.error('--uiautomator-info-jar must be specified.') |
| + |