summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjbudorick <jbudorick@chromium.org>2015-12-14 13:35:46 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-14 21:36:40 +0000
commitd2faab80fa1d4e178254e4e3e3366423acc6ba15 (patch)
tree86ca457f7462d14ecf5866709288c2f76d4c2729
parent1eb49fb9a056c509efb809f4547c4a1c072b48d9 (diff)
downloadchromium_src-d2faab80fa1d4e178254e4e3e3366423acc6ba15.zip
chromium_src-d2faab80fa1d4e178254e4e3e3366423acc6ba15.tar.gz
chromium_src-d2faab80fa1d4e178254e4e3e3366423acc6ba15.tar.bz2
[telemetry] Catch NoAdbError when killing the adb server.
BUG=567797,568151 Review URL: https://codereview.chromium.org/1526633003 Cr-Commit-Position: refs/heads/master@{#365102}
-rw-r--r--build/android/devil/android/device_errors.py4
-rw-r--r--build/android/devil/android/sdk/adb_wrapper.py2
-rw-r--r--tools/telemetry/telemetry/internal/platform/android_device.py12
3 files changed, 13 insertions, 5 deletions
diff --git a/build/android/devil/android/device_errors.py b/build/android/devil/android/device_errors.py
index 2fe5a80..ea14bf9 100644
--- a/build/android/devil/android/device_errors.py
+++ b/build/android/devil/android/device_errors.py
@@ -112,6 +112,6 @@ class NoDevicesError(base_error.BaseError):
class NoAdbError(base_error.BaseError):
"""Exception for being unable to find ADB."""
- def __init__(self):
+ def __init__(self, msg=None):
super(NoAdbError, self).__init__(
- 'Unable to find adb.', is_infra_error=True)
+ msg or 'Unable to find adb.', is_infra_error=True)
diff --git a/build/android/devil/android/sdk/adb_wrapper.py b/build/android/devil/android/sdk/adb_wrapper.py
index 38db0e1..17288c2 100644
--- a/build/android/devil/android/sdk/adb_wrapper.py
+++ b/build/android/devil/android/sdk/adb_wrapper.py
@@ -115,7 +115,7 @@ class AdbWrapper(object):
timeout_retry.CurrentTimeoutThreadGroup().GetRemainingTime())
except OSError as e:
if e.errno in (errno.ENOENT, errno.ENOEXEC):
- raise device_errors.NoAdbError()
+ raise device_errors.NoAdbError(msg=str(e))
else:
raise
diff --git a/tools/telemetry/telemetry/internal/platform/android_device.py b/tools/telemetry/telemetry/internal/platform/android_device.py
index b3448b69..bcddb60 100644
--- a/tools/telemetry/telemetry/internal/platform/android_device.py
+++ b/tools/telemetry/telemetry/internal/platform/android_device.py
@@ -129,7 +129,11 @@ def GetDevice(finder_options):
def _HasValidAdb():
- """Returns true if adb is present."""
+ """Returns true if adb is present.
+
+ Note that this currently will return True even if the adb that's present
+ cannot run on this system.
+ """
if os.name != 'posix' or cros_device.IsRunningOnCrOS():
return False
@@ -186,6 +190,10 @@ def FindAllAvailableDevices(options):
devices = AndroidDevice.GetAllConnectedDevices(blacklist)
finally:
if not devices and _HasValidAdb():
- adb_wrapper.AdbWrapper.KillServer()
+ try:
+ adb_wrapper.AdbWrapper.KillServer()
+ except device_errors.NoAdbError as e:
+ logging.warning(
+ 'adb reported as present, but NoAdbError thrown: %s', str(e))
return devices