qemu-iotests: add backing file smaller than image test case
This new test case checks that streaming completes successfully when the backing file is smaller than the image file. Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
571cd9dcc7
commit
774a8850d7
@ -125,6 +125,39 @@ class TestSingleDrive(ImageStreamingTestCase):
|
|||||||
result = self.vm.qmp('block-stream', device='nonexistent')
|
result = self.vm.qmp('block-stream', device='nonexistent')
|
||||||
self.assert_qmp(result, 'error/class', 'DeviceNotFound')
|
self.assert_qmp(result, 'error/class', 'DeviceNotFound')
|
||||||
|
|
||||||
|
|
||||||
|
class TestSmallerBackingFile(ImageStreamingTestCase):
|
||||||
|
backing_len = 1 * 1024 * 1024 # MB
|
||||||
|
image_len = 2 * backing_len
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.create_image(backing_img, self.backing_len)
|
||||||
|
qemu_img('create', '-f', iotests.imgfmt, '-o', 'backing_file=%s' % backing_img, test_img, str(self.image_len))
|
||||||
|
self.vm = iotests.VM().add_drive(test_img)
|
||||||
|
self.vm.launch()
|
||||||
|
|
||||||
|
# If this hangs, then you are missing a fix to complete streaming when the
|
||||||
|
# end of the backing file is reached.
|
||||||
|
def test_stream(self):
|
||||||
|
self.assert_no_active_streams()
|
||||||
|
|
||||||
|
result = self.vm.qmp('block-stream', device='drive0')
|
||||||
|
self.assert_qmp(result, 'return', {})
|
||||||
|
|
||||||
|
completed = False
|
||||||
|
while not completed:
|
||||||
|
for event in self.vm.get_qmp_events(wait=True):
|
||||||
|
if event['event'] == 'BLOCK_JOB_COMPLETED':
|
||||||
|
self.assert_qmp(event, 'data/type', 'stream')
|
||||||
|
self.assert_qmp(event, 'data/device', 'drive0')
|
||||||
|
self.assert_qmp(event, 'data/offset', self.image_len)
|
||||||
|
self.assert_qmp(event, 'data/len', self.image_len)
|
||||||
|
completed = True
|
||||||
|
|
||||||
|
self.assert_no_active_streams()
|
||||||
|
self.vm.shutdown()
|
||||||
|
|
||||||
|
|
||||||
class TestStreamStop(ImageStreamingTestCase):
|
class TestStreamStop(ImageStreamingTestCase):
|
||||||
image_len = 8 * 1024 * 1024 * 1024 # GB
|
image_len = 8 * 1024 * 1024 * 1024 # GB
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
......
|
.......
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
Ran 6 tests
|
Ran 7 tests
|
||||||
|
|
||||||
OK
|
OK
|
||||||
|
Loading…
Reference in New Issue
Block a user