[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 19/26] qapi-tests: New tests for union, alternate co
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH 19/26] qapi-tests: New tests for union, alternate command arguments |
Date: |
Tue, 4 Aug 2015 11:18:09 +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 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
- [Qemu-devel] [PATCH 20/26] qapi: Fix to reject union command and event arguments, (continued)
- [Qemu-devel] [PATCH 20/26] qapi: Fix to reject union command and event arguments, Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 25/26] qapi-commands: Drop useless initialization, Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 16/26] qapi: Document flaws in checking of names, Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 17/26] tests/qapi-schema: Restore test case for flat union base bug, Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 14/26] qapi: Document that input visitor semantics are prone to leaks, Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 19/26] qapi-tests: New tests for union, alternate command arguments,
Markus Armbruster <=
- [Qemu-devel] [PATCH 03/26] qapi: Simplify guardname(), Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 13/26] tests/qapi-schema: Document events with base don't work, Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 09/26] qapi-visit: Fix generated code when schema has forward refs, Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 06/26] qapi: Drop unused and useless parameters and variables, Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 23/26] qapi-commands: Inline gen_marshal_output_call(), Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 11/26] qapi-visit: Fix two name arguments passed to visitors, Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 12/26] tests/qapi-schema: Document alternate's enum lacks visit function, Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 22/26] qapi-commands: Fix gen_err_check(e) for e and e != 'local_err', Markus Armbruster, 2015/08/04
- [Qemu-devel] [PATCH 26/26] qapi: Generated code cleanup, Markus Armbruster, 2015/08/04