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

Unified Diff: build/android/emulator.py

Issue 8831002: Android buildbot: be more tolerant of 'stuck' devices. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: bulach feedback Created 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/emulator.py
diff --git a/build/android/emulator.py b/build/android/emulator.py
index b5e4436cd12097cebbc300e39d5a745e565259b5..681a3c17bbb9debf514fc0179ed5ada49314dbf1 100755
--- a/build/android/emulator.py
+++ b/build/android/emulator.py
@@ -81,12 +81,16 @@ class Emulator(object):
# Signals we listen for to kill the emulator on
_SIGNALS = (signal.SIGINT, signal.SIGHUP)
- # Time to wait for an emulator launch, in seconds.
- _EMULATOR_LAUNCH_TIMEOUT = 120
+ # Time to wait for an emulator launch, in seconds. This includes
+ # the time to launch the emulator and a wait-for-device command.
+ _LAUNCH_TIMEOUT = 120
# Timeout interval of wait-for-device command before bouncing to a a
# process life check.
- _EMULATOR_WFD_TIMEOUT = 5
+ _WAITFORDEVICE_TIMEOUT = 5
+
+ # Time to wait for a "wait for boot complete" (property set on device).
+ _WAITFORBOOT_TIMEOUT = 120
def __init__(self):
try:
@@ -137,26 +141,28 @@ class Emulator(object):
seconds_waited = 0
number_of_waits = 2 # Make sure we can wfd twice
adb_cmd = "adb -s %s %s" % (self.device, 'wait-for-device')
- while seconds_waited < self._EMULATOR_LAUNCH_TIMEOUT:
+ while seconds_waited < self._LAUNCH_TIMEOUT:
try:
- run_command.RunCommand(adb_cmd, timeout_time=self._EMULATOR_WFD_TIMEOUT,
+ run_command.RunCommand(adb_cmd,
+ timeout_time=self._WAITFORDEVICE_TIMEOUT,
retry_count=1)
number_of_waits -= 1
if not number_of_waits:
break
except errors.WaitForResponseTimedOutError as e:
- seconds_waited += self._EMULATOR_WFD_TIMEOUT
+ seconds_waited += self._WAITFORDEVICE_TIMEOUT
adb_cmd = "adb -s %s %s" % (self.device, 'kill-server')
run_command.RunCommand(adb_cmd)
self.popen.poll()
if self.popen.returncode != None:
raise EmulatorLaunchException('EMULATOR DIED')
- if seconds_waited >= self._EMULATOR_LAUNCH_TIMEOUT:
+ if seconds_waited >= self._LAUNCH_TIMEOUT:
raise EmulatorLaunchException('TIMEOUT with wait-for-device')
logging.info('Seconds waited on wait-for-device: %d', seconds_waited)
# Now that we checked for obvious problems, wait for a boot complete.
# Waiting for the package manager has been problematic.
- a.Adb().WaitForBootComplete()
+ a.Adb().SetTargetSerial(self.device)
+ a.Adb().WaitForBootComplete(self._WAITFORBOOT_TIMEOUT)
def Shutdown(self):
"""Shuts down the process started by launch."""
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698