Bug 1109932 - More diagnostics for android emulator; r=armenzg
--- a/scripts/android_emulator_unittest.py
+++ b/scripts/android_emulator_unittest.py
@@ -317,16 +317,32 @@ class AndroidEmulatorTest(BlobUploadMixi
if not contacted_emu:
self.warning('Unable to communicate with emulator on port %d' % emulator["emulator_port"])
ps_cmd = [self.adb_path, '-s', emulator["device_id"], 'shell', 'ps']
p = subprocess.Popen(ps_cmd, stdout=subprocess.PIPE)
out, err = p.communicate()
self.info('%s:\n%s\n%s' % (ps_cmd, out, err))
+ def _dump_host_state(self):
+ p = subprocess.Popen(['ps', '-ef'], stdout=subprocess.PIPE)
+ out, err = p.communicate()
+ self.info("output from ps -ef follows...")
+ if out:
+ self.info(out)
+ if err:
+ self.info(err)
+ p = subprocess.Popen(['netstat', '-a', '-p', '-n', '-t', '-u'], stdout=subprocess.PIPE)
+ out, err = p.communicate()
+ self.info("output from netstat -a -p -n -t -u follows...")
+ if out:
+ self.info(out)
+ if err:
+ self.info(err)
+
def _dump_emulator_log(self, emulator_index):
emulator = self.emulators[emulator_index]
self.info("##### %s emulator log begins" % emulator["name"])
output = self.read_from_file(self.emulator_procs[emulator_index]["tmp_file"].name, verbose=False)
if output:
self.info(output)
self.info("##### %s emulator log ends" % emulator["name"])
@@ -536,16 +552,17 @@ class AndroidEmulatorTest(BlobUploadMixi
# We do not know how to avoid this error and the only way we have found to
# recover is to kill the emulator and start again.
while attempts < 3 and redirect_failed:
if attempts > 0:
self.info("Sleeping 30 seconds before retry")
time.sleep(30)
attempts += 1
self.info('Attempt #%d to launch emulators...' % attempts)
+ self._dump_host_state()
self.emulator_procs = []
emulator_index = 0
redirect_failed = False
for test in self.test_suites:
emulator_proc = self._launch_emulator(emulator_index)
self.emulator_procs.append(emulator_proc)
if self._redirectSUT(emulator_index):
emulator = self.emulators[emulator_index]