Index: build/android/pylib/device/decorators.py |
diff --git a/build/android/pylib/device/decorators.py b/build/android/pylib/device/decorators.py |
index 29e46ff18b9fadc2e96a398c9e7c0a3e108678fe..09803dd253526072a0cac1919fdefa25dbe3fb5a 100644 |
--- a/build/android/pylib/device/decorators.py |
+++ b/build/android/pylib/device/decorators.py |
@@ -7,11 +7,20 @@ Function/method decorators that provide timeout and retry logic. |
""" |
import functools |
+import os |
+import sys |
+from pylib import constants |
from pylib.device import device_errors |
from pylib.utils import reraiser_thread |
from pylib.utils import timeout_retry |
+# TODO(jbudorick) Remove once the DeviceUtils implementations are no longer |
+# backed by AndroidCommands / android_testrunner. |
+sys.path.append(os.path.join(constants.DIR_SOURCE_ROOT, 'third_party', |
+ 'android_testrunner')) |
+import errors as old_errors |
+ |
def _TimeoutRetryWrapper(f, timeout_func, retries_func): |
@functools.wraps(f) |
@@ -22,6 +31,10 @@ def _TimeoutRetryWrapper(f, timeout_func, retries_func): |
return f(*args, **kwargs) |
try: |
return timeout_retry.Run(impl, timeout, retries) |
+ except old_errors.WaitForResponseTimedOutError as e: |
+ raise device_errors.CommandTimeoutError(str(e)) |
+ except old_errors.DeviceUnresponsiveError as e: |
+ raise device_errors.DeviceUnreachableError(str(e)) |
except reraiser_thread.TimeoutError as e: |
raise device_errors.CommandTimeoutError(str(e)) |
return TimeoutRetryWrapper |