From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44328) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yvotd-0001Rm-0O for qemu-devel@nongnu.org; Fri, 22 May 2015 11:30:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yvotb-0007mm-Vt for qemu-devel@nongnu.org; Fri, 22 May 2015 11:30:00 -0400 Message-ID: <555F4B74.8050208@redhat.com> Date: Fri, 22 May 2015 11:29:56 -0400 From: John Snow MIME-Version: 1.0 References: <1429314609-29776-1-git-send-email-jsnow@redhat.com> <1429314609-29776-20-git-send-email-jsnow@redhat.com> <20150522150257.GC4267@noname.redhat.com> In-Reply-To: <20150522150257.GC4267@noname.redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit 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: Kevin Wolf Cc: famz@redhat.com, qemu-block@nongnu.org, qemu-devel@nongnu.org, armbru@redhat.com, vsementsov@parallels.com, stefanha@redhat.com, mreitz@redhat.com 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? --js