From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49491) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YTNC5-0004YD-Cr for qemu-devel@nongnu.org; Wed, 04 Mar 2015 23:15:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YTNC2-0005bX-41 for qemu-devel@nongnu.org; Wed, 04 Mar 2015 23:15:29 -0500 From: John Snow Date: Wed, 4 Mar 2015 23:15:02 -0500 Message-Id: <1425528911-10300-3-git-send-email-jsnow@redhat.com> In-Reply-To: <1425528911-10300-1-git-send-email-jsnow@redhat.com> References: <1425528911-10300-1-git-send-email-jsnow@redhat.com> Subject: [Qemu-devel] [PATCH 02/11] iotests: add transactional incremental backup test List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-block@nongnu.org Cc: kwolf@redhat.com, famz@redhat.com, John Snow , qemu-devel@nongnu.org, armbru@redhat.com, vsementsov@parallels.com, stefanha@redhat.com, mreitz@redhat.com Reviewed-by: Max Reitz Signed-off-by: John Snow --- tests/qemu-iotests/124 | 49 ++++++++++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/124.out | 4 ++-- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/tests/qemu-iotests/124 b/tests/qemu-iotests/124 index 1c07387..da0bf6d 100644 --- a/tests/qemu-iotests/124 +++ b/tests/qemu-iotests/124 @@ -184,6 +184,55 @@ class TestIncrementalBackup(iotests.QMPTestCase): return True + def test_incremental_transaction(self): + '''Test: Verify backups made from transactionally created bitmaps. + + Create a bitmap "before" VM execution begins, then create a second + bitmap AFTER writes have already occurred. Use transactions to create + a full backup and synchronize both bitmaps to this backup. + Create an incremental backup through both bitmaps and verify that + both backups match the full backup. + ''' + bitmap0 = self.add_bitmap('bitmap0', 'drive0') + self.hmp_io_writes('drive0', (('0xab', 0, 512), + ('0xfe', '16M', '256k'), + ('0x64', '32736k', '64k'))) + bitmap1 = self.add_bitmap('bitmap1', 'drive0') + + result = self.vm.qmp('transaction', actions=[ + { + 'type': 'block-dirty-bitmap-clear', + 'data': { 'node': 'drive0', + 'name': 'bitmap0' }, + }, + { + 'type': 'block-dirty-bitmap-clear', + 'data': { 'node': 'drive0', + 'name': 'bitmap1' }, + }, + { + 'type': 'drive-backup', + 'data': { 'device': 'drive0', + 'sync': 'full', + 'format': iotests.imgfmt, + 'target': self.full_bak }, + } + ]) + self.assert_qmp(result, 'return', {}) + self.wait_until_completed() + self.files.append(self.full_bak) + self.check_full_backup() + + self.hmp_io_writes('drive0', (('0x9a', 0, 512), + ('0x55', '8M', '352k'), + ('0x78', '15872k', '1M'))) + # Both bitmaps should be in sync and create fully valid + # incremental backups + res1 = self.create_incremental(bitmap0) + res2 = self.create_incremental(bitmap1) + self.assertTrue(res1 and res2) + + def test_incremental_failure(self): '''Test: Verify backups made after a failure are correct. diff --git a/tests/qemu-iotests/124.out b/tests/qemu-iotests/124.out index 89968f3..914e373 100644 --- a/tests/qemu-iotests/124.out +++ b/tests/qemu-iotests/124.out @@ -1,5 +1,5 @@ -.... +..... ---------------------------------------------------------------------- -Ran 4 tests +Ran 5 tests OK -- 1.9.3