From: Max Reitz <mreitz@redhat.com>
To: qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>,
qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>
Subject: [Qemu-devel] [PULL 4/7] iotests: Test incremental backup after truncation
Date: Mon, 5 Aug 2019 18:37:37 +0200 [thread overview]
Message-ID: <20190805163740.23616-5-mreitz@redhat.com> (raw)
In-Reply-To: <20190805163740.23616-1-mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 20190805152840.32190-1-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
---
tests/qemu-iotests/124 | 38 ++++++++++++++++++++++++++++++++++----
tests/qemu-iotests/124.out | 4 ++--
2 files changed, 36 insertions(+), 6 deletions(-)
diff --git a/tests/qemu-iotests/124 b/tests/qemu-iotests/124
index 80b356f7bb..3440f54781 100755
--- a/tests/qemu-iotests/124
+++ b/tests/qemu-iotests/124
@@ -212,25 +212,28 @@ class TestIncrementalBackupBase(iotests.QMPTestCase):
return bitmap
- def prepare_backup(self, bitmap=None, parent=None):
+ def prepare_backup(self, bitmap=None, parent=None, **kwargs):
if bitmap is None:
bitmap = self.bitmaps[-1]
if parent is None:
parent, _ = bitmap.last_target()
target, _ = bitmap.new_target()
- self.img_create(target, bitmap.drive['fmt'], parent=parent)
+ self.img_create(target, bitmap.drive['fmt'], parent=parent,
+ **kwargs)
return target
def create_incremental(self, bitmap=None, parent=None,
- parentFormat=None, validate=True):
+ parentFormat=None, validate=True,
+ target=None):
if bitmap is None:
bitmap = self.bitmaps[-1]
if parent is None:
parent, _ = bitmap.last_target()
- target = self.prepare_backup(bitmap, parent)
+ if target is None:
+ target = self.prepare_backup(bitmap, parent)
res = self.do_qmp_backup(job_id=bitmap.drive['id'],
device=bitmap.drive['id'],
sync='incremental', bitmap=bitmap.name,
@@ -572,6 +575,33 @@ class TestIncrementalBackup(TestIncrementalBackupBase):
'bitmap0', self.drives[0],
granularity=64000)
+ def test_growing_before_backup(self):
+ '''
+ Test: Add a bitmap, truncate the image, write past the old
+ end, do a backup.
+
+ Incremental backup should not ignore dirty bits past the old
+ image end.
+ '''
+ self.assert_no_active_block_jobs()
+
+ self.create_anchor_backup()
+
+ self.add_bitmap('bitmap0', self.drives[0])
+
+ res = self.vm.qmp('block_resize', device=self.drives[0]['id'],
+ size=(65 * 1048576))
+ self.assert_qmp(res, 'return', {})
+
+ # Dirty the image past the old end
+ self.vm.hmp_qemu_io(self.drives[0]['id'], 'write 64M 64k')
+
+ target = self.prepare_backup(size='65M')
+ self.create_incremental(target=target)
+
+ self.vm.shutdown()
+ self.check_backups()
+
class TestIncrementalBackupBlkdebug(TestIncrementalBackupBase):
'''Incremental backup tests that utilize a BlkDebug filter on drive0.'''
diff --git a/tests/qemu-iotests/124.out b/tests/qemu-iotests/124.out
index 281b69efea..fa16b5ccef 100644
--- a/tests/qemu-iotests/124.out
+++ b/tests/qemu-iotests/124.out
@@ -1,5 +1,5 @@
-............
+.............
----------------------------------------------------------------------
-Ran 12 tests
+Ran 13 tests
OK
--
2.21.0
next prev parent reply other threads:[~2019-08-05 16:41 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-05 16:37 [Qemu-devel] [PULL 0/7] Block patches for 4.1.0-rc4 Max Reitz
2019-08-05 16:37 ` [Qemu-devel] [PULL 1/7] backup: Copy only dirty areas Max Reitz
2019-08-05 16:37 ` [Qemu-devel] [PULL 2/7] iotests: Test backup job with two guest writes Max Reitz
2019-08-05 16:37 ` [Qemu-devel] [PULL 3/7] util/hbitmap: update orig_size on truncate Max Reitz
2019-08-05 16:37 ` Max Reitz [this message]
2019-08-05 16:37 ` [Qemu-devel] [PULL 5/7] mirror: Only mirror granularity-aligned chunks Max Reitz
2019-08-05 16:37 ` [Qemu-devel] [PULL 6/7] iotests: Test unaligned blocking mirror write Max Reitz
2019-08-05 16:37 ` [Qemu-devel] [PULL 7/7] block/backup: disable copy_range for compressed backup Max Reitz
2019-08-05 16:59 ` [Qemu-devel] [PULL 0/7] Block patches for 4.1.0-rc4 Vladimir Sementsov-Ogievskiy
2019-08-05 17:00 ` Max Reitz
2019-08-06 10:12 ` Peter Maydell
2019-08-06 11:12 ` Max Reitz
2019-08-06 11:53 ` Peter Maydell
2019-08-05 18:05 ` Peter Maydell
2019-08-05 18:06 ` Peter Maydell
2019-08-05 18:21 ` Max Reitz
2019-08-05 18:31 ` Peter Maydell
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=20190805163740.23616-5-mreitz@redhat.com \
--to=mreitz@redhat.com \
--cc=kwolf@redhat.com \
--cc=peter.maydell@linaro.org \
--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: link
Be 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).