diff options
author | Max Reitz <mreitz@redhat.com> | 2020-08-20 17:07:24 +0200 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2020-08-21 08:56:09 -0500 |
commit | 4bf63c80357031be4eb8fff8a751f40e73ef1c10 (patch) | |
tree | fde634920db8be484b295c2df51b0f03943ca8b4 /tests | |
parent | 31e4c354b38cd42a051ad030eb7779d5e7ee32fe (diff) | |
download | qemu-4bf63c80357031be4eb8fff8a751f40e73ef1c10.zip qemu-4bf63c80357031be4eb8fff8a751f40e73ef1c10.tar.gz qemu-4bf63c80357031be4eb8fff8a751f40e73ef1c10.tar.bz2 |
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 <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20200820150725.68687-3-mreitz@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/qemu-iotests/iotests.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 717b5b6..e197c73 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') |