From edf050394ecff2dccfafdc0bc2674311e2e7e0ef Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Fri, 21 Jan 2022 16:41:58 +0000 Subject: [PATCH] arm/oeqa/fvp: fix scoping issues with the bootlog If wait_for_login() times out then it raises an exception instead of passing back return values, so the bootlog is never assigned. We always want a boot log, so initialise it outside of wait_for_login and pass it in. Signed-off-by: Ross Burton Signed-off-by: Jon Mason --- meta-arm/lib/oeqa/controllers/fvp.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/meta-arm/lib/oeqa/controllers/fvp.py b/meta-arm/lib/oeqa/controllers/fvp.py index 87e1b941..29ccae5f 100644 --- a/meta-arm/lib/oeqa/controllers/fvp.py +++ b/meta-arm/lib/oeqa/controllers/fvp.py @@ -39,13 +39,12 @@ class OEFVPTarget(oeqa.core.target.ssh.OESSHTarget): self.fvp = await asyncio.create_subprocess_exec(*cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE) self.logger.debug(f"Started runfvp PID {self.fvp.pid}") - async def wait_for_login(): - bootlog = bytearray() + async def wait_for_login(bootlog): while True: line = await self.fvp.stdout.read(1024) if not line: self.logger.debug("runfvp terminated") - return False, bootlog + return False self.logger.debug(f"Read line [{line}]") @@ -55,11 +54,11 @@ class OEFVPTarget(oeqa.core.target.ssh.OESSHTarget): if b" login:" in bootlog: self.logger.debug("Found login prompt") - return True, bootlog - return False, bootlog + return True + bootlog = bytearray() try: - found, bootlog = await asyncio.wait_for(wait_for_login(), self.boot_timeout) + found = await asyncio.wait_for(wait_for_login(bootlog), self.boot_timeout) if found: return except asyncio.TimeoutError: