From nobody Mon Feb 9 16:22:02 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.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 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1570705715; cv=none; d=zoho.com; s=zohoarc; b=kuk62fa1Twsr5bu1f4hAtRW3EJJyMPj722FofdnSo7C3iwYHL6REUMy04tXH5dDfs0v7CNutvZlvtXRPSmdxU4r12jYos+XinaU34G5zXHTPktCKVASsgXjO8SreeUcS4sGj08dMT926betiUYwLsbV2dqMswLU/ra20uz8uAgY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1570705715; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UDe9zL211ck5SU3/d3W2FuvC67rILh2fVvXI+YHhP/Y=; b=M1akKlNriCEpM9HgSyJsPp4W2hi8JIu3khuH7WkbiTB5Mhe5kXqUsQiKth0upkfueQegw3nfdMWvY8g9UlllZoqlq/AJyNf4nCwQOScCY3hCFkH6YhnYc34g+L9gA2dAP13RWoxcr5rAXvFhtLuHoiILN6JKtVWq2pmzoQ13AmM= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1570705715299929.9525524533166; Thu, 10 Oct 2019 04:08:35 -0700 (PDT) Received: from localhost ([::1]:36062 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iIWJ6-0007wV-9k for importer@patchew.org; Thu, 10 Oct 2019 07:08:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47095) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iIWGB-00059G-0J for qemu-devel@nongnu.org; Thu, 10 Oct 2019 07:05:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iIWG9-0000sp-KE for qemu-devel@nongnu.org; Thu, 10 Oct 2019 07:05:30 -0400 Received: from mx1.redhat.com ([209.132.183.28]:54518) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iIWG9-0000sO-CC for qemu-devel@nongnu.org; Thu, 10 Oct 2019 07:05:29 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8D45F3090FDB for ; Thu, 10 Oct 2019 11:05:28 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id B792460BE1; Thu, 10 Oct 2019 11:05:27 +0000 (UTC) From: Peter Krempa To: qemu-devel@nongnu.org Subject: [PATCH v3 2/3] tests: qapi: Test 'features' of commands Date: Thu, 10 Oct 2019 13:05:23 +0200 Message-Id: <7a97c6dbe0747f604a4da81ff055fbf3ac97afb3.1570705279.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.43]); Thu, 10 Oct 2019 11:05:28 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Markus Armbruster Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa --- tests/qapi-schema/qapi-schema-test.json | 26 ++++++++++++++++++++++ tests/qapi-schema/qapi-schema-test.out | 29 +++++++++++++++++++++++++ tests/qapi-schema/test-qapi.py | 4 ++++ tests/test-qmp-cmds.c | 28 ++++++++++++++++++++++++ 4 files changed, 87 insertions(+) diff --git a/tests/qapi-schema/qapi-schema-test.json b/tests/qapi-schema/qa= pi-schema-test.json index 75c42eb0e3..220859d4c9 100644 --- a/tests/qapi-schema/qapi-schema-test.json +++ b/tests/qapi-schema/qapi-schema-test.json @@ -290,3 +290,29 @@ 'cfs1': 'CondFeatureStruct1', 'cfs2': 'CondFeatureStruct2', 'cfs3': 'CondFeatureStruct3' } } + +# test 'features' for command + +{ 'command': 'test-command-features1', + 'features': [] } + +{ 'command': 'test-command-features2', + 'features': [ 'feature1' ] } + +{ 'command': 'test-command-features3', + 'features': [ 'feature1', 'feature2' ] } + +{ 'command': 'test-command-features4', + 'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'} = ] } + +{ 'command': 'test-command-features5', + 'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'}, + { 'name': 'feature2', 'if': 'defined(TEST_IF_FEATURE_2)'} = ] } + +{ 'command': 'test-command-features6', + 'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'}, + { 'name': 'feature2', 'if': 'defined(TEST_IF_FEATURE_2)'} = ] } + +{ 'command': 'test-command-features7', + 'features': [ { 'name': 'feature1', 'if': [ 'defined(TEST_IF_COND_1)', + 'defined(TEST_IF_COND_2)'] }= ] } diff --git a/tests/qapi-schema/qapi-schema-test.out b/tests/qapi-schema/qap= i-schema-test.out index 98031da96f..a38e348d54 100644 --- a/tests/qapi-schema/qapi-schema-test.out +++ b/tests/qapi-schema/qapi-schema-test.out @@ -412,3 +412,32 @@ object q_obj_test-features-arg member cfs3: CondFeatureStruct3 optional=3DFalse command test-features q_obj_test-features-arg -> None gen=3DTrue success_response=3DTrue boxed=3DFalse oob=3DFalse preconfig= =3DFalse +command test-command-features1 None -> None + gen=3DTrue success_response=3DTrue boxed=3DFalse oob=3DFalse preconfig= =3DFalse +command test-command-features2 None -> None + gen=3DTrue success_response=3DTrue boxed=3DFalse oob=3DFalse preconfig= =3DFalse + feature feature1 +command test-command-features3 None -> None + gen=3DTrue success_response=3DTrue boxed=3DFalse oob=3DFalse preconfig= =3DFalse + feature feature1 + feature feature2 +command test-command-features4 None -> None + gen=3DTrue success_response=3DTrue boxed=3DFalse oob=3DFalse preconfig= =3DFalse + feature feature1 + if ['defined(TEST_IF_FEATURE_1)'] +command test-command-features5 None -> None + gen=3DTrue success_response=3DTrue boxed=3DFalse oob=3DFalse preconfig= =3DFalse + feature feature1 + if ['defined(TEST_IF_FEATURE_1)'] + feature feature2 + if ['defined(TEST_IF_FEATURE_2)'] +command test-command-features6 None -> None + gen=3DTrue success_response=3DTrue boxed=3DFalse oob=3DFalse preconfig= =3DFalse + feature feature1 + if ['defined(TEST_IF_FEATURE_1)'] + feature feature2 + if ['defined(TEST_IF_FEATURE_2)'] +command test-command-features7 None -> None + gen=3DTrue success_response=3DTrue boxed=3DFalse oob=3DFalse preconfig= =3DFalse + feature feature1 + if ['defined(TEST_IF_COND_1)', 'defined(TEST_IF_COND_2)'] diff --git a/tests/qapi-schema/test-qapi.py b/tests/qapi-schema/test-qapi.py index e13c2e8671..62e65b6a7d 100755 --- a/tests/qapi-schema/test-qapi.py +++ b/tests/qapi-schema/test-qapi.py @@ -80,6 +80,10 @@ class QAPISchemaTestVisitor(QAPISchemaVisitor): print(' gen=3D%s success_response=3D%s boxed=3D%s oob=3D%s preco= nfig=3D%s' % (gen, success_response, boxed, allow_oob, allow_preconfig)) self._print_if(ifcond) + if features: + for f in features: + print(' feature %s' % f.name) + self._print_if(f.ifcond, 8) def visit_event(self, name, info, ifcond, arg_type, boxed): print('event %s %s' % (name, arg_type and arg_type.name)) diff --git a/tests/test-qmp-cmds.c b/tests/test-qmp-cmds.c index 36fdf5b115..19f6e06ba7 100644 --- a/tests/test-qmp-cmds.c +++ b/tests/test-qmp-cmds.c @@ -51,6 +51,34 @@ void qmp_test_features(FeatureStruct0 *fs0, FeatureStruc= t1 *fs1, { } +void qmp_test_command_features1(Error **errp) +{ +} + +void qmp_test_command_features2(Error **errp) +{ +} + +void qmp_test_command_features3(Error **errp) +{ +} + +void qmp_test_command_features4(Error **errp) +{ +} + +void qmp_test_command_features5(Error **errp) +{ +} + +void qmp_test_command_features6(Error **errp) +{ +} + +void qmp_test_command_features7(Error **errp) +{ +} + UserDefTwo *qmp_user_def_cmd2(UserDefOne *ud1a, bool has_udb1, UserDefOne *ud1b, Error **errp) --=20 2.21.0