Chromium Code Reviews| Index: build/android/pylib/local/device/local_device_instrumentation_test_run.py |
| diff --git a/build/android/pylib/local/device/local_device_instrumentation_test_run.py b/build/android/pylib/local/device/local_device_instrumentation_test_run.py |
| index c0850fa0c8d61db4aa6ff2c23c64fd33de536de7..8f951c988021dfc7dfe768c9e7dbd72f1e34aa93 100644 |
| --- a/build/android/pylib/local/device/local_device_instrumentation_test_run.py |
| +++ b/build/android/pylib/local/device/local_device_instrumentation_test_run.py |
| @@ -7,6 +7,7 @@ import re |
| import time |
| from devil.android import device_errors |
| +from devil.utils import reraiser_thread |
| from pylib import flag_changer |
| from pylib import valgrind_tools |
| from pylib.base import base_test_result |
| @@ -67,34 +68,57 @@ class LocalDeviceInstrumentationTestRun( |
| @local_device_test_run.handle_shard_failures_with( |
| self._env.BlacklistDevice) |
| def individual_device_set_up(dev, host_device_tuples): |
| - dev.Install(self._test_instance.apk_under_test, |
| - permissions=self._test_instance.apk_under_test_permissions) |
| - dev.Install(self._test_instance.test_apk, |
| - permissions=self._test_instance.test_permissions) |
| - for apk in self._test_instance.additional_apks: |
| - dev.Install(apk) |
| - |
| - external_storage = dev.GetExternalStoragePath() |
| - host_device_tuples = [ |
| - (h, substitute_external_storage(d, external_storage)) |
| - for h, d in host_device_tuples] |
| - logging.info('instrumentation data deps:') |
| - for h, d in host_device_tuples: |
| - logging.info('%r -> %r', h, d) |
| - dev.PushChangedFiles(host_device_tuples) |
| - if self._test_instance.flags: |
| - if not self._test_instance.package_info: |
| - logging.error("Couldn't set flags: no package info") |
| - elif not self._test_instance.package_info.cmdline_file: |
| - logging.error("Couldn't set flags: no cmdline_file") |
| + def install_apk(): |
|
jbudorick
2016/02/09 23:32:32
nit through line 86: either
- no parameters on th
agrieve
2016/02/10 01:56:56
Done.
|
| + if self._test_instance.apk_under_test_incremental_install_script: |
| + local_device_test_run.IncrementalInstall(dev, |
| + self._test_instance.apk_under_test, |
| + self._test_instance.apk_under_test_incremental_install_script) |
| else: |
| - self._CreateFlagChangerIfNeeded(dev) |
| - logging.debug('Attempting to set flags: %r', |
| - self._test_instance.flags) |
| - self._flag_changers[str(dev)].AddFlags(self._test_instance.flags) |
| + dev.Install(self._test_instance.apk_under_test, |
| + permissions=self._test_instance.apk_under_test.GetPermissions()) |
| - valgrind_tools.SetChromeTimeoutScale( |
| - dev, self._test_instance.timeout_scale) |
| + if self._test_instance.test_apk_incremental_install_script: |
| + local_device_test_run.IncrementalInstall(dev, |
| + self._test_instance.test_apk, |
| + self._test_instance.test_apk_incremental_install_script) |
| + else: |
| + dev.Install(self._test_instance.test_apk, |
| + permissions=self._test_instance.test_apk.GetPermissions()) |
| + |
| + for apk in self._test_instance.additional_apks: |
| + dev.Install(apk) |
| + |
| + def push_test_data(): |
| + external_storage = dev.GetExternalStoragePath() |
| + host_device_tuples_substituted = [ |
| + (h, substitute_external_storage(d, external_storage)) |
| + for h, d in host_device_tuples] |
| + logging.info('instrumentation data deps:') |
| + for h, d in host_device_tuples_substituted: |
| + logging.info('%r -> %r', h, d) |
| + dev.PushChangedFiles(host_device_tuples_substituted) |
| + |
| + def create_flag_changer(): |
| + if self._test_instance.flags: |
| + if not self._test_instance.package_info: |
| + logging.error("Couldn't set flags: no package info") |
| + elif not self._test_instance.package_info.cmdline_file: |
| + logging.error("Couldn't set flags: no cmdline_file") |
| + else: |
| + self._CreateFlagChangerIfNeeded(dev) |
| + logging.debug('Attempting to set flags: %r', |
| + self._test_instance.flags) |
| + self._flag_changers[str(dev)].AddFlags(self._test_instance.flags) |
| + |
| + valgrind_tools.SetChromeTimeoutScale( |
| + dev, self._test_instance.timeout_scale) |
| + |
| + steps = (install_apk, push_test_data, create_flag_changer) |
| + if self._env.concurrent_adb: |
| + reraiser_thread.RunAsync(steps) |
| + else: |
| + for step in steps: |
| + step() |
| self._env.parallel_devices.pMap( |
| individual_device_set_up, |