Index: build/android/pylib/android_commands.py |
diff --git a/build/android/pylib/android_commands.py b/build/android/pylib/android_commands.py |
index 8a1562caad5e298bff78291404890ead877ecd40..e919c48b54c2dc79551b637d6a70e726003f1872 100644 |
--- a/build/android/pylib/android_commands.py |
+++ b/build/android/pylib/android_commands.py |
@@ -107,6 +107,12 @@ def GetAttachedDevices(): |
devices.insert(0, preferred_device) |
return devices |
+def IsDeviceAttached(device): |
Isaac (away)
2012/10/24 17:33:12
We can simplify this to:
def IsDeviceAttached(dev
yongsheng
2012/10/25 01:20:06
yes, that's good. I'll change it.
|
+ devices = GetAttachedDevices() |
+ if device in devices: |
+ return True |
+ return False |
+ |
def _GetFilesFromRecursiveLsOutput(path, ls_output, re_file, utc_offset=None): |
"""Gets a list of files from `ls` command output. |
@@ -196,6 +202,7 @@ class AndroidCommands(object): |
self._adb = adb_interface.AdbInterface() |
if device: |
self._adb.SetTargetSerial(device) |
+ self._device = device |
self._logcat = None |
self.logcat_process = None |
self._pushed_files = [] |
@@ -1040,14 +1047,20 @@ class AndroidCommands(object): |
True if the file exists, False otherwise. |
""" |
assert '"' not in file_name, 'file_name cannot contain double quotes' |
- status = self._adb.SendShellCommand( |
- '\'test -e "%s"; echo $?\'' % (file_name)) |
- if 'test: not found' not in status: |
+ try: |
+ status = self._adb.SendShellCommand( |
+ '\'test -e "%s"; echo $?\'' % (file_name)) |
+ if 'test: not found' not in status: |
+ return int(status) == 0 |
+ |
+ status = self._adb.SendShellCommand( |
+ '\'ls "%s" >/dev/null 2>&1; echo $?\'' % (file_name)) |
return int(status) == 0 |
+ except ValueError: |
+ if IsDeviceAttached(self._device): |
+ raise errors.DeviceUnresponsiveError('Device may be offline.') |
- status = self._adb.SendShellCommand( |
- '\'ls "%s" >/dev/null 2>&1; echo $?\'' % (file_name)) |
- return int(status) == 0 |
+ return False |
class NewLineNormalizer(object): |