| Index: build/android/test_runner.py
|
| diff --git a/build/android/test_runner.py b/build/android/test_runner.py
|
| index 26c4e291d44d396fd109570cdaa7cb60e5db27d3..8acce41e52afe1caf45c0bcb8a7c613acec3ca9d 100755
|
| --- a/build/android/test_runner.py
|
| +++ b/build/android/test_runner.py
|
| @@ -33,6 +33,7 @@ from pylib.perf import test_options as perf_test_options
|
| from pylib.perf import test_runner as perf_test_runner
|
| from pylib.uiautomator import setup as uiautomator_setup
|
| from pylib.uiautomator import test_options as uiautomator_test_options
|
| +from pylib.utils import command_option_parser
|
| from pylib.utils import report_results
|
| from pylib.utils import run_tests_helper
|
|
|
| @@ -228,6 +229,9 @@ def AddInstrumentationTestOptions(option_parser):
|
| help=('The name of the apk containing the tests '
|
| '(without the .apk extension; e.g. "ContentShellTest"). '
|
| 'Alternatively, this can be a full path to the apk.'))
|
| + option_parser.add_option('--coverage-dir',
|
| + help=('Directory in which to place all generated '
|
| + 'EMMA coverage files.'))
|
|
|
|
|
| def ProcessInstrumentationOptions(options, error_func):
|
| @@ -285,6 +289,7 @@ def ProcessInstrumentationOptions(options, error_func):
|
| options.save_perf_json,
|
| options.screenshot_failures,
|
| options.wait_for_debugger,
|
| + options.coverage_dir,
|
| options.test_apk,
|
| options.test_apk_path,
|
| options.test_apk_jar_path)
|
| @@ -701,47 +706,10 @@ VALID_COMMANDS = {
|
| }
|
|
|
|
|
| -class CommandOptionParser(optparse.OptionParser):
|
| - """Wrapper class for OptionParser to help with listing commands."""
|
| -
|
| - def __init__(self, *args, **kwargs):
|
| - self.command_list = kwargs.pop('command_list', [])
|
| - self.example = kwargs.pop('example', '')
|
| - optparse.OptionParser.__init__(self, *args, **kwargs)
|
| -
|
| - #override
|
| - def get_usage(self):
|
| - normal_usage = optparse.OptionParser.get_usage(self)
|
| - command_list = self.get_command_list()
|
| - example = self.get_example()
|
| - return self.expand_prog_name(normal_usage + example + command_list)
|
| -
|
| - #override
|
| - def get_command_list(self):
|
| - if self.command_list:
|
| - return '\nCommands:\n %s\n' % '\n '.join(sorted(self.command_list))
|
| - return ''
|
| -
|
| - def get_example(self):
|
| - if self.example:
|
| - return '\nExample:\n %s\n' % self.example
|
| - return ''
|
| -
|
| -
|
| def main(argv):
|
| - option_parser = CommandOptionParser(
|
| - usage='Usage: %prog <command> [options]',
|
| - command_list=VALID_COMMANDS.keys())
|
| -
|
| - if len(argv) < 2 or argv[1] not in VALID_COMMANDS:
|
| - # Parse args first, if this is '--help', optparse will display help and exit
|
| - option_parser.parse_args(argv)
|
| - option_parser.error('Invalid command.')
|
| - command = argv[1]
|
| - VALID_COMMANDS[command].add_options_func(option_parser)
|
| - options, args = option_parser.parse_args(argv)
|
| - return VALID_COMMANDS[command].run_command_func(
|
| - command, options, args, option_parser)
|
| + option_parser = command_option_parser.CommandOptionParser(
|
| + commands_dict=VALID_COMMANDS)
|
| + return command_option_parser.ParseAndExecute(option_parser)
|
|
|
|
|
| if __name__ == '__main__':
|
|
|