From nobody Mon Feb 9 00:30:51 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1516370870032131.93624174727347; Fri, 19 Jan 2018 06:07:50 -0800 (PST) Received: from localhost ([::1]:51112 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ecXKe-0004df-Tj for importer@patchew.org; Fri, 19 Jan 2018 09:07:48 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51742) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ecXAe-0004Vg-GB for qemu-devel@nongnu.org; Fri, 19 Jan 2018 08:57:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ecXAa-0004Ov-Bp for qemu-devel@nongnu.org; Fri, 19 Jan 2018 08:57:28 -0500 Received: from new-relay.sw.ru ([195.214.232.40]:36416) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ecXAZ-0004Lv-Bt; Fri, 19 Jan 2018 08:57:24 -0500 Received: from msk-vpn.virtuozzo.com ([195.214.232.6] helo=kvm.sw.ru) by new-relay.sw.ru with esmtp (Exim 4.89) (envelope-from ) id 1ecXAW-0005fT-6J; Fri, 19 Jan 2018 16:57:20 +0300 From: Vladimir Sementsov-Ogievskiy To: qemu-devel@nongnu.org, qemu-block@nongnu.org Date: Fri, 19 Jan 2018 16:57:17 +0300 Message-Id: <20180119135719.24745-4-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.11.1 In-Reply-To: <20180119135719.24745-1-vsementsov@virtuozzo.com> References: <20180119135719.24745-1-vsementsov@virtuozzo.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 195.214.232.40 Subject: [Qemu-devel] [PATCH v3 3/5] iotest 147: add cases to test new @name parameter of nbd-server-add X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, vsementsov@virtuozzo.com, armbru@redhat.com, mreitz@redhat.com, den@openvz.org, pbonzini@redhat.com, dgilbert@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Eric Blake --- tests/qemu-iotests/147 | 68 +++++++++++++++++++++++++++++++++++++-----= ---- tests/qemu-iotests/147.out | 4 +-- 2 files changed, 57 insertions(+), 15 deletions(-) diff --git a/tests/qemu-iotests/147 b/tests/qemu-iotests/147 index 90f40ed245..d2081df84b 100755 --- a/tests/qemu-iotests/147 +++ b/tests/qemu-iotests/147 @@ -38,8 +38,8 @@ def flatten_sock_addr(crumpled_address): =20 =20 class NBDBlockdevAddBase(iotests.QMPTestCase): - def blockdev_add_options(self, address, export=3DNone): - options =3D { 'node-name': 'nbd-blockdev', + def blockdev_add_options(self, address, export, node_name): + options =3D { 'node-name': node_name, 'driver': 'raw', 'file': { 'driver': 'nbd', @@ -50,23 +50,28 @@ class NBDBlockdevAddBase(iotests.QMPTestCase): options['file']['export'] =3D export return options =20 - def client_test(self, filename, address, export=3DNone): - bao =3D self.blockdev_add_options(address, export) + def client_test(self, filename, address, export=3DNone, + node_name=3D'nbd-blockdev', delete=3DTrue): + bao =3D self.blockdev_add_options(address, export, node_name) result =3D self.vm.qmp('blockdev-add', **bao) self.assert_qmp(result, 'return', {}) =20 + found =3D False result =3D self.vm.qmp('query-named-block-nodes') for node in result['return']: - if node['node-name'] =3D=3D 'nbd-blockdev': + if node['node-name'] =3D=3D node_name: + found =3D True if isinstance(filename, str): self.assert_qmp(node, 'image/filename', filename) else: self.assert_json_filename_equal(node['image']['filenam= e'], filename) break + self.assertTrue(found) =20 - result =3D self.vm.qmp('blockdev-del', node_name=3D'nbd-blockdev') - self.assert_qmp(result, 'return', {}) + if delete: + result =3D self.vm.qmp('blockdev-del', node_name=3Dnode_name) + self.assert_qmp(result, 'return', {}) =20 =20 class QemuNBD(NBDBlockdevAddBase): @@ -125,26 +130,63 @@ class BuiltinNBD(NBDBlockdevAddBase): except OSError: pass =20 - def _server_up(self, address): + def _server_up(self, address, export_name=3DNone, export_name2=3DNone): result =3D self.server.qmp('nbd-server-start', addr=3Daddress) self.assert_qmp(result, 'return', {}) =20 - result =3D self.server.qmp('nbd-server-add', device=3D'nbd-export') + if export_name is None: + result =3D self.server.qmp('nbd-server-add', device=3D'nbd-exp= ort') + else: + result =3D self.server.qmp('nbd-server-add', device=3D'nbd-exp= ort', + name=3Dexport_name) self.assert_qmp(result, 'return', {}) =20 + if export_name2 is not None: + result =3D self.server.qmp('nbd-server-add', device=3D'nbd-exp= ort', + name=3Dexport_name2) + self.assert_qmp(result, 'return', {}) + + def _server_down(self): result =3D self.server.qmp('nbd-server-stop') self.assert_qmp(result, 'return', {}) =20 - def test_inet(self): + def do_test_inet(self, export_name=3DNone): address =3D { 'type': 'inet', 'data': { 'host': 'localhost', 'port': str(NBD_PORT) } } - self._server_up(address) - self.client_test('nbd://localhost:%i/nbd-export' % NBD_PORT, - flatten_sock_addr(address), 'nbd-export') + self._server_up(address, export_name) + export_name =3D export_name or 'nbd-export' + self.client_test('nbd://localhost:%i/%s' % (NBD_PORT, export_name), + flatten_sock_addr(address), export_name) + self._server_down() + + def test_inet_default_export_name(self): + self.do_test_inet() + + def test_inet_same_export_name(self): + self.do_test_inet('nbd-export') + + def test_inet_different_export_name(self): + self.do_test_inet('shadow') + + def test_inet_two_exports(self): + address =3D { 'type': 'inet', + 'data': { + 'host': 'localhost', + 'port': str(NBD_PORT) + } } + self._server_up(address, 'exp1', 'exp2') + self.client_test('nbd://localhost:%i/%s' % (NBD_PORT, 'exp1'), + flatten_sock_addr(address), 'exp1', 'node1', Fals= e) + self.client_test('nbd://localhost:%i/%s' % (NBD_PORT, 'exp2'), + flatten_sock_addr(address), 'exp2', 'node2', Fals= e) + result =3D self.vm.qmp('blockdev-del', node_name=3D'node1') + self.assert_qmp(result, 'return', {}) + result =3D self.vm.qmp('blockdev-del', node_name=3D'node2') + self.assert_qmp(result, 'return', {}) self._server_down() =20 def test_inet6(self): diff --git a/tests/qemu-iotests/147.out b/tests/qemu-iotests/147.out index 3f8a935a08..dae404e278 100644 --- a/tests/qemu-iotests/147.out +++ b/tests/qemu-iotests/147.out @@ -1,5 +1,5 @@ -...... +......... ---------------------------------------------------------------------- -Ran 6 tests +Ran 9 tests =20 OK --=20 2.11.1