From 0bd3234676fc39e4cd687cbba56d4502a2b1d8a2 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 7 Mar 2024 09:19:34 +0000 Subject: oeqa/runtime/login: Fix dbus-wait timeout and loop conditional The dbus-wait command returns a timeout after 60s but reports "success", detect this. Unfortunately it does effectively break the test as the signal is nearly never being correctly detected since it was already sent. For that reason comment out the code instead too. Also fix the loop conditional as the logic was incorrect and it was looping indefinitely when an image match didn't occur. (From OE-Core rev: 89c930e9e4b38b116edcba59e88621a39f8bda67) Signed-off-by: Richard Purdie --- meta/lib/oeqa/runtime/cases/login.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'meta/lib/oeqa/runtime/cases/login.py') diff --git a/meta/lib/oeqa/runtime/cases/login.py b/meta/lib/oeqa/runtime/cases/login.py index 0a662e5d02..e1bc60d49b 100644 --- a/meta/lib/oeqa/runtime/cases/login.py +++ b/meta/lib/oeqa/runtime/cases/login.py @@ -66,15 +66,16 @@ class LoginTest(OERuntimeTestCase): # Which is ugly and I hate it but it 'works' for various definitions of # 'works'. ### - status, output = self.target.run('dbus-wait org.matchbox_project.desktop Loaded') - if status != 0: - self.fail('dbus-wait failed. This could mean that the image never loaded the matchbox desktop.') + # RP: if the signal is sent before we run this, it will never be seen and we'd timeout + #status, output = self.target.run('dbus-wait org.matchbox_project.desktop Loaded') + #if status != 0 or "Timeout" in output: + # self.fail('dbus-wait failed (%s, %s). This could mean that the image never loaded the matchbox desktop.' % (status, output)) # Start taking screenshots every 2 seconds until diff=0 or timeout is 60 seconds timeout = time.time() + 60 diff = True with tempfile.NamedTemporaryFile(prefix="oeqa-screenshot-login", suffix=".png") as t: - while diff != 0 or time.time() > timeout: + while diff != 0 and time.time() < timeout: time.sleep(2) ret = self.target.runner.run_monitor("screendump", args={"filename": t.name, "format":"png"}) -- cgit v1.2.3-54-g00ecf