20.08.2020 17:23, Dr. David Alan Gilbert wrote:
* Eric Blake (ebl...@redhat.com) wrote:
On 8/18/20 8:32 AM, Max Reitz wrote:
Signed-off-by: Max Reitz <mre...@redhat.com>
---
   tests/qemu-iotests/iotests.py | 4 ++++
   1 file changed, 4 insertions(+)

Reviewed-by: Eric Blake <ebl...@redhat.com>


diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 717b5b652c..ee93cf22db 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -833,6 +833,10 @@ class VM(qtest.QEMUQtestMachine):
                      'Found node %s under %s (but expected %s)' % \
                      (node['name'], path, expected_node)
+    def wait_for_runstate(self, runstate: str) -> None:
+        while self.qmp('query-status')['return']['status'] != runstate:
+            time.sleep(0.2)

This looks like it could inf-loop if we have a bug where the status never
changes as expected; but I guess CI bots have timeouts at higher layers that
would detect if such a bug sneaks in.

Although it might be useful to make sure when such a timeout lands, you
know which state you thought you were waiting for.

Dave


Timeout class is defined in iotests.py, so we can simply insert something like

 ... , timeout=60) -> None:
  with Timeout(timeout, f"Timeout waiting for '{runstate}' runstate"):
     ...


--
Best regards,
Vladimir

Reply via email to