From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46930) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yvp1U-0006tE-KN for qemu-devel@nongnu.org; Fri, 22 May 2015 11:38:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yvp1T-00036I-Ja for qemu-devel@nongnu.org; Fri, 22 May 2015 11:38:08 -0400 Date: Fri, 22 May 2015 17:37:58 +0200 From: Kevin Wolf Message-ID: <20150522153758.GD4267@noname.redhat.com> References: <1429314609-29776-1-git-send-email-jsnow@redhat.com> <1429314609-29776-20-git-send-email-jsnow@redhat.com> <20150522150257.GC4267@noname.redhat.com> <555F4B74.8050208@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <555F4B74.8050208@redhat.com> Subject: Re: [Qemu-devel] [PATCH v6 19/21] iotests: add simple incremental backup case List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: John Snow Cc: famz@redhat.com, qemu-block@nongnu.org, qemu-devel@nongnu.org, armbru@redhat.com, vsementsov@parallels.com, stefanha@redhat.com, mreitz@redhat.com Am 22.05.2015 um 17:29 hat John Snow geschrieben: > > > On 05/22/2015 11:02 AM, Kevin Wolf wrote: > > Am 18.04.2015 um 01:50 hat John Snow geschrieben: > >> Signed-off-by: John Snow > >> Reviewed-by: Max Reitz > >> --- > >> tests/qemu-iotests/124 | 174 +++++++++++++++++++++++++++++++++++++++++++-- > >> tests/qemu-iotests/124.out | 4 +- > >> 2 files changed, 172 insertions(+), 6 deletions(-) > >> > >> diff --git a/tests/qemu-iotests/124 b/tests/qemu-iotests/124 > >> index 85675ec..5c3b434 100644 > >> --- a/tests/qemu-iotests/124 > >> +++ b/tests/qemu-iotests/124 > >> @@ -29,6 +29,51 @@ def io_write_patterns(img, patterns): > >> iotests.qemu_io('-c', 'write -P%s %s %s' % pattern, img) > >> > >> > >> +def try_remove(img): > >> + try: > >> + os.remove(img) > >> + except OSError: > >> + pass > >> + > >> + > >> +class Bitmap: > >> + def __init__(self, name, drive): > >> + self.name = name > >> + self.drive = drive > >> + self.num = 0 > >> + self.backups = list() > >> + > >> + def base_target(self): > >> + return (self.drive['backup'], None) > >> + > >> + def new_target(self, num=None): > >> + if num is None: > >> + num = self.num > >> + self.num = num + 1 > >> + base = os.path.join(iotests.test_dir, > >> + "%s.%s." % (self.drive['id'], self.name)) > >> + suff = "%i.%s" % (num, self.drive['fmt']) > >> + target = base + "inc" + suff > >> + reference = base + "ref" + suff > >> + self.backups.append((target, reference)) > >> + return (target, reference) > >> + > >> + def last_target(self): > >> + if self.backups: > >> + return self.backups[-1] > >> + return self.base_target() > >> + > >> + def del_target(self): > >> + for image in self.backups.pop(): > >> + try_remove(image) > >> + self.num -= 1 > >> + > >> + def cleanup(self): > >> + for backup in self.backups: > >> + for image in backup: > >> + try_remove(image) > >> + > >> + > >> class TestIncrementalBackup(iotests.QMPTestCase): > >> def setUp(self): > >> self.bitmaps = list() > >> @@ -73,6 +118,128 @@ class TestIncrementalBackup(iotests.QMPTestCase): > >> iotests.qemu_img('create', '-f', fmt, img, size) > >> self.files.append(img) > >> > >> + > >> + def do_qmp_backup(self, error='Input/output error', **kwargs): > >> + res = self.vm.qmp('drive-backup', **kwargs) > >> + self.assert_qmp(res, 'return', {}) > >> + > >> + event = self.vm.event_wait(name="BLOCK_JOB_COMPLETED", > >> + match={'data': {'device': kwargs['device']}}) > >> + self.assertIsNotNone(event) > > > > RHEL 6 doesn't have self.assertIsNotNone(), so 124 fails there now. Can > > you send a follow-up patch to fix this? > > > > Kevin > > > > What's the minimum version requirement for RHEL6, for future information? $ python --version Python 2.6.5 Kevin