Revision 3cf53c77 tests/qemu-iotests/iotests.py
b/tests/qemu-iotests/iotests.py | ||
---|---|---|
107 | 107 |
self._num_drives += 1 |
108 | 108 |
return self |
109 | 109 |
|
110 |
def pause_drive(self, drive, event=None): |
|
111 |
'''Pause drive r/w operations''' |
|
112 |
if not event: |
|
113 |
self.pause_drive(drive, "read_aio") |
|
114 |
self.pause_drive(drive, "write_aio") |
|
115 |
return |
|
116 |
self.qmp('human-monitor-command', |
|
117 |
command_line='qemu-io %s "break %s bp_%s"' % (drive, event, drive)) |
|
118 |
|
|
119 |
def resume_drive(self, drive): |
|
120 |
self.qmp('human-monitor-command', |
|
121 |
command_line='qemu-io %s "remove_break bp_%s"' % (drive, drive)) |
|
122 |
|
|
110 | 123 |
def hmp_qemu_io(self, drive, cmd): |
111 | 124 |
'''Write to a given drive using an HMP command''' |
112 | 125 |
return self.qmp('human-monitor-command', |
... | ... | |
222 | 235 |
result = self.vm.qmp('query-block-jobs') |
223 | 236 |
self.assert_qmp(result, 'return', []) |
224 | 237 |
|
225 |
def cancel_and_wait(self, drive='drive0', force=False): |
|
238 |
def cancel_and_wait(self, drive='drive0', force=False, resume=False):
|
|
226 | 239 |
'''Cancel a block job and wait for it to finish, returning the event''' |
227 | 240 |
result = self.vm.qmp('block-job-cancel', device=drive, force=force) |
228 | 241 |
self.assert_qmp(result, 'return', {}) |
229 | 242 |
|
243 |
if resume: |
|
244 |
self.vm.resume_drive(drive) |
|
245 |
|
|
230 | 246 |
cancelled = False |
231 | 247 |
result = None |
232 | 248 |
while not cancelled: |
Also available in: Unified diff