From: Max Reitz <mreitz@redhat.com> To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Eric Blake <eblake@redhat.com> Subject: [Qemu-devel] [PATCH v4 11/11] iotests: Test committing to overridden backing Date: Wed, 10 Apr 2019 22:20:33 +0200 [thread overview] Message-ID: <20190410202033.28617-12-mreitz@redhat.com> (raw) In-Reply-To: <20190410202033.28617-1-mreitz@redhat.com> Signed-off-by: Max Reitz <mreitz@redhat.com> --- 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 dc3fe57fbd..155c1d8c23 100755 --- a/tests/qemu-iotests/040 +++ b/tests/qemu-iotests/040 @@ -524,5 +524,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 220a5fa82c..bbcbc202a0 100644 --- a/tests/qemu-iotests/040.out +++ b/tests/qemu-iotests/040.out @@ -1,5 +1,5 @@ -............................................... +................................................. ---------------------------------------------------------------------- -Ran 47 tests +Ran 49 tests OK -- 2.20.1
WARNING: multiple messages have this Message-ID (diff)
From: Max Reitz <mreitz@redhat.com> To: qemu-block@nongnu.org Cc: Kevin Wolf <kwolf@redhat.com>, qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com> Subject: [Qemu-devel] [PATCH v4 11/11] iotests: Test committing to overridden backing Date: Wed, 10 Apr 2019 22:20:33 +0200 [thread overview] Message-ID: <20190410202033.28617-12-mreitz@redhat.com> (raw) Message-ID: <20190410202033.7TVJqOh-JhPcMqJeokDSDYPAozNy9E0v6X3PSSoub9s@z> (raw) In-Reply-To: <20190410202033.28617-1-mreitz@redhat.com> Signed-off-by: Max Reitz <mreitz@redhat.com> --- 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 dc3fe57fbd..155c1d8c23 100755 --- a/tests/qemu-iotests/040 +++ b/tests/qemu-iotests/040 @@ -524,5 +524,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 220a5fa82c..bbcbc202a0 100644 --- a/tests/qemu-iotests/040.out +++ b/tests/qemu-iotests/040.out @@ -1,5 +1,5 @@ -............................................... +................................................. ---------------------------------------------------------------------- -Ran 47 tests +Ran 49 tests OK -- 2.20.1
next prev parent reply other threads:[~2019-04-10 20:21 UTC|newest] Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-04-10 20:20 [Qemu-devel] [PATCH v4 00/11] block: Deal with filters Max Reitz 2019-04-10 20:20 ` Max Reitz 2019-04-10 20:20 ` [Qemu-devel] [PATCH v4 01/11] block: Mark commit and mirror as filter drivers Max Reitz 2019-04-10 20:20 ` Max Reitz 2019-04-10 20:20 ` [Qemu-devel] [PATCH v4 02/11] block: Filtered children access functions Max Reitz 2019-04-10 20:20 ` Max Reitz 2019-04-16 10:02 ` Vladimir Sementsov-Ogievskiy 2019-04-16 10:02 ` Vladimir Sementsov-Ogievskiy 2019-04-17 16:22 ` Max Reitz 2019-04-17 16:22 ` Max Reitz 2019-04-18 8:36 ` Vladimir Sementsov-Ogievskiy 2019-04-18 8:36 ` Vladimir Sementsov-Ogievskiy 2019-04-24 15:23 ` Max Reitz 2019-04-24 15:23 ` Max Reitz 2019-04-19 10:23 ` Vladimir Sementsov-Ogievskiy 2019-04-19 10:23 ` Vladimir Sementsov-Ogievskiy 2019-04-24 16:36 ` Max Reitz 2019-04-24 16:36 ` Max Reitz 2019-05-07 9:32 ` Vladimir Sementsov-Ogievskiy 2019-05-07 13:15 ` Max Reitz 2019-05-07 13:33 ` Vladimir Sementsov-Ogievskiy 2019-05-31 16:26 ` Max Reitz 2019-05-31 17:02 ` Max Reitz 2019-05-07 13:30 ` Vladimir Sementsov-Ogievskiy 2019-05-07 15:13 ` Max Reitz 2019-05-17 11:50 ` Vladimir Sementsov-Ogievskiy 2019-05-23 14:49 ` Max Reitz 2019-05-23 15:08 ` Vladimir Sementsov-Ogievskiy 2019-05-23 15:56 ` Max Reitz 2019-05-17 14:50 ` Vladimir Sementsov-Ogievskiy 2019-05-23 17:27 ` Max Reitz 2019-05-24 8:12 ` Vladimir Sementsov-Ogievskiy 2019-04-10 20:20 ` [Qemu-devel] [PATCH v4 03/11] block: Storage child access function Max Reitz 2019-04-10 20:20 ` Max Reitz 2019-05-20 10:41 ` Vladimir Sementsov-Ogievskiy 2019-05-28 18:09 ` Max Reitz 2019-04-10 20:20 ` [Qemu-devel] [PATCH v4 04/11] block: Inline bdrv_co_block_status_from_*() Max Reitz 2019-04-10 20:20 ` Max Reitz 2019-05-21 8:57 ` Vladimir Sementsov-Ogievskiy 2019-05-28 17:58 ` Max Reitz 2019-04-10 20:20 ` [Qemu-devel] [PATCH v4 05/11] block: Fix check_to_replace_node() Max Reitz 2019-04-10 20:20 ` Max Reitz 2019-04-10 20:20 ` [Qemu-devel] [PATCH v4 06/11] iotests: Add tests for mirror @replaces loops Max Reitz 2019-04-10 20:20 ` Max Reitz 2019-04-10 20:20 ` [Qemu-devel] [PATCH v4 07/11] block: Leave BDS.backing_file constant Max Reitz 2019-04-10 20:20 ` Max Reitz 2019-04-10 20:20 ` [Qemu-devel] [PATCH v4 08/11] iotests: Add filter commit test cases Max Reitz 2019-04-10 20:20 ` Max Reitz 2019-04-10 20:20 ` [Qemu-devel] [PATCH v4 09/11] iotests: Add filter mirror " Max Reitz 2019-04-10 20:20 ` Max Reitz 2019-04-10 20:20 ` [Qemu-devel] [PATCH v4 10/11] iotests: Add test for commit in sub directory Max Reitz 2019-04-10 20:20 ` Max Reitz 2019-04-10 20:20 ` Max Reitz [this message] 2019-04-10 20:20 ` [Qemu-devel] [PATCH v4 11/11] iotests: Test committing to overridden backing Max Reitz
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190410202033.28617-12-mreitz@redhat.com \ --to=mreitz@redhat.com \ --cc=eblake@redhat.com \ --cc=kwolf@redhat.com \ --cc=qemu-block@nongnu.org \ --cc=qemu-devel@nongnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).