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

Unified Diff: build/android/test_runner.py

Issue 706203003: Update from https://crrev.com/303153 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/android/setup.gyp ('k') | build/common.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/test_runner.py
diff --git a/build/android/test_runner.py b/build/android/test_runner.py
index 1baebc1bd69c022f505cf84ea6ee58fc3404f3df..2e39c3c3e31f44d42cf6985ae05de614a0ee3115 100755
--- a/build/android/test_runner.py
+++ b/build/android/test_runner.py
@@ -21,7 +21,10 @@ from pylib import constants
from pylib import forwarder
from pylib import ports
from pylib.base import base_test_result
+from pylib.base import environment_factory
from pylib.base import test_dispatcher
+from pylib.base import test_instance_factory
+from pylib.base import test_run_factory
from pylib.gtest import gtest_config
from pylib.gtest import setup as gtest_setup
from pylib.gtest import test_options as gtest_test_options
@@ -45,9 +48,6 @@ from pylib.utils import reraiser_thread
from pylib.utils import run_tests_helper
-HOST_TESTS = ['junit', 'python']
-
-
def AddCommonOptions(option_parser):
"""Adds all common options to |option_parser|."""
@@ -78,15 +78,26 @@ def AddCommonOptions(option_parser):
dest='flakiness_dashboard_server',
help=('Address of the server that is hosting the '
'Chrome for Android flakiness dashboard.'))
+ group.add_option('--enable-platform-mode', action='store_true',
+ help=('Run the test scripts in platform mode, which '
+ 'conceptually separates the test runner from the '
+ '"device" (local or remote, real or emulated) on '
+ 'which the tests are running. [experimental]'))
+ group.add_option('-e', '--environment', default='local',
+ help=('Test environment to run in. Must be one of: %s' %
+ ', '.join(constants.VALID_ENVIRONMENTS)))
option_parser.add_option_group(group)
-def ProcessCommonOptions(options):
+def ProcessCommonOptions(options, error_func):
"""Processes and handles all common options."""
run_tests_helper.SetLogLevel(options.verbose_count)
constants.SetBuildType(options.build_type)
if options.build_directory:
constants.SetBuildDirectory(options.build_directory)
+ if options.environment not in constants.VALID_ENVIRONMENTS:
+ error_func('--environment must be one of: %s' %
+ ', '.join(constants.VALID_ENVIRONMENTS))
def AddDeviceOptions(option_parser):
@@ -832,9 +843,12 @@ def RunTestsCommand(command, options, args, option_parser):
option_parser.error('Unrecognized arguments: %s' % (' '.join(args)))
return constants.ERROR_EXIT_CODE
- ProcessCommonOptions(options)
+ ProcessCommonOptions(options, option_parser.error)
+
+ if options.enable_platform_mode:
+ return RunTestsInPlatformMode(command, options, option_parser)
- if command in HOST_TESTS:
+ if command in constants.LOCAL_MACHINE_TESTS:
devices = []
else:
devices = _GetAttachedDevices(options.test_device)
@@ -863,6 +877,35 @@ def RunTestsCommand(command, options, args, option_parser):
raise Exception('Unknown test type.')
+_SUPPORTED_IN_PLATFORM_MODE = [
+ # TODO(jbudorick): Add support for more test types.
+ 'gtest',
+]
+
+
+def RunTestsInPlatformMode(command, options, option_parser):
+
+ if command not in _SUPPORTED_IN_PLATFORM_MODE:
+ option_parser.error('%s is not yet supported in platform mode' % command)
+
+ with environment_factory.CreateEnvironment(
+ command, options, option_parser.error) as env:
+ with test_instance_factory.CreateTestInstance(
+ command, options, option_parser.error) as test:
+ with test_run_factory.CreateTestRun(
+ options, env, test, option_parser.error) as test_run:
+ results = test_run.RunTests()
+
+ report_results.LogFull(
+ results=results,
+ test_type=test.TestType(),
+ test_package=test_run.TestPackage(),
+ annotation=options.annotations,
+ flakiness_server=options.flakiness_dashboard_server)
+
+ return results
+
+
def HelpCommand(command, _options, args, option_parser):
"""Display help for a certain command, or overall help.
« no previous file with comments | « build/android/setup.gyp ('k') | build/common.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698