[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 19/26] qapi-tests: New tests for union, alternate
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH v2 19/26] qapi-tests: New tests for union, alternate command arguments |
Date: |
Fri, 28 Aug 2015 18:45:59 +0200 |
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 <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
---
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 0d560c5..7315258 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
- [Qemu-devel] [PATCH v2 11/26] qapi-visit: Fix two name arguments passed to visitors, (continued)
- [Qemu-devel] [PATCH v2 11/26] qapi-visit: Fix two name arguments passed to visitors, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 08/26] qapi: Generate a nicer struct for flat unions, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 13/26] tests/qapi-schema: Document events with base don't work, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 07/26] qapi: Fix generated code when flat union has member 'kind', Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 16/26] qapi: Document flaws in checking of names, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 09/26] qapi-visit: Fix generated code when schema has forward refs, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 06/26] qapi: Drop unused and useless parameters and variables, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 23/26] qapi-commands: Inline gen_marshal_output_call(), Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 17/26] tests/qapi-schema: Restore test case for flat union base bug, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 14/26] qapi: Document that input visitor semantics are prone to leaks, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 19/26] qapi-tests: New tests for union, alternate command arguments,
Markus Armbruster <=
- [Qemu-devel] [PATCH v2 25/26] qapi-commands: Drop useless initialization, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 18/26] tests/qapi-schema: Rename tests from data- to args-, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 15/26] qapi: Document shortcoming with union 'data' branch, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 21/26] qapi: Command returning anonymous type doesn't work, outlaw, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 26/26] qapi: Generated code cleanup, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 22/26] qapi-commands: Fix gen_err_check(e) for e and e != 'local_err', Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 20/26] qapi: Fix to reject union command and event arguments, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH v2 24/26] qapi-commands: Don't feed output of mcgen() to mcgen() again, Markus Armbruster, 2015/08/28
- [Qemu-devel] [PATCH 27/31] qapi: Drop one of two "simple union must not have base" checks, Markus Armbruster, 2015/08/31