]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
oeqa/runtime/login: Fix dbus-wait timeout and loop conditional
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 7 Mar 2024 09:19:34 +0000 (09:19 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 7 Mar 2024 12:12:58 +0000 (12:12 +0000)
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.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/runtime/cases/login.py

index 0a662e5d02bd9c4835d2f22d98b7f098ae32d0d5..e1bc60d49bbe4b2feda69cc861173f29c89a798d 100644 (file)
@@ -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"})