From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50536) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bvScX-0005EA-1q for qemu-devel@nongnu.org; Sat, 15 Oct 2016 13:19:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bvScU-00015L-PP for qemu-devel@nongnu.org; Sat, 15 Oct 2016 13:19:39 -0400 References: <20160928205602.17275-1-mreitz@redhat.com> <20160928205602.17275-13-mreitz@redhat.com> <20161013132635.GM5803@noname.redhat.com> From: Max Reitz Message-ID: Date: Sat, 15 Oct 2016 19:19:26 +0200 MIME-Version: 1.0 In-Reply-To: <20161013132635.GM5803@noname.redhat.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="W9aOmjShvMoGwXkimqVSCeFK2CxjkKIN7" Subject: Re: [Qemu-devel] [PATCH v4 12/12] iotests: Add test for NBD's blockdev-add interface List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: qemu-block@nongnu.org, qemu-devel@nongnu.org, Eric Blake , Paolo Bonzini , Markus Armbruster This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --W9aOmjShvMoGwXkimqVSCeFK2CxjkKIN7 From: Max Reitz To: Kevin Wolf Cc: qemu-block@nongnu.org, qemu-devel@nongnu.org, Eric Blake , Paolo Bonzini , Markus Armbruster Message-ID: Subject: Re: [PATCH v4 12/12] iotests: Add test for NBD's blockdev-add interface References: <20160928205602.17275-1-mreitz@redhat.com> <20160928205602.17275-13-mreitz@redhat.com> <20161013132635.GM5803@noname.redhat.com> In-Reply-To: <20161013132635.GM5803@noname.redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 13.10.2016 15:26, Kevin Wolf wrote: > Am 28.09.2016 um 22:56 hat Max Reitz geschrieben: >> Signed-off-by: Max Reitz >> --- >> tests/qemu-iotests/147 | 201 ++++++++++++++++++++++++++++++++++++= +++++++++ >> tests/qemu-iotests/147.out | 5 ++ >> tests/qemu-iotests/group | 1 + >> 3 files changed, 207 insertions(+) >> create mode 100755 tests/qemu-iotests/147 >> create mode 100644 tests/qemu-iotests/147.out >> >> diff --git a/tests/qemu-iotests/147 b/tests/qemu-iotests/147 >> new file mode 100755 >> index 0000000..61e1e6f >> --- /dev/null >> +++ b/tests/qemu-iotests/147 >> @@ -0,0 +1,201 @@ >> +#!/usr/bin/env python >> +# >> +# Test case for NBD's blockdev-add interface >> +# >> +# Copyright (C) 2016 Red Hat, Inc. >> +# >> +# This program is free software; you can redistribute it and/or modif= y >> +# it under the terms of the GNU General Public License as published b= y >> +# the Free Software Foundation; either version 2 of the License, or >> +# (at your option) any later version. >> +# >> +# This program is distributed in the hope that it will be useful, >> +# but WITHOUT ANY WARRANTY; without even the implied warranty of >> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> +# GNU General Public License for more details. >> +# >> +# You should have received a copy of the GNU General Public License >> +# along with this program. If not, see . >> +# >> + >> +import os >> +import socket >> +import stat >> +import time >> +import iotests >> +from iotests import cachemode, imgfmt, qemu_img, qemu_nbd >> + >> +NBD_PORT =3D 10811 >> + >> +test_img =3D os.path.join(iotests.test_dir, 'test.img') >> + >> +class NBDBlockdevAddBase(iotests.QMPTestCase): >> + def blockdev_add_options(self, address, export=3DNone): >> + options =3D { 'node-name': 'nbd-blockdev', >> + 'driver': 'raw', >> + 'file': { >> + 'driver': 'nbd', >> + 'address': address >> + } } >> + if export is not None: >> + options['file']['export'] =3D export >> + return options >> + >> + def client_test(self, filename, address, export=3DNone): >> + bao =3D self.blockdev_add_options(address, export) >> + result =3D self.vm.qmp('blockdev-add', options=3Dbao) >=20 > This needs a rebase (**bao instead of options=3Dbao). >=20 >> + self.assert_qmp(result, 'return', {}) >> + >> + result =3D self.vm.qmp('query-named-block-nodes') >> + for node in result['return']: >> + if node['node-name'] =3D=3D 'nbd-blockdev': >> + self.assert_qmp(node, 'image/filename', filename) >> + break >> + >> + result =3D self.vm.qmp('x-blockdev-del', node_name=3D'nbd-blo= ckdev') >> + self.assert_qmp(result, 'return', {}) >> + >> + >> +class QemuNBD(NBDBlockdevAddBase): >> + def setUp(self): >> + qemu_img('create', '-f', iotests.imgfmt, test_img, '64k') >> + self.vm =3D iotests.VM() >> + self.vm.launch() >> + >> + def tearDown(self): >> + self.vm.shutdown() >> + os.remove(test_img) >> + >> + def _server_up(self, *args): >> + self.assertEqual(qemu_nbd('-f', imgfmt, test_img, *args), 0) >> + >> + def test_inet(self): >> + self._server_up('-p', str(NBD_PORT)) >> + address =3D { 'type': 'inet', >> + 'data': { >> + 'host': 'localhost', >> + 'port': str(NBD_PORT) >> + } } >> + self.client_test('nbd://localhost:%i' % NBD_PORT, address) >> + >> + def test_unix(self): >> + socket =3D os.path.join(iotests.test_dir, 'qemu-nbd.socket') >> + self._server_up('-k', socket) >> + address =3D { 'type': 'unix', >> + 'data': { 'path': socket } } >> + self.client_test('nbd+unix://?socket=3D' + socket, address) >> + try: >> + os.remove(socket) >> + except OSError: >> + pass >=20 > If the test case fails, the socket file is leaked. We should probably > either create and remove it in setUp()/tearDown(), or use a try/finally= > block around the test_unix code. Yes, will do, thanks. Max --W9aOmjShvMoGwXkimqVSCeFK2CxjkKIN7 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEvBAEBCAAZBQJYAmUeEhxtcmVpdHpAcmVkaGF0LmNvbQAKCRD0B9sAYdXPQGyI CACK0mcPjuezQrawW5W5LFxWEK4cvlGT7VfEjOeFLsR0Ep/sxVIlNt3FxyzJLJ6o Dcv2wpgkKnKY6ytLZIxOfgZa/dV9xSAfelloePJfrGISf4qu0zYQBCo9CR+BRk4x RwcQQnPMfvwdlsnHbzV0mci/0n9UTat8iQvIjE77YBM8dgSezlnuQFn8+PtoEMeq a7IJ9ll7uYeswC+zo18DyMZj92T7Cxw7/Xz529M41thv/rrpemenuMgNk+EonLKT mOZaaQl4GGM+aDHSfh+/3KQ+m/RQEE+pzKBNtc7I2AihMYlbRXgyV14v4wrS1ZUi 5sYekUcdMgA47y0b3KP5Aw+b =54z7 -----END PGP SIGNATURE----- --W9aOmjShvMoGwXkimqVSCeFK2CxjkKIN7--