| Index: build/android/test_runner.py
|
| diff --git a/build/android/test_runner.py b/build/android/test_runner.py
|
| index 4113158fd38235779b852788867da6071b183cc3..d304392bd544c2c01b9a646ad6b45221e03f4efa 100755
|
| --- a/build/android/test_runner.py
|
| +++ b/build/android/test_runner.py
|
| @@ -26,6 +26,8 @@ from pylib.gtest import test_options as gtest_test_options
|
| from pylib.host_driven import setup as host_driven_setup
|
| from pylib.instrumentation import setup as instrumentation_setup
|
| from pylib.instrumentation import test_options as instrumentation_test_options
|
| +from pylib.monkey import setup as monkey_setup
|
| +from pylib.monkey import test_options as monkey_test_options
|
| from pylib.uiautomator import setup as uiautomator_setup
|
| from pylib.uiautomator import test_options as uiautomator_test_options
|
| from pylib.utils import report_results
|
| @@ -330,7 +332,7 @@ def ProcessUIAutomatorOptions(options, error_func):
|
|
|
| Returns:
|
| A UIAutomatorOptions named tuple which contains all options relevant to
|
| - instrumentation tests.
|
| + uiautomator tests.
|
| """
|
|
|
| ProcessJavaTestOptions(options, error_func)
|
| @@ -369,6 +371,63 @@ def ProcessUIAutomatorOptions(options, error_func):
|
| options.package_name)
|
|
|
|
|
| +def AddMonkeyTestOptions(option_parser):
|
| + """Adds monkey test options to |option_parser|."""
|
| + option_parser.add_option('--package-name', help='Allowed package.')
|
| + option_parser.add_option(
|
| + '--activity-name', default='com.google.android.apps.chrome.Main',
|
| + help='Name of the activity to start [default: %default].')
|
| + option_parser.add_option(
|
| + '--event-count', default=10000, type='int',
|
| + help='Number of events to generate [default: %default].')
|
| + option_parser.add_option(
|
| + '--category', default='',
|
| + help='A list of allowed categories [default: %default].')
|
| + option_parser.add_option(
|
| + '--throttle', default=100, type='int',
|
| + help='Delay between events (ms) [default: %default]. ')
|
| + option_parser.add_option(
|
| + '--seed', type='int',
|
| + help=('Seed value for pseudo-random generator. Same seed value generates '
|
| + 'the same sequence of events. Seed is randomized by default.'))
|
| + option_parser.add_option(
|
| + '--extra-args', default='',
|
| + help=('String of other args to pass to the command verbatim '
|
| + '[default: "%default"].'))
|
| +
|
| + AddCommonOptions(option_parser)
|
| +
|
| +
|
| +def ProcessMonkeyTestOptions(options, error_func):
|
| + """Processes all monkey test options.
|
| +
|
| + Args:
|
| + options: optparse.Options object.
|
| + error_func: Function to call with the error message in case of an error.
|
| +
|
| + Returns:
|
| + A MonkeyOptions named tuple which contains all options relevant to
|
| + monkey tests.
|
| + """
|
| + if not options.package_name:
|
| + error_func('Package name is required.')
|
| +
|
| + category = options.category
|
| + if category:
|
| + category = options.category.split(',')
|
| +
|
| + return monkey_test_options.MonkeyOptions(
|
| + options.build_type,
|
| + options.verbose_count,
|
| + options.package_name,
|
| + options.activity_name,
|
| + options.event_count,
|
| + category,
|
| + options.throttle,
|
| + options.seed,
|
| + options.extra_args)
|
| +
|
| +
|
| def _RunGTests(options, error_func):
|
| """Subcommand of RunTestsCommands which runs gtests."""
|
| ProcessGTestOptions(options)
|
| @@ -466,9 +525,6 @@ def _RunUIAutomatorTests(options, error_func):
|
| """Subcommand of RunTestsCommands which runs uiautomator tests."""
|
| uiautomator_options = ProcessUIAutomatorOptions(options, error_func)
|
|
|
| - results = base_test_result.TestRunResults()
|
| - exit_code = 0
|
| -
|
| runner_factory, tests = uiautomator_setup.Setup(uiautomator_options)
|
|
|
| results, exit_code = test_dispatcher.RunTests(
|
| @@ -489,6 +545,25 @@ def _RunUIAutomatorTests(options, error_func):
|
| return exit_code
|
|
|
|
|
| +def _RunMonkeyTests(options, error_func):
|
| + """Subcommand of RunTestsCommands which runs monkey tests."""
|
| + monkey_options = ProcessMonkeyTestOptions(options, error_func)
|
| +
|
| + runner_factory, tests = monkey_setup.Setup(monkey_options)
|
| +
|
| + results, exit_code = test_dispatcher.RunTests(
|
| + tests, runner_factory, False, None, shard=False)
|
| +
|
| + report_results.LogFull(
|
| + results=results,
|
| + test_type='Monkey',
|
| + test_package='Monkey',
|
| + build_type=options.build_type)
|
| +
|
| + return exit_code
|
| +
|
| +
|
| +
|
| def RunTestsCommand(command, options, args, option_parser):
|
| """Checks test type and dispatches to the appropriate function.
|
|
|
| @@ -520,6 +595,8 @@ def RunTestsCommand(command, options, args, option_parser):
|
| return _RunInstrumentationTests(options, option_parser.error)
|
| elif command == 'uiautomator':
|
| return _RunUIAutomatorTests(options, option_parser.error)
|
| + elif command == 'monkey':
|
| + return _RunMonkeyTests(options, option_parser.error)
|
| else:
|
| raise Exception('Unknown test type.')
|
|
|
| @@ -576,6 +653,8 @@ VALID_COMMANDS = {
|
| AddInstrumentationTestOptions, RunTestsCommand),
|
| 'uiautomator': CommandFunctionTuple(
|
| AddUIAutomatorTestOptions, RunTestsCommand),
|
| + 'monkey': CommandFunctionTuple(
|
| + AddMonkeyTestOptions, RunTestsCommand),
|
| 'help': CommandFunctionTuple(lambda option_parser: None, HelpCommand)
|
| }
|
|
|
|
|