Commit c4f223de authored by Stephen Roe's avatar Stephen Roe Committed by Commit Bot

[fuchsia] Save system log from log_listener to web test output.

This saves log_listener output from blink web tests running on Fuchsia
to the system.log file in the test output isolate, for better debugging
of errors inside the Fuchsia VM.

Bug: 1055553
Change-Id: I7c3ce011dfd11d381532511bbe53e505e785284d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2086052Reviewed-by: default avatarNico Weber <thakis@chromium.org>
Commit-Queue: Stephen Roe <steveroe@google.com>
Cr-Commit-Position: refs/heads/master@{#746878}
parent cb486df5
......@@ -125,7 +125,8 @@ class SubprocessOutputLogger(object):
self._process.kill()
class _TargetHost(object):
def __init__(self, build_path, ports_to_forward, target_device):
def __init__(self, build_path, ports_to_forward, target_device,
results_directory):
try:
self._target = None
target_args = {
......@@ -146,12 +147,12 @@ class _TargetHost(object):
})
self._target = aemu_target.AemuTarget(**target_args)
self._target.Start()
self._setup_target(build_path, ports_to_forward)
self._setup_target(build_path, ports_to_forward, results_directory)
except:
self.cleanup()
raise
def _setup_target(self, build_path, ports_to_forward):
def _setup_target(self, build_path, ports_to_forward, results_directory):
# Tell SSH to forward all server ports from the Fuchsia device to
# the host.
forwarding_flags = [
......@@ -165,6 +166,12 @@ class _TargetHost(object):
ssh_args=forwarding_flags,
stderr=subprocess.PIPE)
listener_log_path = os.path.join(results_directory, 'system.log')
listener_log = open(listener_log_path,'w')
self._listener = self._target.RunCommandPiped(['log_listener'],
stderr=listener_log,
stdout=listener_log)
package_path = os.path.join(build_path, CONTENT_SHELL_PACKAGE_PATH)
self._target.InstallPackage([package_path])
......@@ -228,7 +235,8 @@ class FuchsiaPort(base.Port):
super(FuchsiaPort, self).setup_test_run()
try:
self._target_host = _TargetHost(
self._build_path(), self.SERVER_PORTS, self._target_device)
self._build_path(), self.SERVER_PORTS, self._target_device,
self.results_directory())
if self.get_option('zircon_logging'):
self._zircon_logger = SubprocessOutputLogger(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment