From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38536) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZujQ5-00074h-3a for qemu-devel@nongnu.org; Fri, 06 Nov 2015 10:59:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZujQ0-0002Rk-VR for qemu-devel@nongnu.org; Fri, 06 Nov 2015 10:59:17 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40607) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZujQ0-0002RX-Q7 for qemu-devel@nongnu.org; Fri, 06 Nov 2015 10:59:12 -0500 References: <1446791754-23823-1-git-send-email-eblake@redhat.com> <1446791754-23823-8-git-send-email-eblake@redhat.com> <871tc316gn.fsf@blackfin.pond.sub.org> From: Eric Blake Message-ID: <563CCE4F.6060809@redhat.com> Date: Fri, 6 Nov 2015 08:59:11 -0700 MIME-Version: 1.0 In-Reply-To: <871tc316gn.fsf@blackfin.pond.sub.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="3rWMkEuC74IVRvHScIrB6pbNb6Du9PqUs" Subject: Re: [Qemu-devel] [PATCH v10 07/30] qapi: Simplify error cleanup in test-qmp-* List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: qemu-devel@nongnu.org, Michael Roth This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --3rWMkEuC74IVRvHScIrB6pbNb6Du9PqUs Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 11/06/2015 08:40 AM, Markus Armbruster wrote: > Eric Blake writes: >=20 >> By moving err into data, we can let test teardown take care >> of cleaning up any collected error; it also gives us fewer >> lines of code between repeated tests where init runs teardown >> on our behalf. >=20 > I think this paragraph is no longer valid: you aren't moving err > anywhere in this version. D'oh. I scrubbed the code, but not the commit message. At least it was a faithful split of the v9 version of the commit, before I reworked the mechanism :) How about: We have several tests that perform multiple sub-actions that are expected to fail. Asserting that an error occurred, then clearing it up to prepare for the next action, turned into enough boilerplate that it was sometimes forgotten, risking memory leak or invalidating the efforts of the second action (passing a non-NULL err into a function is generally a bad idea). Encapsulate the boilerplate into a single helper function error_free_or_abort(), and consistently use it. >=20 >> Rather than duplicate code between .c files, I added a new >> test-qmp-common.h. I debated about putting >> error_free_or_abort() in error.h, but it seems like something >> that is only useful for tests. >=20 > Maybe, maybe not. I'd accept it into error.h. Do you want me to post a fixup patch that relocates it into error.h? >=20 >> Signed-off-by: Eric Blake >=20 > Patch looks okay. >=20 --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --3rWMkEuC74IVRvHScIrB6pbNb6Du9PqUs Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJWPM5PAAoJEKeha0olJ0NqazQH/2LCl7utmM+VsEszX+vU0Fga FRH81YttfCxa+vNsJaLyY/4U3torX4C7r9MYljhsuwu/YsuFLI6Bqp/Reo3mqt75 h/xXTQiSLxmN/+q85Q4I6BBgkq3Ll4swy6drhNzxuklvNTvwq8Mdsg88h+XMFSkj g5ycF2KD3xqycJ0ZD3jGZL6RDa6rqM3cxmi0vKGlU09qD5v1NMLzESTz4Ux/qLMn OBXIgSwpiusBP5jeCbZkXjY87cjRFxoxTlGHE5WbkF9+yxhdtF7TJRFRsk75Ve7Q Xpeb2pxE8vKck9MOUWuKpfJWwHeGPWpfyRw3rlE2Sxm2d1xbkDVFlZkOkGPVti4= =NhFN -----END PGP SIGNATURE----- --3rWMkEuC74IVRvHScIrB6pbNb6Du9PqUs--