On Thu, Jun 27, 2013 at 07:28:45PM -0700, Ian Main wrote: > diff --git a/tests/qemu-iotests/055 b/tests/qemu-iotests/055 > index c66f8db..6de81ff 100755 > --- a/tests/qemu-iotests/055 > +++ b/tests/qemu-iotests/055 > @@ -23,8 +23,9 @@ > import time > import os > import iotests > -from iotests import qemu_img, qemu_io > +from iotests import qemu_img, qemu_io, create_image > > +backing_img = os.path.join(iotests.test_dir, 'backing.img') > test_img = os.path.join(iotests.test_dir, 'test.img') > target_img = os.path.join(iotests.test_dir, 'target.img') > > @@ -60,6 +61,20 @@ class TestSingleDrive(iotests.QMPTestCase): > event = self.cancel_and_wait() > self.assert_qmp(event, 'data/type', 'backup') > > + def test_cancel_sync_none(self): > + self.assert_no_active_block_jobs() > + > + result = self.vm.qmp('drive-backup', device='drive0', > + sync='none', target=target_img) > + self.assert_qmp(result, 'return', {}) > + time.sleep(1) > + > + # This is generally very hard to test, we would have to > + # have some writing going on in the VM to test and know > + # what the result should be.
You can use the qemu-io HMP command to write to the disk from this test case. First take a look at the qemu-io(1) command-line help output. To fill the first sector with 0x5e you would do something like this: $ qemu-io -c 'write -P0x5e 0 512' test.img Kevin recently added an HMP command so you can invoke this from the monitor. It operates on an open drive, see hmp-commands.hx. Finally, you need to use the QMP 'human-monitor-command' to invoke HMP commands from your test case. Basically you need something like: self.vm.qmp('human-monitor-command', command-line='drive0 "write -P0x5e 0 512"') We should probably wrap this in a new method called VM.hmp_qemu_io() in iotests.py, so that tests can simply do: self.vm.hmp_qemu_io('drive0', 'write -P0x5e 0 512') Anyway, this lets you write to the drive. This should be good for testing sync=none.