From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, berto@igalia.com, mdroth@linux.vnet.ibm.com
Subject: [Qemu-devel] [PATCH RFC v2 14/47] qapi-tests: New tests for union, alternate command arguments
Date: Wed, 1 Jul 2015 22:22:02 +0200 [thread overview]
Message-ID: <1435782155-31412-15-git-send-email-armbru@redhat.com> (raw)
In-Reply-To: <1435782155-31412-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).
Signed-off-by: Markus Armbruster <armbru@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 | 4 ++++
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, 17 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 eff5e11..5a38748 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -225,7 +225,8 @@ check-qapi-schema-y := $(addprefix tests/qapi-schema/, \
type-bypass.json type-bypass-no-gen.json type-bypass-bad-gen.json \
data-array-empty.json data-array-unknown.json data-int.json \
data-unknown.json data-member-unknown.json data-member-array.json \
- data-member-array-bad.json returns-array-bad.json returns-int.json \
+ data-member-array-bad.json args-union.json args-alternate.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..fc90a9e
--- /dev/null
+++ b/tests/qapi-schema/args-alternate.err
@@ -0,0 +1 @@
+tests/qapi-schema/args-alternate.json:4: '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..d2f9199
--- /dev/null
+++ b/tests/qapi-schema/args-alternate.json
@@ -0,0 +1,4 @@
+# we do not allow alternate arguments
+# TODO should we support this?
+{ '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}]
+[]
--
1.9.3
next prev parent reply other threads:[~2015-07-01 20:22 UTC|newest]
Thread overview: 199+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-01 20:21 [Qemu-devel] [PATCH RFC v2 00/47] qapi: QMP introspection Markus Armbruster
2015-07-01 20:21 ` [Qemu-devel] [PATCH RFC v2 01/47] qapi: Clarify docs on including the same file multiple times Markus Armbruster
2015-07-20 15:17 ` Eric Blake
2015-07-01 20:21 ` [Qemu-devel] [PATCH RFC v2 02/47] qapi: Clean up cgen() and mcgen() Markus Armbruster
2015-07-20 16:45 ` Eric Blake
2015-07-01 20:21 ` [Qemu-devel] [PATCH RFC v2 03/47] qapi: Simplify guardname() Markus Armbruster
2015-07-20 17:32 ` Eric Blake
2015-07-01 20:21 ` [Qemu-devel] [PATCH RFC v2 04/47] qapi-event: Clean up how name of enum QAPIEvent is made Markus Armbruster
2015-07-20 17:46 ` Eric Blake
2015-07-01 20:21 ` [Qemu-devel] [PATCH RFC v2 05/47] qapi: Reject -p arguments that break qapi-event.py Markus Armbruster
2015-07-20 17:57 ` Eric Blake
2015-07-20 18:04 ` Eric Blake
2015-07-24 11:41 ` Markus Armbruster
2015-07-01 20:21 ` [Qemu-devel] [PATCH RFC v2 06/47] qapi: Drop unused and useless parameters and variables Markus Armbruster
2015-07-20 21:14 ` Eric Blake
2015-07-24 11:44 ` Markus Armbruster
2015-07-01 20:21 ` [Qemu-devel] [PATCH RFC v2 07/47] qapi: Generate a nicer struct for flat unions Markus Armbruster
2015-07-20 23:07 ` Eric Blake
2015-07-24 12:01 ` Markus Armbruster
2015-07-27 21:34 ` Eric Blake
2015-07-28 6:15 ` Markus Armbruster
2015-07-28 20:09 ` Eric Blake
2015-07-29 7:33 ` Markus Armbruster
2015-07-29 20:15 ` Eric Blake
2015-07-30 7:11 ` Markus Armbruster
2015-07-30 14:14 ` Eric Blake
2015-07-30 15:44 ` Markus Armbruster
2015-07-30 23:08 ` Eric Blake
2015-07-31 11:00 ` Markus Armbruster
2015-07-31 9:46 ` Markus Armbruster
2015-07-01 20:21 ` [Qemu-devel] [PATCH RFC v2 08/47] qapi-visit: Fix generated code when schema has forward refs Markus Armbruster
2015-07-20 23:19 ` Eric Blake
2015-07-27 7:31 ` Markus Armbruster
2015-07-01 20:21 ` [Qemu-devel] [PATCH RFC v2 09/47] qapi-visit: Replace list implicit_structs by set Markus Armbruster
2015-07-20 23:21 ` Eric Blake
2015-07-01 20:21 ` [Qemu-devel] [PATCH RFC v2 10/47] qapi-visit: Fix two name arguments passed to visitors Markus Armbruster
2015-07-21 2:26 ` Eric Blake
2015-07-01 20:21 ` [Qemu-devel] [PATCH RFC v2 11/47] tests/qapi-schema: Document alternate's enum lacks visit function Markus Armbruster
2015-07-21 3:06 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 12/47] tests/qapi-schema: Document events with with base don't work Markus Armbruster
2015-07-21 3:08 ` Eric Blake
2015-07-30 22:33 ` [Qemu-devel] [RFC PATCH 12.5/47] qapi: Document that input visitor semantics are prone to leaks Eric Blake
2015-07-31 9:50 ` Markus Armbruster
2015-07-30 23:07 ` [Qemu-devel] [RFC PATCH 12.6/47] qapi: Document shortcoming with union 'data' branch Eric Blake
2015-07-31 9:50 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 13/47] tests/qapi-schema: Restore test case for flat union base bug Markus Armbruster
2015-07-21 3:19 ` Eric Blake
2015-07-01 20:22 ` Markus Armbruster [this message]
2015-07-21 12:43 ` [Qemu-devel] [PATCH RFC v2 14/47] qapi-tests: New tests for union, alternate command arguments Eric Blake
2015-07-23 14:59 ` Eric Blake
2015-07-27 7:50 ` Markus Armbruster
2015-07-27 13:06 ` Eric Blake
2015-07-31 13:15 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 15/47] qapi: Fix to reject union " Markus Armbruster
2015-07-21 14:17 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 16/47] qapi-commands: Fix gen_err_check(e) for e and e != 'local_err' Markus Armbruster
2015-07-21 16:23 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 17/47] qapi-commands: Inline gen_marshal_output_call() Markus Armbruster
2015-07-21 16:41 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 18/47] qapi-commands: Don't feed output of mcgen() to mcgen() again Markus Armbruster
2015-07-21 17:20 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 19/47] qapi: Generated code cleanup Markus Armbruster
2015-07-21 17:43 ` Eric Blake
2015-07-27 8:07 ` Markus Armbruster
2015-08-04 9:08 ` Markus Armbruster
2015-08-04 12:31 ` Eric Blake
2015-08-04 14:35 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 20/47] qapi: Rename class QAPISchema to QAPISchemaParser Markus Armbruster
2015-07-21 17:52 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 21/47] qapi: New QAPISchema intermediate reperesentation Markus Armbruster
2015-07-21 20:32 ` Eric Blake
2015-07-27 9:23 ` Markus Armbruster
2015-07-27 14:01 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 22/47] qapi: QAPISchema code generation helper methods Markus Armbruster
2015-07-21 21:02 ` Eric Blake
2015-07-27 9:36 ` Markus Armbruster
2015-07-23 12:36 ` Eric Blake
2015-07-27 9:54 ` Markus Armbruster
2015-07-27 14:05 ` Eric Blake
2015-07-31 14:00 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 23/47] qapi: New QAPISchemaVisitor Markus Armbruster
2015-07-21 21:59 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 24/47] tests/qapi-schema: Convert test harness to QAPISchemaVisitor Markus Armbruster
2015-07-21 22:23 ` Eric Blake
2015-07-27 14:03 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 25/47] qapi: Make generators work on sorted schema expressions Markus Armbruster
2015-07-21 22:50 ` Eric Blake
2015-07-27 14:19 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 26/47] qapi-types: Convert to QAPISchemaVisitor, fixing flat unions Markus Armbruster
2015-07-22 17:34 ` Eric Blake
2015-07-22 20:07 ` Eric Blake
2015-07-27 15:59 ` Markus Armbruster
2015-07-22 21:21 ` Eric Blake
2015-07-22 22:56 ` Eric Blake
2015-07-27 16:09 ` Markus Armbruster
2015-07-27 16:25 ` Eric Blake
2015-07-28 6:16 ` Markus Armbruster
2015-07-29 23:11 ` Eric Blake
2015-07-30 6:42 ` Markus Armbruster
2015-07-30 12:46 ` Eric Blake
2015-07-30 15:53 ` Markus Armbruster
2015-07-30 16:36 ` Eric Blake
2015-07-30 21:51 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 27/47] qapi-visit: Convert to QAPISchemaVisitor, fixing bugs Markus Armbruster
2015-07-22 22:28 ` Eric Blake
2015-07-27 17:53 ` Markus Armbruster
2015-07-27 19:01 ` Eric Blake
2015-07-28 6:41 ` Markus Armbruster
2015-07-28 14:46 ` Eric Blake
2015-07-29 7:59 ` Markus Armbruster
2015-07-27 21:35 ` Eric Blake
2015-07-28 6:44 ` Markus Armbruster
2015-07-28 20:41 ` Eric Blake
2015-07-29 8:00 ` Markus Armbruster
2015-07-29 16:56 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 28/47] qapi-commands: Convert to QAPISchemaVisitor Markus Armbruster
2015-07-22 23:05 ` Eric Blake
2015-07-27 18:08 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 29/47] qapi: Replace dirty is_c_ptr() by method c_null() Markus Armbruster
2015-07-22 23:22 ` Eric Blake
2015-07-28 7:34 ` Markus Armbruster
2015-07-28 14:53 ` Eric Blake
2015-07-29 8:32 ` Markus Armbruster
2015-07-29 15:41 ` Eric Blake
2015-07-29 17:22 ` Markus Armbruster
2015-07-30 14:19 ` Eric Blake
2015-07-30 15:57 ` Markus Armbruster
2015-07-30 22:48 ` Eric Blake
2015-07-31 7:43 ` Markus Armbruster
2015-07-23 12:32 ` Eric Blake
2015-07-28 7:57 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 30/47] qapi: De-duplicate enum code generation Markus Armbruster
2015-07-23 12:46 ` Eric Blake
2015-07-28 8:13 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 31/47] qapi-event: Eliminate global variable event_enum_value Markus Armbruster
2015-07-23 14:31 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 32/47] qapi-event: Convert to QAPISchemaVisitor, fixing data with base Markus Armbruster
2015-07-23 15:14 ` Eric Blake
2015-07-28 8:32 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 33/47] qapi: Clean up after recent conversions to QAPISchemaVisitor Markus Armbruster
2015-07-23 16:48 ` Eric Blake
2015-07-28 9:18 ` Markus Armbruster
2015-07-28 21:13 ` Eric Blake
2015-07-28 21:37 ` Eric Blake
2015-07-29 8:33 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 34/47] qapi-visit: Rearrange code a bit Markus Armbruster
2015-07-23 17:00 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 35/47] qapi-commands: Rearrange code Markus Armbruster
2015-07-23 17:41 ` Eric Blake
2015-07-28 9:18 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 36/47] qapi: Rename qmp_marshal_input_FOO() to qmp_marshal_FOO() Markus Armbruster
2015-07-23 19:07 ` Eric Blake
2015-07-28 9:19 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 37/47] qapi: De-duplicate parameter list generation Markus Armbruster
2015-07-23 19:27 ` Eric Blake
2015-07-28 11:15 ` Markus Armbruster
2015-07-28 17:48 ` Eric Blake
2015-07-29 8:36 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 38/47] qapi-commands: De-duplicate output marshaling functions Markus Armbruster
2015-07-23 19:47 ` Eric Blake
2015-07-28 11:20 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 39/47] qapi: Improve built-in type documentation Markus Armbruster
2015-07-23 21:29 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 40/47] qapi: Introduce a first class 'any' type Markus Armbruster
2015-07-23 22:04 ` Eric Blake
2015-07-28 11:31 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 41/47] qom: Don't use 'gen': false for qom-get, qom-set, object-add Markus Armbruster
2015-07-23 22:21 ` Eric Blake
2015-07-28 11:59 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 42/47] qapi-schema: Fix up misleading specification of netdev_add Markus Armbruster
2015-07-23 22:59 ` Eric Blake
2015-07-28 12:04 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 43/47] qmp: Improve netdev_add usage example in the manual Markus Armbruster
2015-07-23 23:01 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 44/47] qapi: Pseudo-type '**' is now unused, drop it Markus Armbruster
2015-07-23 23:20 ` Eric Blake
2015-07-28 12:24 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 45/47] qapi: New QMP command query-schema for QMP schema introspection Markus Armbruster
2015-07-24 3:29 ` Eric Blake
2015-07-28 14:33 ` Markus Armbruster
2015-07-28 19:11 ` Eric Blake
2015-07-29 9:19 ` Markus Armbruster
2015-07-29 15:56 ` Eric Blake
2015-07-29 17:26 ` Markus Armbruster
2015-08-03 15:15 ` Markus Armbruster
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 46/47] qapi-introspect: Map all integer types to 'int' Markus Armbruster
2015-07-24 3:33 ` Eric Blake
2015-07-01 20:22 ` [Qemu-devel] [PATCH RFC v2 47/47] qapi-introspect: Hide type names Markus Armbruster
2015-07-24 3:44 ` Eric Blake
2015-07-27 16:15 ` Eric Blake
2015-07-28 18:39 ` Markus Armbruster
2015-07-28 21:26 ` Eric Blake
2015-07-29 9:24 ` Markus Armbruster
2015-07-28 18:24 ` Markus Armbruster
2015-07-28 21:32 ` Eric Blake
2015-07-29 9:34 ` Markus Armbruster
2015-07-29 16:03 ` Eric Blake
2015-07-28 23:19 ` Eric Blake
2015-07-29 9:35 ` Markus Armbruster
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=1435782155-31412-15-git-send-email-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=berto@igalia.com \
--cc=kwolf@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).