Bug 1109932 - More diagnostics for android emulator; r=armenzg
authorGeoff Brown <gbrown@mozilla.com>
Wed, 07 Jan 2015 12:07:44 -0700 (2015-01-07)
changeset 3517 3b9076325fffcc1fedaa8ab27fb8072fc938ad02
parent 3515 d8d4c5aad8f88d4e867a1ad7b6ad87c1485ac33e
child 3518 5371983056ce263e44025c0cfea7b4f9944a56e0
push id2737
push usergbrown@mozilla.com
push dateWed, 07 Jan 2015 19:08:25 +0000 (2015-01-07)
reviewersarmenzg
bugs1109932
Bug 1109932 - More diagnostics for android emulator; r=armenzg
scripts/android_emulator_unittest.py
--- 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]