mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-09 10:34:58 -06:00
iotests: Add read-only test case to 030
This tests that the stream job exits cleanly (without abort) when the top node is read-only and cannot be reopened read/write. Signed-off-by: Max Reitz <mreitz@redhat.com> Message-id: 20190703172813.6868-12-mreitz@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
13658cd70b
commit
0e4a0644bf
2 changed files with 30 additions and 3 deletions
|
@ -36,7 +36,9 @@ class TestSingleDrive(iotests.QMPTestCase):
|
||||||
qemu_img('create', '-f', iotests.imgfmt, '-o', 'backing_file=%s' % mid_img, test_img)
|
qemu_img('create', '-f', iotests.imgfmt, '-o', 'backing_file=%s' % mid_img, test_img)
|
||||||
qemu_io('-f', 'raw', '-c', 'write -P 0x1 0 512', backing_img)
|
qemu_io('-f', 'raw', '-c', 'write -P 0x1 0 512', backing_img)
|
||||||
qemu_io('-f', iotests.imgfmt, '-c', 'write -P 0x1 524288 512', mid_img)
|
qemu_io('-f', iotests.imgfmt, '-c', 'write -P 0x1 524288 512', mid_img)
|
||||||
self.vm = iotests.VM().add_drive("blkdebug::" + test_img, "backing.node-name=mid")
|
self.vm = iotests.VM().add_drive("blkdebug::" + test_img,
|
||||||
|
"backing.node-name=mid," +
|
||||||
|
"backing.backing.node-name=base")
|
||||||
self.vm.launch()
|
self.vm.launch()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
|
@ -151,6 +153,31 @@ class TestSingleDrive(iotests.QMPTestCase):
|
||||||
result = self.vm.qmp('block-stream', device='mid')
|
result = self.vm.qmp('block-stream', device='mid')
|
||||||
self.assert_qmp(result, 'error/desc', "Invalid job ID ''")
|
self.assert_qmp(result, 'error/desc', "Invalid job ID ''")
|
||||||
|
|
||||||
|
def test_read_only(self):
|
||||||
|
# Create a new file that we can attach (we need a read-only top)
|
||||||
|
with iotests.FilePath('ro-top.img') as ro_top_path:
|
||||||
|
qemu_img('create', '-f', iotests.imgfmt, ro_top_path,
|
||||||
|
str(self.image_len))
|
||||||
|
|
||||||
|
result = self.vm.qmp('blockdev-add',
|
||||||
|
node_name='ro-top',
|
||||||
|
driver=iotests.imgfmt,
|
||||||
|
read_only=True,
|
||||||
|
file={
|
||||||
|
'driver': 'file',
|
||||||
|
'filename': ro_top_path,
|
||||||
|
'read-only': True
|
||||||
|
},
|
||||||
|
backing='mid')
|
||||||
|
self.assert_qmp(result, 'return', {})
|
||||||
|
|
||||||
|
result = self.vm.qmp('block-stream', job_id='stream',
|
||||||
|
device='ro-top', base_node='base')
|
||||||
|
self.assert_qmp(result, 'error/desc', 'Block node is read-only')
|
||||||
|
|
||||||
|
result = self.vm.qmp('blockdev-del', node_name='ro-top')
|
||||||
|
self.assert_qmp(result, 'return', {})
|
||||||
|
|
||||||
|
|
||||||
class TestParallelOps(iotests.QMPTestCase):
|
class TestParallelOps(iotests.QMPTestCase):
|
||||||
num_ops = 4 # Number of parallel block-stream operations
|
num_ops = 4 # Number of parallel block-stream operations
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
..........................
|
...........................
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
Ran 26 tests
|
Ran 27 tests
|
||||||
|
|
||||||
OK
|
OK
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue