Re: [PATCH v4 3/4] iotests.py: Let wait_migration() return on failure
18.08.2020 16:32, Max Reitz wrote: Let wait_migration() return on failure (with the return value indicating whether the migration was completed or has failed), so we can use it for migrations that are expected to fail, too. Signed-off-by: Max Reitz --- tests/qemu-iotests/iotests.py | 18 -- 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index ee93cf22db..f39fd580a6 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -729,16 +729,22 @@ class VM(qtest.QEMUQtestMachine): } ])) -def wait_migration(self, expect_runstate): +def wait_migration(self, expect_runstate: Optional[str]) -> bool: while True: event = self.event_wait('MIGRATION') log(event, filters=[filter_qmp_event]) -if event['data']['status'] == 'completed': +if event['data']['status'] in ('completed', 'failed'): break -# The event may occur in finish-migrate, so wait for the expected -# post-migration runstate -while self.qmp('query-status')['return']['status'] != expect_runstate: -pass + +if event['data']['status'] == 'completed': +# The event may occur in finish-migrate, so wait for the expected +# post-migration runstate +runstate = None +while runstate != expect_runstate: +runstate = self.qmp('query-status')['return']['status'] Would be good to use the helper from the previous patch. With it or not: Reviewed-by: Vladimir Sementsov-Ogievskiy +return True +else: +return False def node_info(self, node_name): nodes = self.qmp('query-named-block-nodes') -- Best regards, Vladimir
Re: [PATCH v4 3/4] iotests.py: Let wait_migration() return on failure
On 8/18/20 8:32 AM, Max Reitz wrote: Let wait_migration() return on failure (with the return value indicating whether the migration was completed or has failed), so we can use it for migrations that are expected to fail, too. Signed-off-by: Max Reitz --- tests/qemu-iotests/iotests.py | 18 -- 1 file changed, 12 insertions(+), 6 deletions(-) Reviewed-by: Eric Blake -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
[PATCH v4 3/4] iotests.py: Let wait_migration() return on failure
Let wait_migration() return on failure (with the return value indicating whether the migration was completed or has failed), so we can use it for migrations that are expected to fail, too. Signed-off-by: Max Reitz --- tests/qemu-iotests/iotests.py | 18 -- 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index ee93cf22db..f39fd580a6 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -729,16 +729,22 @@ class VM(qtest.QEMUQtestMachine): } ])) -def wait_migration(self, expect_runstate): +def wait_migration(self, expect_runstate: Optional[str]) -> bool: while True: event = self.event_wait('MIGRATION') log(event, filters=[filter_qmp_event]) -if event['data']['status'] == 'completed': +if event['data']['status'] in ('completed', 'failed'): break -# The event may occur in finish-migrate, so wait for the expected -# post-migration runstate -while self.qmp('query-status')['return']['status'] != expect_runstate: -pass + +if event['data']['status'] == 'completed': +# The event may occur in finish-migrate, so wait for the expected +# post-migration runstate +runstate = None +while runstate != expect_runstate: +runstate = self.qmp('query-status')['return']['status'] +return True +else: +return False def node_info(self, node_name): nodes = self.qmp('query-named-block-nodes') -- 2.26.2