From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55521) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZCMgT-0002X2-T3 for qemu-devel@nongnu.org; Tue, 07 Jul 2015 02:48:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZCMgP-0005jx-E5 for qemu-devel@nongnu.org; Tue, 07 Jul 2015 02:48:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:57701) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZCMgP-0005jr-6G for qemu-devel@nongnu.org; Tue, 07 Jul 2015 02:48:45 -0400 Date: Tue, 7 Jul 2015 14:48:41 +0800 From: Fam Zheng Message-ID: <20150707064841.GA9515@ad.nay.redhat.com> References: <1436192669-10062-1-git-send-email-stefanha@redhat.com> <1436192669-10062-3-git-send-email-stefanha@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1436192669-10062-3-git-send-email-stefanha@redhat.com> Subject: Re: [Qemu-devel] [PATCH v2 02/10] iotests: add transactional incremental backup test List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: Kevin Wolf , Jeff Cody , qemu-devel@nongnu.org, Max Reitz , vsementsov@parallels.com, John Snow On Mon, 07/06 15:24, Stefan Hajnoczi wrote: > From: John Snow > > Test simple usage cases for using transactions to create > and synchronize incremental backups. > > Signed-off-by: John Snow > Reviewed-by: Max Reitz > Reviewed-by: Stefan Hajnoczi > Signed-off-by: Stefan Hajnoczi > --- > tests/qemu-iotests/124 | 54 ++++++++++++++++++++++++++++++++++++++++++++++ > tests/qemu-iotests/124.out | 4 ++-- > 2 files changed, 56 insertions(+), 2 deletions(-) > > diff --git a/tests/qemu-iotests/124 b/tests/qemu-iotests/124 > index 9ccd118..9c1977e 100644 > --- a/tests/qemu-iotests/124 > +++ b/tests/qemu-iotests/124 > @@ -36,6 +36,23 @@ def try_remove(img): > pass > > > +def transaction_action(action, **kwargs): > + return { > + 'type': action, > + 'data': kwargs > + } > + > + > +def transaction_bitmap_clear(node, name, **kwargs): > + return transaction_action('block-dirty-bitmap-clear', > + node=node, name=name, **kwargs) > + > + > +def transaction_drive_backup(device, target, **kwargs): > + return transaction_action('drive-backup', device=device, target=target, > + **kwargs) > + > + > class Bitmap: > def __init__(self, name, drive): > self.name = name > @@ -264,6 +281,43 @@ class TestIncrementalBackup(iotests.QMPTestCase): > return self.do_incremental_simple(granularity=131072) > > > + 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 current drive0 image. > + ''' > + > + drive0 = self.drives[0] > + bitmap0 = self.add_bitmap('bitmap0', drive0) > + self.hmp_io_writes(drive0['id'], (('0xab', 0, 512), > + ('0xfe', '16M', '256k'), > + ('0x64', '32736k', '64k'))) > + bitmap1 = self.add_bitmap('bitmap1', drive0) > + > + result = self.vm.qmp('transaction', actions=[ > + transaction_bitmap_clear(bitmap0.drive['id'], bitmap0.name), > + transaction_bitmap_clear(bitmap1.drive['id'], bitmap1.name), > + transaction_drive_backup(drive0['id'], drive0['backup'], > + sync='full', format=drive0['fmt']) > + ]) > + self.assert_qmp(result, 'return', {}) > + self.wait_until_completed(drive0['id']) > + self.files.append(drive0['backup']) > + > + self.hmp_io_writes(drive0['id'], (('0x9a', 0, 512), > + ('0x55', '8M', '352k'), > + ('0x78', '15872k', '1M'))) > + # Both bitmaps should be correctly in sync. > + self.create_incremental(bitmap0) > + self.create_incremental(bitmap1) > + self.vm.shutdown() > + self.check_backups() > + > + > 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 2f7d390..594c16f 100644 > --- a/tests/qemu-iotests/124.out > +++ b/tests/qemu-iotests/124.out > @@ -1,5 +1,5 @@ > -....... > +........ > ---------------------------------------------------------------------- > -Ran 7 tests > +Ran 8 tests > > OK > -- > 2.4.3 > Reviewed-by: Fam Zheng