| OLD | NEW |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Provides an interface to start and stop Android emulator. | 5 """Provides an interface to start and stop Android emulator. |
| 6 | 6 |
| 7 Emulator: The class provides the methods to launch/shutdown the emulator with | 7 Emulator: The class provides the methods to launch/shutdown the emulator with |
| 8 the android virtual device named 'avd_armeabi' . | 8 the android virtual device named 'avd_armeabi' . |
| 9 """ | 9 """ |
| 10 | 10 |
| (...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 409 run_command.RunCommand(adb_cmd) | 409 run_command.RunCommand(adb_cmd) |
| 410 self.popen.poll() | 410 self.popen.poll() |
| 411 if self.popen.returncode != None: | 411 if self.popen.returncode != None: |
| 412 raise EmulatorLaunchException('EMULATOR DIED') | 412 raise EmulatorLaunchException('EMULATOR DIED') |
| 413 if seconds_waited >= self._LAUNCH_TIMEOUT: | 413 if seconds_waited >= self._LAUNCH_TIMEOUT: |
| 414 raise EmulatorLaunchException('TIMEOUT with wait-for-device') | 414 raise EmulatorLaunchException('TIMEOUT with wait-for-device') |
| 415 logging.info('Seconds waited on wait-for-device: %d', seconds_waited) | 415 logging.info('Seconds waited on wait-for-device: %d', seconds_waited) |
| 416 if wait_for_boot: | 416 if wait_for_boot: |
| 417 # Now that we checked for obvious problems, wait for a boot complete. | 417 # Now that we checked for obvious problems, wait for a boot complete. |
| 418 # Waiting for the package manager is sometimes problematic. | 418 # Waiting for the package manager is sometimes problematic. |
| 419 # TODO(jbudorick) Convert this once waiting for the package manager and |
| 420 # the external storage is no longer problematic. |
| 419 d = device_utils.DeviceUtils(self.device_serial) | 421 d = device_utils.DeviceUtils(self.device_serial) |
| 420 d.old_interface.WaitForSystemBootCompleted(self._WAITFORBOOT_TIMEOUT) | 422 d.old_interface.WaitForSystemBootCompleted(self._WAITFORBOOT_TIMEOUT) |
| 421 | 423 |
| 422 def Shutdown(self): | 424 def Shutdown(self): |
| 423 """Shuts down the process started by launch.""" | 425 """Shuts down the process started by launch.""" |
| 424 self._DeleteAVD() | 426 self._DeleteAVD() |
| 425 if self.popen: | 427 if self.popen: |
| 426 self.popen.poll() | 428 self.popen.poll() |
| 427 if self.popen.returncode == None: | 429 if self.popen.returncode == None: |
| 428 self.popen.kill() | 430 self.popen.kill() |
| 429 self.popen = None | 431 self.popen = None |
| 430 | 432 |
| 431 def _ShutdownOnSignal(self, _signum, _frame): | 433 def _ShutdownOnSignal(self, _signum, _frame): |
| 432 logging.critical('emulator _ShutdownOnSignal') | 434 logging.critical('emulator _ShutdownOnSignal') |
| 433 for sig in self._SIGNALS: | 435 for sig in self._SIGNALS: |
| 434 signal.signal(sig, signal.SIG_DFL) | 436 signal.signal(sig, signal.SIG_DFL) |
| 435 self.Shutdown() | 437 self.Shutdown() |
| 436 raise KeyboardInterrupt # print a stack | 438 raise KeyboardInterrupt # print a stack |
| 437 | 439 |
| 438 def _InstallKillHandler(self): | 440 def _InstallKillHandler(self): |
| 439 """Install a handler to kill the emulator when we exit unexpectedly.""" | 441 """Install a handler to kill the emulator when we exit unexpectedly.""" |
| 440 for sig in self._SIGNALS: | 442 for sig in self._SIGNALS: |
| 441 signal.signal(sig, self._ShutdownOnSignal) | 443 signal.signal(sig, self._ShutdownOnSignal) |
| OLD | NEW |