From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: mdroth@linux.vnet.ibm.com
Subject: [Qemu-devel] [PATCH 19/26] qapi-tests: New tests for union, alternate command arguments
Date: Tue, 4 Aug 2015 11:18:09 +0200 [thread overview]
Message-ID: <1438679896-5077-20-git-send-email-armbru@redhat.com> (raw)
In-Reply-To: <1438679896-5077-1-git-send-email-armbru@redhat.com>
A command's 'data' must be a struct type, given either as a
dictionary, or as struct type name.
Existing test case data-int.json covers simple type 'int'. Add test
cases for type names referring to union and alternate types.
The latter is caught (good), but the former is not (bug).
Events have the same problem, but since they get checked by the same
code, we don't bother to duplicate the tests.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
tests/Makefile | 3 ++-
tests/qapi-schema/args-alternate.err | 1 +
tests/qapi-schema/args-alternate.exit | 1 +
tests/qapi-schema/args-alternate.json | 3 +++
tests/qapi-schema/args-alternate.out | 0
tests/qapi-schema/args-union.err | 0
tests/qapi-schema/args-union.exit | 1 +
tests/qapi-schema/args-union.json | 4 ++++
tests/qapi-schema/args-union.out | 4 ++++
9 files changed, 16 insertions(+), 1 deletion(-)
create mode 100644 tests/qapi-schema/args-alternate.err
create mode 100644 tests/qapi-schema/args-alternate.exit
create mode 100644 tests/qapi-schema/args-alternate.json
create mode 100644 tests/qapi-schema/args-alternate.out
create mode 100644 tests/qapi-schema/args-union.err
create mode 100644 tests/qapi-schema/args-union.exit
create mode 100644 tests/qapi-schema/args-union.json
create mode 100644 tests/qapi-schema/args-union.out
diff --git a/tests/Makefile b/tests/Makefile
index 0f01b5c..fd0ae45 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -231,7 +231,8 @@ check-qapi-schema-y := $(addprefix tests/qapi-schema/, \
type-bypass.json type-bypass-no-gen.json type-bypass-bad-gen.json \
args-array-empty.json args-array-unknown.json args-int.json \
args-unknown.json args-member-unknown.json args-member-array.json \
- args-member-array-bad.json returns-array-bad.json returns-int.json \
+ args-member-array-bad.json args-alternate.json args-union.json \
+ returns-array-bad.json returns-int.json \
returns-unknown.json returns-alternate.json returns-whitelist.json \
missing-colon.json missing-comma-list.json missing-comma-object.json \
nested-struct-data.json nested-struct-returns.json non-objects.json \
diff --git a/tests/qapi-schema/args-alternate.err b/tests/qapi-schema/args-alternate.err
new file mode 100644
index 0000000..3086eae
--- /dev/null
+++ b/tests/qapi-schema/args-alternate.err
@@ -0,0 +1 @@
+tests/qapi-schema/args-alternate.json:3: 'data' for command 'oops' cannot use alternate type 'Alt'
diff --git a/tests/qapi-schema/args-alternate.exit b/tests/qapi-schema/args-alternate.exit
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/tests/qapi-schema/args-alternate.exit
@@ -0,0 +1 @@
+1
diff --git a/tests/qapi-schema/args-alternate.json b/tests/qapi-schema/args-alternate.json
new file mode 100644
index 0000000..69e94d4
--- /dev/null
+++ b/tests/qapi-schema/args-alternate.json
@@ -0,0 +1,3 @@
+# we do not allow alternate arguments
+{ 'alternate': 'Alt', 'data': { 'case1': 'int', 'case2': 'str' } }
+{ 'command': 'oops', 'data': 'Alt' }
diff --git a/tests/qapi-schema/args-alternate.out b/tests/qapi-schema/args-alternate.out
new file mode 100644
index 0000000..e69de29
diff --git a/tests/qapi-schema/args-union.err b/tests/qapi-schema/args-union.err
new file mode 100644
index 0000000..e69de29
diff --git a/tests/qapi-schema/args-union.exit b/tests/qapi-schema/args-union.exit
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/tests/qapi-schema/args-union.exit
@@ -0,0 +1 @@
+0
diff --git a/tests/qapi-schema/args-union.json b/tests/qapi-schema/args-union.json
new file mode 100644
index 0000000..db97ef6
--- /dev/null
+++ b/tests/qapi-schema/args-union.json
@@ -0,0 +1,4 @@
+# FIXME we should reject union arguments
+# TODO should we support this?
+{ 'union': 'Uni', 'data': { 'case1': 'int', 'case2': 'str' } }
+{ 'command': 'oops', 'data': 'Uni' }
diff --git a/tests/qapi-schema/args-union.out b/tests/qapi-schema/args-union.out
new file mode 100644
index 0000000..907080c
--- /dev/null
+++ b/tests/qapi-schema/args-union.out
@@ -0,0 +1,4 @@
+[OrderedDict([('union', 'Uni'), ('data', OrderedDict([('case1', 'int'), ('case2', 'str')]))]),
+ OrderedDict([('command', 'oops'), ('data', 'Uni')])]
+[{'enum_name': 'UniKind', 'enum_values': None}]
+[]
--
2.4.3
next prev parent reply other threads:[~2015-08-04 9:18 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-04 9:17 [Qemu-devel] [PATCH 00/26] qapi: Another round of fixes and cleanups Markus Armbruster
2015-08-04 9:17 ` [Qemu-devel] [PATCH 01/26] qapi: Clarify docs on including the same file multiple times Markus Armbruster
2015-08-04 9:17 ` [Qemu-devel] [PATCH 02/26] qapi: Clean up cgen() and mcgen() Markus Armbruster
2015-08-04 15:44 ` Markus Armbruster
2015-08-04 16:33 ` Eric Blake
2015-08-04 9:17 ` [Qemu-devel] [PATCH 03/26] qapi: Simplify guardname() Markus Armbruster
2015-08-04 9:17 ` [Qemu-devel] [PATCH 04/26] qapi-event: Clean up how name of enum QAPIEvent is made Markus Armbruster
2015-08-04 9:17 ` [Qemu-devel] [PATCH 05/26] qapi: Reject -p arguments that break qapi-event.py Markus Armbruster
2015-08-04 9:17 ` [Qemu-devel] [PATCH 06/26] qapi: Drop unused and useless parameters and variables Markus Armbruster
2015-08-04 9:17 ` [Qemu-devel] [PATCH 07/26] qapi: Fix generated code when flat union has member 'kind' Markus Armbruster
2015-08-04 16:17 ` Eric Blake
2015-08-05 5:24 ` Markus Armbruster
2015-08-04 9:17 ` [Qemu-devel] [PATCH 08/26] qapi: Generate a nicer struct for flat unions Markus Armbruster
2015-08-04 17:00 ` Eric Blake
2015-08-04 9:17 ` [Qemu-devel] [PATCH 09/26] qapi-visit: Fix generated code when schema has forward refs Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 10/26] qapi-visit: Replace list implicit_structs by set Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 11/26] qapi-visit: Fix two name arguments passed to visitors Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 12/26] tests/qapi-schema: Document alternate's enum lacks visit function Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 13/26] tests/qapi-schema: Document events with base don't work Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 14/26] qapi: Document that input visitor semantics are prone to leaks Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 15/26] qapi: Document shortcoming with union 'data' branch Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 16/26] qapi: Document flaws in checking of names Markus Armbruster
2015-08-04 17:29 ` Eric Blake
2015-08-04 9:18 ` [Qemu-devel] [PATCH 17/26] tests/qapi-schema: Restore test case for flat union base bug Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 18/26] tests/qapi-schema: Rename tests from data- to args- Markus Armbruster
2015-08-04 17:37 ` Eric Blake
2015-08-04 9:18 ` Markus Armbruster [this message]
2015-08-04 9:18 ` [Qemu-devel] [PATCH 20/26] qapi: Fix to reject union command and event arguments Markus Armbruster
2015-08-04 17:44 ` Eric Blake
2015-08-17 19:14 ` Eric Blake
2015-08-24 11:17 ` Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 21/26] qapi: Command returning anonymous type doesn't work, outlaw Markus Armbruster
2015-08-04 18:03 ` Eric Blake
2015-08-05 5:29 ` Markus Armbruster
2015-08-05 14:22 ` Eric Blake
2015-08-06 5:43 ` Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 22/26] qapi-commands: Fix gen_err_check(e) for e and e != 'local_err' Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 23/26] qapi-commands: Inline gen_marshal_output_call() Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 24/26] qapi-commands: Don't feed output of mcgen() to mcgen() again Markus Armbruster
2015-08-04 9:18 ` [Qemu-devel] [PATCH 25/26] qapi-commands: Drop useless initialization Markus Armbruster
2015-08-04 18:46 ` Eric Blake
2015-08-04 9:18 ` [Qemu-devel] [PATCH 26/26] qapi: Generated code cleanup Markus Armbruster
2015-08-04 18:59 ` Eric Blake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1438679896-5077-20-git-send-email-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).