Chromium Code Reviews| 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 |