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): ...@@ -125,7 +125,8 @@ class SubprocessOutputLogger(object):
self._process.kill() self._process.kill()
class _TargetHost(object): 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: try:
self._target = None self._target = None
target_args = { target_args = {
...@@ -146,12 +147,12 @@ class _TargetHost(object): ...@@ -146,12 +147,12 @@ class _TargetHost(object):
}) })
self._target = aemu_target.AemuTarget(**target_args) self._target = aemu_target.AemuTarget(**target_args)
self._target.Start() self._target.Start()
self._setup_target(build_path, ports_to_forward) self._setup_target(build_path, ports_to_forward, results_directory)
except: except:
self.cleanup() self.cleanup()
raise 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 # Tell SSH to forward all server ports from the Fuchsia device to
# the host. # the host.
forwarding_flags = [ forwarding_flags = [
...@@ -165,6 +166,12 @@ class _TargetHost(object): ...@@ -165,6 +166,12 @@ class _TargetHost(object):
ssh_args=forwarding_flags, ssh_args=forwarding_flags,
stderr=subprocess.PIPE) 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) package_path = os.path.join(build_path, CONTENT_SHELL_PACKAGE_PATH)
self._target.InstallPackage([package_path]) self._target.InstallPackage([package_path])
...@@ -228,7 +235,8 @@ class FuchsiaPort(base.Port): ...@@ -228,7 +235,8 @@ class FuchsiaPort(base.Port):
super(FuchsiaPort, self).setup_test_run() super(FuchsiaPort, self).setup_test_run()
try: try:
self._target_host = _TargetHost( 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'): if self.get_option('zircon_logging'):
self._zircon_logger = SubprocessOutputLogger( 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