From patchwork Thu Feb 20 05:54:55 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wayne Xia X-Patchwork-Id: 322072 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 35D0A2C00BB for ; Thu, 20 Feb 2014 17:01:10 +1100 (EST) Received: from localhost ([::1]:36394 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGMh1-0005kw-TH for incoming@patchwork.ozlabs.org; Thu, 20 Feb 2014 01:01:07 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50411) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGMbe-00059t-GU for qemu-devel@nongnu.org; Thu, 20 Feb 2014 00:55:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WGMbV-00019a-Ec for qemu-devel@nongnu.org; Thu, 20 Feb 2014 00:55:34 -0500 Received: from e28smtp06.in.ibm.com ([122.248.162.6]:39906) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGMbU-00019N-Nh for qemu-devel@nongnu.org; Thu, 20 Feb 2014 00:55:25 -0500 Received: from /spool/local by e28smtp06.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 20 Feb 2014 11:25:23 +0530 Received: from d28dlp01.in.ibm.com (9.184.220.126) by e28smtp06.in.ibm.com (192.168.1.136) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Thu, 20 Feb 2014 11:25:20 +0530 Received: from d28relay02.in.ibm.com (d28relay02.in.ibm.com [9.184.220.59]) by d28dlp01.in.ibm.com (Postfix) with ESMTP id 28E50E0053 for ; Thu, 20 Feb 2014 11:28:47 +0530 (IST) Received: from d28av02.in.ibm.com (d28av02.in.ibm.com [9.184.220.64]) by d28relay02.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id s1K5tB4N66781300 for ; Thu, 20 Feb 2014 11:25:12 +0530 Received: from d28av02.in.ibm.com (localhost [127.0.0.1]) by d28av02.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s1K5tJK7002602 for ; Thu, 20 Feb 2014 11:25:19 +0530 Received: from RH64wenchao ([9.181.129.59]) by d28av02.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id s1K5t1do001640; Thu, 20 Feb 2014 11:25:17 +0530 From: Wenchao Xia To: qemu-devel@nongnu.org Date: Thu, 20 Feb 2014 00:54:55 -0500 Message-Id: <1392875695-15627-12-git-send-email-xiawenc@linux.vnet.ibm.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1392875695-15627-1-git-send-email-xiawenc@linux.vnet.ibm.com> References: <1392875695-15627-1-git-send-email-xiawenc@linux.vnet.ibm.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14022005-9574-0000-0000-00000C0A38A2 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 122.248.162.6 Cc: kwolf@redhat.com, mdroth@linux.vnet.ibm.com, armbru@redhat.com, lcapitulino@redhat.com, Wenchao Xia Subject: [Qemu-devel] [PATCH V7 11/11] qapi test: add error path test for union X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: Wenchao Xia Signed-off-by: Markus Armbruster --- tests/Makefile | 8 +++++--- tests/qapi-schema/duplicate-key.err | 1 + tests/qapi-schema/duplicate-key.exit | 1 + tests/qapi-schema/duplicate-key.json | 2 ++ tests/qapi-schema/union-enum-value-not-cover.err | 1 + tests/qapi-schema/union-enum-value-not-cover.exit | 1 + tests/qapi-schema/union-enum-value-not-cover.json | 16 ++++++++++++++++ tests/qapi-schema/union-invalid-base.err | 1 + tests/qapi-schema/union-invalid-base.exit | 1 + tests/qapi-schema/union-invalid-base.json | 17 +++++++++++++++++ .../union-invalid-discriminator-value.err | 1 + .../union-invalid-discriminator-value.exit | 1 + .../union-invalid-discriminator-value.json | 17 +++++++++++++++++ tests/qapi-schema/union-invalid-discriminator.err | 1 + tests/qapi-schema/union-invalid-discriminator.exit | 1 + tests/qapi-schema/union-invalid-discriminator.json | 17 +++++++++++++++++ 16 files changed, 84 insertions(+), 3 deletions(-) create mode 100644 tests/qapi-schema/duplicate-key.err create mode 100644 tests/qapi-schema/duplicate-key.exit create mode 100644 tests/qapi-schema/duplicate-key.json create mode 100644 tests/qapi-schema/duplicate-key.out create mode 100644 tests/qapi-schema/union-enum-value-not-cover.err create mode 100644 tests/qapi-schema/union-enum-value-not-cover.exit create mode 100644 tests/qapi-schema/union-enum-value-not-cover.json create mode 100644 tests/qapi-schema/union-enum-value-not-cover.out create mode 100644 tests/qapi-schema/union-invalid-base.err create mode 100644 tests/qapi-schema/union-invalid-base.exit create mode 100644 tests/qapi-schema/union-invalid-base.json create mode 100644 tests/qapi-schema/union-invalid-base.out create mode 100644 tests/qapi-schema/union-invalid-discriminator-value.err create mode 100644 tests/qapi-schema/union-invalid-discriminator-value.exit create mode 100644 tests/qapi-schema/union-invalid-discriminator-value.json create mode 100644 tests/qapi-schema/union-invalid-discriminator-value.out create mode 100644 tests/qapi-schema/union-invalid-discriminator.err create mode 100644 tests/qapi-schema/union-invalid-discriminator.exit create mode 100644 tests/qapi-schema/union-invalid-discriminator.json create mode 100644 tests/qapi-schema/union-invalid-discriminator.out diff --git a/tests/qapi-schema/union-invalid-discriminator.out b/tests/qapi-schema/union-invalid-discriminator.out new file mode 100644 index 0000000..e69de29 diff --git a/tests/Makefile b/tests/Makefile index 9a7d2f1..9219422 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -119,12 +119,14 @@ check-qtest-xtensa-y += tests/qom-test$(EXESUF) check-qtest-xtensaeb-y = $(check-qtest-xtensa-y) check-qapi-schema-y := $(addprefix tests/qapi-schema/, \ - comments.json empty.json funny-char.json indented-expr.json \ - missing-colon.json missing-comma-list.json \ + comments.json duplicate-key.json empty.json funny-char.json \ + indented-expr.json missing-colon.json missing-comma-list.json \ missing-comma-object.json non-objects.json \ qapi-schema-test.json quoted-structural-chars.json \ trailing-comma-list.json trailing-comma-object.json \ - unclosed-list.json unclosed-object.json unclosed-string.json) + unclosed-list.json unclosed-object.json unclosed-string.json \ + union-invalid-base.json union-invalid-discriminator.json \ + union-invalid-discriminator-value.json union-enum-value-not-cover.json) GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h tests/test-qmp-commands.h diff --git a/tests/qapi-schema/duplicate-key.err b/tests/qapi-schema/duplicate-key.err new file mode 100644 index 0000000..0801c6a --- /dev/null +++ b/tests/qapi-schema/duplicate-key.err @@ -0,0 +1 @@ +:2:10: Duplicate key "key" diff --git a/tests/qapi-schema/duplicate-key.exit b/tests/qapi-schema/duplicate-key.exit new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/qapi-schema/duplicate-key.exit @@ -0,0 +1 @@ +1 diff --git a/tests/qapi-schema/duplicate-key.json b/tests/qapi-schema/duplicate-key.json new file mode 100644 index 0000000..1b55d88 --- /dev/null +++ b/tests/qapi-schema/duplicate-key.json @@ -0,0 +1,2 @@ +{ 'key': 'value', + 'key': 'value' } diff --git a/tests/qapi-schema/duplicate-key.out b/tests/qapi-schema/duplicate-key.out new file mode 100644 index 0000000..e69de29 diff --git a/tests/qapi-schema/union-enum-value-not-cover.err b/tests/qapi-schema/union-enum-value-not-cover.err new file mode 100644 index 0000000..a2354b3 --- /dev/null +++ b/tests/qapi-schema/union-enum-value-not-cover.err @@ -0,0 +1 @@ +:13: Enum value 'value2' is not covered by a branch of union 'TestUnion' diff --git a/tests/qapi-schema/union-enum-value-not-cover.exit b/tests/qapi-schema/union-enum-value-not-cover.exit new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/qapi-schema/union-enum-value-not-cover.exit @@ -0,0 +1 @@ +1 diff --git a/tests/qapi-schema/union-enum-value-not-cover.json b/tests/qapi-schema/union-enum-value-not-cover.json new file mode 100644 index 0000000..c6a8432 --- /dev/null +++ b/tests/qapi-schema/union-enum-value-not-cover.json @@ -0,0 +1,16 @@ +{ 'enum': 'TestEnum', + 'data': [ 'value1', 'value2' ] } + +{ 'type': 'TestBase', + 'data': { 'enum1': 'TestEnum' } } + +{ 'type': 'TestTypeA', + 'data': { 'string': 'str' } } + +{ 'type': 'TestTypeB', + 'data': { 'integer': 'int' } } + +{ 'union': 'TestUnion', + 'base': 'TestBase', + 'discriminator': 'enum1', + 'data': { 'value1': 'TestTypeA' } } diff --git a/tests/qapi-schema/union-enum-value-not-cover.out b/tests/qapi-schema/union-enum-value-not-cover.out new file mode 100644 index 0000000..e69de29 diff --git a/tests/qapi-schema/union-invalid-base.err b/tests/qapi-schema/union-invalid-base.err new file mode 100644 index 0000000..cf3229e --- /dev/null +++ b/tests/qapi-schema/union-invalid-base.err @@ -0,0 +1 @@ +:13: Base 'TestBaseWrong' is not a valid type diff --git a/tests/qapi-schema/union-invalid-base.exit b/tests/qapi-schema/union-invalid-base.exit new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/qapi-schema/union-invalid-base.exit @@ -0,0 +1 @@ +1 diff --git a/tests/qapi-schema/union-invalid-base.json b/tests/qapi-schema/union-invalid-base.json new file mode 100644 index 0000000..cffc237 --- /dev/null +++ b/tests/qapi-schema/union-invalid-base.json @@ -0,0 +1,17 @@ +{ 'enum': 'TestEnum', + 'data': [ 'value1', 'value2' ] } + +{ 'type': 'TestBase', + 'data': { 'enum1': 'TestEnum' } } + +{ 'type': 'TestTypeA', + 'data': { 'string': 'str' } } + +{ 'type': 'TestTypeB', + 'data': { 'integer': 'int' } } + +{ 'union': 'TestUnion', + 'base': 'TestBaseWrong', + 'discriminator': 'enum1', + 'data': { 'value1': 'TestTypeA', + 'value2': 'TestTypeB' } } diff --git a/tests/qapi-schema/union-invalid-base.out b/tests/qapi-schema/union-invalid-base.out new file mode 100644 index 0000000..e69de29 diff --git a/tests/qapi-schema/union-invalid-discriminator-value.err b/tests/qapi-schema/union-invalid-discriminator-value.err new file mode 100644 index 0000000..1125caf --- /dev/null +++ b/tests/qapi-schema/union-invalid-discriminator-value.err @@ -0,0 +1 @@ +:13: Discriminator value 'value_wrong' is not found in enum 'TestEnum' diff --git a/tests/qapi-schema/union-invalid-discriminator-value.exit b/tests/qapi-schema/union-invalid-discriminator-value.exit new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/qapi-schema/union-invalid-discriminator-value.exit @@ -0,0 +1 @@ +1 diff --git a/tests/qapi-schema/union-invalid-discriminator-value.json b/tests/qapi-schema/union-invalid-discriminator-value.json new file mode 100644 index 0000000..a624282 --- /dev/null +++ b/tests/qapi-schema/union-invalid-discriminator-value.json @@ -0,0 +1,17 @@ +{ 'enum': 'TestEnum', + 'data': [ 'value1', 'value2' ] } + +{ 'type': 'TestBase', + 'data': { 'enum1': 'TestEnum' } } + +{ 'type': 'TestTypeA', + 'data': { 'string': 'str' } } + +{ 'type': 'TestTypeB', + 'data': { 'integer': 'int' } } + +{ 'union': 'TestUnion', + 'base': 'TestBase', + 'discriminator': 'enum1', + 'data': { 'value_wrong': 'TestTypeA', + 'value2': 'TestTypeB' } } diff --git a/tests/qapi-schema/union-invalid-discriminator-value.out b/tests/qapi-schema/union-invalid-discriminator-value.out new file mode 100644 index 0000000..e69de29 diff --git a/tests/qapi-schema/union-invalid-discriminator.err b/tests/qapi-schema/union-invalid-discriminator.err new file mode 100644 index 0000000..c5eeda9 --- /dev/null +++ b/tests/qapi-schema/union-invalid-discriminator.err @@ -0,0 +1 @@ +:13: Discriminator 'enum_wrong' not found in schema diff --git a/tests/qapi-schema/union-invalid-discriminator.exit b/tests/qapi-schema/union-invalid-discriminator.exit new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/qapi-schema/union-invalid-discriminator.exit @@ -0,0 +1 @@ +1 diff --git a/tests/qapi-schema/union-invalid-discriminator.json b/tests/qapi-schema/union-invalid-discriminator.json new file mode 100644 index 0000000..887157e --- /dev/null +++ b/tests/qapi-schema/union-invalid-discriminator.json @@ -0,0 +1,17 @@ +{ 'enum': 'TestEnum', + 'data': [ 'value1', 'value2' ] } + +{ 'type': 'TestBase', + 'data': { 'enum1': 'TestEnum' } } + +{ 'type': 'TestTypeA', + 'data': { 'string': 'str' } } + +{ 'type': 'TestTypeB', + 'data': { 'integer': 'int' } } + +{ 'union': 'TestUnion', + 'base': 'TestBase', + 'discriminator': 'enum_wrong', + 'data': { 'value1': 'TestTypeA', + 'value2': 'TestTypeB' } }