From 970966c0c070d89ed6aa8c2b3d16aaf0a53f810e Mon Sep 17 00:00:00 2001 From: Xu Tian Date: Tue, 15 Apr 2014 15:10:01 +0800 Subject: [PATCH] qemu.tests.drive_mirror: fix syntax when job status is empty Check block job status not empty to avoid 'KeyError: 'len' when qmp monitor respone delay. Signed-off-by: Xu Tian --- qemu/tests/block_copy.py | 4 +++- qemu/tests/drive_mirror.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/qemu/tests/block_copy.py b/qemu/tests/block_copy.py index 9f65ce4a..54cd7b13 100644 --- a/qemu/tests/block_copy.py +++ b/qemu/tests/block_copy.py @@ -79,7 +79,9 @@ class BlockCopy(object): """ return block job info dict; """ - return self.vm.get_job_status(self.device) + query_status = lambda: self.vm.get_job_status(self.device) + status = utils_misc.wait_for(query_status, timeout=120) + return status or {} def do_steps(self, tag=None): if not tag: diff --git a/qemu/tests/drive_mirror.py b/qemu/tests/drive_mirror.py index 1a3a4ea7..c9df92b2 100644 --- a/qemu/tests/drive_mirror.py +++ b/qemu/tests/drive_mirror.py @@ -106,7 +106,7 @@ class DriveMirror(block_copy.BlockCopy): """ params = self.parser_test_args() info = self.get_status() - ret = (info["len"] == info["offset"]) + ret = bool(info and info["len"] == info["offset"]) if self.vm.monitor.protocol == "qmp": if params.get("check_event", "no") == "yes": ret &= bool(self.vm.monitor.get_event("BLOCK_JOB_READY")) -- GitLab