It needs to be an object (dict), not anything else. Signed-off-by: John Snow <js...@redhat.com>
--- Note: this actually doesn't ... work, but on-list, we discussed wanting tests first, then the fix. That can't happen here, because QAPI crashes at runtime. So uh, just squash this into the following patch, I guess? I tried. Signed-off-by: John Snow <js...@redhat.com> --- tests/qapi-schema/alternate-invalid-data-type.err | 0 tests/qapi-schema/alternate-invalid-data-type.json | 4 ++++ tests/qapi-schema/alternate-invalid-data-type.out | 0 tests/qapi-schema/meson.build | 2 ++ tests/qapi-schema/union-invalid-data-type.err | 0 tests/qapi-schema/union-invalid-data-type.json | 13 +++++++++++++ tests/qapi-schema/union-invalid-data-type.out | 0 7 files changed, 19 insertions(+) create mode 100644 tests/qapi-schema/alternate-invalid-data-type.err create mode 100644 tests/qapi-schema/alternate-invalid-data-type.json create mode 100644 tests/qapi-schema/alternate-invalid-data-type.out create mode 100644 tests/qapi-schema/union-invalid-data-type.err create mode 100644 tests/qapi-schema/union-invalid-data-type.json create mode 100644 tests/qapi-schema/union-invalid-data-type.out diff --git a/tests/qapi-schema/alternate-invalid-data-type.err b/tests/qapi-schema/alternate-invalid-data-type.err new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/qapi-schema/alternate-invalid-data-type.json b/tests/qapi-schema/alternate-invalid-data-type.json new file mode 100644 index 0000000000..7d5d905581 --- /dev/null +++ b/tests/qapi-schema/alternate-invalid-data-type.json @@ -0,0 +1,4 @@ +# Alternate type requires an object for 'data' +{ 'alternate': 'Alt', + 'data': ['rubbish', 'nonsense'] +} diff --git a/tests/qapi-schema/alternate-invalid-data-type.out b/tests/qapi-schema/alternate-invalid-data-type.out new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/qapi-schema/meson.build b/tests/qapi-schema/meson.build index 8ba6917132..cc5b136cfb 100644 --- a/tests/qapi-schema/meson.build +++ b/tests/qapi-schema/meson.build @@ -15,6 +15,7 @@ schemas = [ 'alternate-conflict-bool-string.json', 'alternate-conflict-num-string.json', 'alternate-empty.json', + 'alternate-invalid-data-type.json', 'alternate-invalid-dict.json', 'alternate-nested.json', 'alternate-unknown.json', @@ -192,6 +193,7 @@ schemas = [ 'union-clash-branches.json', 'union-empty.json', 'union-invalid-base.json', + 'union-invalid-data-type.json', 'union-optional-branch.json', 'union-unknown.json', 'unknown-escape.json', diff --git a/tests/qapi-schema/union-invalid-data-type.err b/tests/qapi-schema/union-invalid-data-type.err new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/qapi-schema/union-invalid-data-type.json b/tests/qapi-schema/union-invalid-data-type.json new file mode 100644 index 0000000000..5a32d267bf --- /dev/null +++ b/tests/qapi-schema/union-invalid-data-type.json @@ -0,0 +1,13 @@ +# the union data type must be an object. + +{ 'struct': 'TestTypeA', + 'data': { 'string': 'str' } } + +{ 'struct': 'TestTypeB', + 'data': { 'integer': 'int' } } + +{ 'union': 'TestUnion', + 'base': 'int', + 'discriminator': 'int', + 'data': ['TestTypeA', 'TestTypeB'] +} diff --git a/tests/qapi-schema/union-invalid-data-type.out b/tests/qapi-schema/union-invalid-data-type.out new file mode 100644 index 0000000000..e69de29bb2 -- 2.30.2