[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v2 11/11] iotests: Test committing to overridden bac
From: |
Max Reitz |
Subject: |
[Qemu-block] [PATCH v2 11/11] iotests: Test committing to overridden backing |
Date: |
Fri, 10 Aug 2018 00:31:17 +0200 |
Signed-off-by: Max Reitz <address@hidden>
---
tests/qemu-iotests/040 | 61 ++++++++++++++++++++++++++++++++++++++
tests/qemu-iotests/040.out | 4 +--
2 files changed, 63 insertions(+), 2 deletions(-)
diff --git a/tests/qemu-iotests/040 b/tests/qemu-iotests/040
index f0544d6107..90c03e745b 100755
--- a/tests/qemu-iotests/040
+++ b/tests/qemu-iotests/040
@@ -476,5 +476,66 @@ class TestCommitWithFilters(iotests.QMPTestCase):
self.assert_qmp(result, 'error/desc',
'Top image file %s not found' % cow3_name)
+class TestCommitWithOverriddenBacking(iotests.QMPTestCase):
+ img_base_a = os.path.join(iotests.test_dir, 'base_a.img')
+ img_base_b = os.path.join(iotests.test_dir, 'base_b.img')
+ img_top = os.path.join(iotests.test_dir, 'top.img')
+
+ def setUp(self):
+ qemu_img('create', '-f', iotests.imgfmt, self.img_base_a, '1M')
+ qemu_img('create', '-f', iotests.imgfmt, self.img_base_b, '1M')
+ qemu_img('create', '-f', iotests.imgfmt, '-b', self.img_base_a, \
+ self.img_top)
+
+ self.vm = iotests.VM()
+ self.vm.launch()
+
+ # Use base_b instead of base_a as the backing of top
+ result = self.vm.qmp('blockdev-add', **{
+ 'node-name': 'top',
+ 'driver': iotests.imgfmt,
+ 'file': {
+ 'driver': 'file',
+ 'filename': self.img_top
+ },
+ 'backing': {
+ 'node-name': 'base',
+ 'driver': iotests.imgfmt,
+ 'file': {
+ 'driver': 'file',
+ 'filename': self.img_base_b
+ }
+ }
+ })
+ self.assert_qmp(result, 'return', {})
+
+ def tearDown(self):
+ self.vm.shutdown()
+ os.remove(self.img_top)
+ os.remove(self.img_base_a)
+ os.remove(self.img_base_b)
+
+ def test_commit_to_a(self):
+ # Try committing to base_a (which should fail, as top's
+ # backing image is base_b instead)
+ result = self.vm.qmp('block-commit',
+ job_id='commit',
+ device='top',
+ base=self.img_base_a)
+ self.assert_qmp(result, 'error/class', 'GenericError')
+
+ def test_commit_to_b(self):
+ # Try committing to base_b (which should work, since that is
+ # actually top's backing image)
+ result = self.vm.qmp('block-commit',
+ job_id='commit',
+ device='top',
+ base=self.img_base_b)
+ self.assert_qmp(result, 'return', {})
+
+ self.vm.event_wait('BLOCK_JOB_READY')
+ self.vm.qmp('block-job-complete', device='commit')
+ self.vm.event_wait('BLOCK_JOB_COMPLETED')
+
if __name__ == '__main__':
iotests.main(supported_fmts=['qcow2', 'qed'])
diff --git a/tests/qemu-iotests/040.out b/tests/qemu-iotests/040.out
index 49f84261d0..cfa5c0d0e6 100644
--- a/tests/qemu-iotests/040.out
+++ b/tests/qemu-iotests/040.out
@@ -1,5 +1,5 @@
-.................................
+...................................
----------------------------------------------------------------------
-Ran 33 tests
+Ran 35 tests
OK
--
2.17.1
- [Qemu-block] [PATCH v2 01/11] block: Mark commit and mirror as filter drivers, (continued)
- [Qemu-block] [PATCH v2 01/11] block: Mark commit and mirror as filter drivers, Max Reitz, 2018/08/09
- [Qemu-block] [PATCH v2 02/11] blockdev: Check @replaces in blockdev_mirror_common, Max Reitz, 2018/08/09
- [Qemu-block] [PATCH v2 05/11] block: Fix check_to_replace_node(), Max Reitz, 2018/08/09
- [Qemu-block] [PATCH v2 06/11] iotests: Add tests for mirror @replaces loops, Max Reitz, 2018/08/09
- [Qemu-block] [PATCH v2 08/11] iotests: Add filter commit test cases, Max Reitz, 2018/08/09
- [Qemu-block] [PATCH v2 07/11] block: Leave BDS.backing_file constant, Max Reitz, 2018/08/09
- [Qemu-block] [PATCH v2 04/11] block: Storage child access function, Max Reitz, 2018/08/09
- [Qemu-block] [PATCH v2 03/11] block: Filtered children access functions, Max Reitz, 2018/08/09
- [Qemu-block] [PATCH v2 09/11] iotests: Add filter mirror test cases, Max Reitz, 2018/08/09
- [Qemu-block] [PATCH v2 11/11] iotests: Test committing to overridden backing,
Max Reitz <=
- [Qemu-block] [PATCH v2 10/11] iotests: Add test for commit in sub directory, Max Reitz, 2018/08/09
- Re: [Qemu-block] [PATCH v2 00/11] block: Deal with filters, Max Reitz, 2018/08/09
- Re: [Qemu-block] [PATCH v2 00/11] block: Deal with filters, Max Reitz, 2018/08/29