diff options
author | Markus Armbruster <armbru@redhat.com> | 2015-07-01 09:54:11 +0200 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2015-09-04 15:47:15 +0200 |
commit | d9658d58e33128df32093b7a84bed76b527fb884 (patch) | |
tree | 12f773c91019f3dbb6ddc5b199f4b66e06d95fae | |
parent | 6af9a8fc8ec83f823c079211bc7a2414b1d4e5fe (diff) |
qapi-tests: New tests for union, alternate command arguments
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>
-rw-r--r-- | tests/Makefile | 3 | ||||
-rw-r--r-- | tests/qapi-schema/args-alternate.err | 1 | ||||
-rw-r--r-- | tests/qapi-schema/args-alternate.exit | 1 | ||||
-rw-r--r-- | tests/qapi-schema/args-alternate.json | 3 | ||||
-rw-r--r-- | tests/qapi-schema/args-alternate.out | 0 | ||||
-rw-r--r-- | tests/qapi-schema/args-union.err | 0 | ||||
-rw-r--r-- | tests/qapi-schema/args-union.exit | 1 | ||||
-rw-r--r-- | tests/qapi-schema/args-union.json | 4 | ||||
-rw-r--r-- | tests/qapi-schema/args-union.out | 4 |
9 files changed, 16 insertions, 1 deletions
diff --git a/tests/Makefile b/tests/Makefile index 0d560c51aa..7315258789 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 0000000000..3086eae56b --- /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 0000000000..d00491fd7e --- /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 0000000000..69e94d4819 --- /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 0000000000..e69de29bb2 --- /dev/null +++ b/tests/qapi-schema/args-alternate.out diff --git a/tests/qapi-schema/args-union.err b/tests/qapi-schema/args-union.err new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/qapi-schema/args-union.err diff --git a/tests/qapi-schema/args-union.exit b/tests/qapi-schema/args-union.exit new file mode 100644 index 0000000000..573541ac97 --- /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 0000000000..db97ef643b --- /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 0000000000..907080cce6 --- /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}] +[] |