[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 19/33] qapi-tests: New tests for union, alternate com
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PULL 19/33] qapi-tests: New tests for union, alternate command arguments |
Date: |
Fri, 4 Sep 2015 16:21:26 +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
- Re: [Qemu-devel] [PULL 02/33] qapi: Clean up cgen() and mcgen(), (continued)
- [Qemu-devel] [PULL 22/33] qapi-commands: Fix gen_err_check(e) for e and e != 'local_err', Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 08/33] qapi: Generate a nicer struct for flat unions, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 12/33] tests/qapi-schema: Document alternate's enum lacks visit function, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 16/33] qapi: Document flaws in checking of names, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 30/33] qapi: Fix errors for non-string, non-dictionary members, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 29/33] tests/qapi-schema: Cover non-string, non-dictionary members, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 24/33] qapi-commands: Don't feed output of mcgen() to mcgen() again, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 28/33] tests/qapi-schema: Cover two more syntax errors, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 19/33] qapi-tests: New tests for union, alternate command arguments,
Markus Armbruster <=
- [Qemu-devel] [PULL 09/33] qapi-visit: Fix generated code when schema has forward refs, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 21/33] qapi: Command returning anonymous type doesn't work, outlaw, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 20/33] qapi: Fix to reject union command and event arguments, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 32/33] docs/qapi-code-gen.txt: Fix QAPI schema examples, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 33/33] qapi: Generators crash when --output-dir isn't given, fix, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 31/33] qapi: Simplify error reporting for array types, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 10/33] qapi-visit: Replace list implicit_structs by set, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 17/33] tests/qapi-schema: Restore test case for flat union base bug, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 26/33] qapi: Generated code cleanup, Markus Armbruster, 2015/09/04
- [Qemu-devel] [PULL 18/33] tests/qapi-schema: Rename tests from data- to args-, Markus Armbruster, 2015/09/04