Bug 1222944 - [mozrunner] Dump kernel log for B2G emulator
--- a/testing/mozbase/mozrunner/mozrunner/devices/base.py
+++ b/testing/mozbase/mozrunner/mozrunner/devices/base.py
@@ -140,16 +140,25 @@ class Device(object):
logcat_log = os.path.join(self.logdir, '%s.log' % serial)
if os.path.isfile(logcat_log):
self._rotate_log(logcat_log)
logcat_args = [self.app_ctx.adb, '-s', '%s' % serial,
'logcat', '-v', 'time', '-b', 'main', '-b', 'radio']
self.logcat_proc = ProcessHandler(logcat_args, logfile=logcat_log)
self.logcat_proc.run()
+ #save kernel log
+ kmsg_log = os.path.join(self.logdir, '%s_kmsg.log' % serial)
+ if os.path.isfile(kmsg_log):
+ self._rotate_log(kmsg_log)
+ kmsg_args = [self.app_ctx.adb, '-s', '%s' % serial,
+ 'shell', 'cat', '/proc/kmsg']
+ self.kmsg_proc = ProcessHandler(kmsg_args, logfile=kmsg_log)
+ self.kmsg_proc.run()
+
def reboot(self):
"""
Reboots the device via adb.
"""
self.dm.reboot(wait=True)
def install_busybox(self, busybox):
"""
--- a/testing/mozharness/scripts/b2g_emulator_unittest.py
+++ b/testing/mozharness/scripts/b2g_emulator_unittest.py
@@ -368,27 +368,30 @@ class B2GEmulatorTest(TestingMixin, VCSM
parser = self.get_test_output_parser(suite_name,
config=self.config,
log_obj=self.log_obj,
error_list=error_list)
return_code = self.run_command(cmd, cwd=cwd, env=env,
output_timeout=1000,
output_parser=parser,
success_codes=success_codes)
-
- logcat = os.path.join(dirs['abs_work_dir'], 'emulator-5554.log')
+ tbpl_status, log_level = parser.evaluate_parser(return_code,
+ success_codes=success_codes)
qemu = os.path.join(dirs['abs_work_dir'], 'qemu.log')
if os.path.isfile(qemu):
self.copyfile(qemu, os.path.join(env['MOZ_UPLOAD_DIR'],
os.path.basename(qemu)))
- tbpl_status, log_level = parser.evaluate_parser(return_code,
- success_codes=success_codes)
+ kmsg = os.path.join(dirs['abs_work_dir'], 'emulator-5554_kmsg.log')
+ if os.path.isfile(kmsg):
+ self.copyfile(kmsg, os.path.join(env['MOZ_UPLOAD_DIR'],
+ os.path.basename(kmsg)))
+ logcat = os.path.join(dirs['abs_work_dir'], 'emulator-5554.log')
if os.path.isfile(logcat):
if tbpl_status != TBPL_SUCCESS:
# On failure, dump logcat, check if the emulator is still
# running, and if it is still accessible via adb.
self.info('dumping logcat')
self.run_command(['cat', logcat], error_list=LogcatErrorList)
self.run_command(['ps', '-C', 'emulator'])