Android: makes "RestartAdbdOnDevice" more robust.

Some bots fail on the command that kills adbd on the device,
even though the device should be online and available.

BUG=322132

Review URL: https://codereview.chromium.org/91563002

git-svn-id: http://src.chromium.org/svn/trunk/src/build@237708 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This commit is contained in:
bulach@chromium.org 2013-11-28 06:35:32 +00:00
Родитель 373a1188a6
Коммит c60e3f540f
1 изменённых файлов: 12 добавлений и 4 удалений

Просмотреть файл

@ -465,10 +465,18 @@ class AndroidCommands(object):
def RestartAdbdOnDevice(self): def RestartAdbdOnDevice(self):
logging.info('Killing adbd on the device...') logging.info('Killing adbd on the device...')
adb_pids = self.KillAll('adbd', signal=signal.SIGTERM, with_su=True) adb_pids = self.ExtractPid('adbd')
assert adb_pids, 'Unable to obtain adbd pid' if not adb_pids:
logging.info('Waiting for device to settle...') raise errors.MsgException('Unable to obtain adbd pid')
self._adb.SendCommand('wait-for-device') try:
self.KillAll('adbd', signal=signal.SIGTERM, with_su=True)
logging.info('Waiting for device to settle...')
self._adb.SendCommand('wait-for-device')
new_adb_pids = self.ExtractPid('adbd')
if new_adb_pids == adb_pids:
logging.error('adbd on the device may not have been restarted.')
except Exception as e:
logging.error('Exception when trying to kill adbd on the device [%s]', e)
def RestartAdbServer(self): def RestartAdbServer(self):
"""Restart the adb server.""" """Restart the adb server."""