qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 2/4] iotests.py: Add wait_for_runstate()


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [PATCH v4 2/4] iotests.py: Add wait_for_runstate()
Date: Thu, 20 Aug 2020 17:34:24 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

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

Reviewed-by: Eric Blake <eblake@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

[Prev in Thread] Current Thread [Next in Thread]