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

Unified Diff: build/android/pylib/remote/device/remote_device_gtest_run.py

Issue 1415533007: [Android] Add sharding for AMP instrumentation tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 months 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
Index: build/android/pylib/remote/device/remote_device_gtest_run.py
diff --git a/build/android/pylib/remote/device/remote_device_gtest_run.py b/build/android/pylib/remote/device/remote_device_gtest_run.py
index 0cfe717615bbd85a06c4481459b4f717f9094e62..05058939bae4762d34b9a80bf6bc8157637fd7be 100644
--- a/build/android/pylib/remote/device/remote_device_gtest_run.py
+++ b/build/android/pylib/remote/device/remote_device_gtest_run.py
@@ -23,67 +23,83 @@ class RemoteDeviceGtestTestRun(remote_device_test_run.RemoteDeviceTestRun):
DEFAULT_RUNNER_PACKAGE = (
'org.chromium.native_test.NativeTestInstrumentationTestRunner')
+ _INSTRUMENTATION_STREAM_LEADER = 'INSTRUMENTATION_STATUS: stream='
#override
- def TestPackage(self):
- return self._test_instance.suite
+ def _GetAdditionalApks(self):
+ return None
+
+ #override
+ def _GetAppPath(self):
+ return os.path.join(
+ constants.GetOutDirectory(), 'apks', 'remote_device_dummy.apk')
#override
- def _TriggerSetUp(self):
- """Set up the triggering of a test run."""
- logging.info('Triggering test run.')
+ def _GetTestFramework(self):
+ if self._env.test_framework:
+ logging.warning('Ignoring configured test_framework "%s"',
+ self._env.test_framework)
+ return 'robotium'
- if self._env.runner_type:
- logging.warning('Ignoring configured runner_type "%s"',
- self._env.runner_type)
+ #override
+ def _GetTestPath(self):
+ return self._test_instance.apk
+ #override
+ def _GetTestRunnerName(self):
rnephew (Reviews Here) 2015/10/26 20:42:18 Same questions as remote_device_instrumentation_te
mikecase (-- gone --) 2015/10/27 01:27:43 Merged _GetTestRunnerName.
if not self._env.runner_package:
runner_package = self.DEFAULT_RUNNER_PACKAGE
logging.info('Using default runner package: %s',
self.DEFAULT_RUNNER_PACKAGE)
else:
runner_package = self._env.runner_package
+ return runner_package
- dummy_app_path = os.path.join(
- constants.GetOutDirectory(), 'apks', 'remote_device_dummy.apk')
-
- # pylint: disable=protected-access
- with tempfile.NamedTemporaryFile(suffix='.flags.txt') as flag_file:
- env_vars = dict(self._test_instance.extras)
- if gtest_test_instance.EXTRA_SHARD_NANO_TIMEOUT not in env_vars:
- env_vars[gtest_test_instance.EXTRA_SHARD_NANO_TIMEOUT] = int(
- self._test_instance.shard_timeout * 1e9)
-
- flags = []
-
- filter_string = self._test_instance._GenerateDisabledFilterString(None)
- if filter_string:
- flags.append('--gtest_filter=%s' % filter_string)
+ #override
+ def _GetFrameworkConfigs(self):
+ return {'runner': self._GetTestRunnerName()}
- if self._test_instance.test_arguments:
- flags.append(self._test_instance.test_arguments)
+ # pylint: disable=protected-access
jbudorick 2015/10/26 22:23:30 This is a bad sign.
mikecase (-- gone --) 2015/10/27 01:27:43 This was like this before. And you told me offline
+ #override
+ def _GetShardEnvironmentVars(self, num_shards):
+ """Returns a list of shard specfic environment configs."""
+ flag_file = tempfile.NamedTemporaryFile(
jbudorick 2015/10/26 22:23:30 this is also a bad sign - is this ever removed?
mikecase (-- gone --) 2015/10/27 01:27:43 yes, it is make in dir=self._base_tempfile_dir. Th
+ suffix='.flags.txt', dir=self._base_tempfile_dir, delete=False)
+ env_vars = dict(self._test_instance.extras)
+ if gtest_test_instance.EXTRA_SHARD_NANO_TIMEOUT not in env_vars:
+ env_vars[gtest_test_instance.EXTRA_SHARD_NANO_TIMEOUT] = int(
+ self._test_instance.shard_timeout * 1e9)
+ flags = []
+ filter_string = self._test_instance._GenerateDisabledFilterString(None)
+ if filter_string:
jbudorick 2015/10/26 22:23:30 nit: Bring back the line breaks you deleted.
mikecase (-- gone --) 2015/10/27 01:27:43 Ok. The lines are back.
+ flags.append('--gtest_filter=%s' % filter_string)
+ if self._test_instance.test_arguments:
+ flags.append(self._test_instance.test_arguments)
+ if flags:
+ flag_file.write('_ ' + ' '.join(flags))
+ flag_file.flush()
+ env_vars[_EXTRA_COMMAND_LINE_FILE] = os.path.basename(flag_file.name)
+ self._test_instance._data_deps.append(
+ (os.path.abspath(flag_file.name), None))
+ return [dict(env_vars) for _ in range(num_shards)]
- if flags:
- flag_file.write('_ ' + ' '.join(flags))
- flag_file.flush()
- env_vars[_EXTRA_COMMAND_LINE_FILE] = os.path.basename(flag_file.name)
- self._test_instance._data_deps.append(
- (os.path.abspath(flag_file.name), None))
- self._AmInstrumentTestSetup(
- dummy_app_path, self._test_instance.apk, runner_package,
- environment_variables=env_vars)
+ #override
+ def _ShouldShard(self):
+ return False
- _INSTRUMENTATION_STREAM_LEADER = 'INSTRUMENTATION_STATUS: stream='
+ #override
+ def TestPackage(self):
+ return self._test_instance.suite
#override
- def _ParseTestResults(self):
+ def _ParseTestResults(self, test_output, results_zip):
logging.info('Parsing results from stdout.')
results = base_test_result.TestRunResults()
- output = self._results['results']['output'].splitlines()
+ output = test_output['results']['output'].splitlines()
output = (l[len(self._INSTRUMENTATION_STREAM_LEADER):] for l in output
if l.startswith(self._INSTRUMENTATION_STREAM_LEADER))
results_list = self._test_instance.ParseGTestOutput(output)
results.AddResults(results_list)
- self._DetectPlatformErrors(results)
+ self._DetectPlatformErrors(results, test_output, results_zip)
return results

Powered by Google App Engine
This is Rietveld 408576698