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

Side by Side Diff: build/android/pylib/device/device_utils.py

Issue 796503004: [Android] Work around pm path bug in L. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase + fix tests Created 6 years 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 unified diff | Download patch
« no previous file with comments | « no previous file | build/android/pylib/device/device_utils_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Provides a variety of device interactions based on adb. 5 """Provides a variety of device interactions based on adb.
6 6
7 Eventually, this will be based on adb_wrapper. 7 Eventually, this will be based on adb_wrapper.
8 """ 8 """
9 # pylint: disable=W0613 9 # pylint: disable=W0613
10 10
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 @decorators.WithTimeoutAndRetriesFromInstance() 249 @decorators.WithTimeoutAndRetriesFromInstance()
250 def GetApplicationPath(self, package, timeout=None, retries=None): 250 def GetApplicationPath(self, package, timeout=None, retries=None):
251 """Get the path of the installed apk on the device for the given package. 251 """Get the path of the installed apk on the device for the given package.
252 252
253 Args: 253 Args:
254 package: Name of the package. 254 package: Name of the package.
255 255
256 Returns: 256 Returns:
257 Path to the apk on the device if it exists, None otherwise. 257 Path to the apk on the device if it exists, None otherwise.
258 """ 258 """
259 # 'pm path' is liable to incorrectly exit with a nonzero number starting
260 # in Lollipop.
261 # TODO(jbudorick): Check if this is fixed as new Android versions are
262 # released to put an upper bound on this.
263 should_check_return = (self.build_version_sdk <
264 constants.ANDROID_SDK_VERSION_CODES.LOLLIPOP)
259 output = self.RunShellCommand(['pm', 'path', package], single_line=True, 265 output = self.RunShellCommand(['pm', 'path', package], single_line=True,
260 check_return=True) 266 check_return=should_check_return)
261 if not output: 267 if not output:
262 return None 268 return None
263 if not output.startswith('package:'): 269 if not output.startswith('package:'):
264 raise device_errors.CommandFailedError('pm path returned: %r' % output, 270 raise device_errors.CommandFailedError('pm path returned: %r' % output,
265 str(self)) 271 str(self))
266 return output[len('package:'):] 272 return output[len('package:'):]
267 273
268 @decorators.WithTimeoutAndRetriesFromInstance() 274 @decorators.WithTimeoutAndRetriesFromInstance()
269 def WaitUntilFullyBooted(self, wifi=False, timeout=None, retries=None): 275 def WaitUntilFullyBooted(self, wifi=False, timeout=None, retries=None):
270 """Wait for the device to fully boot. 276 """Wait for the device to fully boot.
(...skipping 992 matching lines...) Expand 10 before | Expand all | Expand 10 after
1263 Returns: 1269 Returns:
1264 A Parallelizer operating over |devices|. 1270 A Parallelizer operating over |devices|.
1265 """ 1271 """
1266 if not devices: 1272 if not devices:
1267 devices = adb_wrapper.AdbWrapper.GetDevices() 1273 devices = adb_wrapper.AdbWrapper.GetDevices()
1268 devices = [d if isinstance(d, cls) else cls(d) for d in devices] 1274 devices = [d if isinstance(d, cls) else cls(d) for d in devices]
1269 if async: 1275 if async:
1270 return parallelizer.Parallelizer(devices) 1276 return parallelizer.Parallelizer(devices)
1271 else: 1277 else:
1272 return parallelizer.SyncParallelizer(devices) 1278 return parallelizer.SyncParallelizer(devices)
OLDNEW
« no previous file with comments | « no previous file | build/android/pylib/device/device_utils_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698