Signed-off-by: Wenchao Xia <xiaw...@linux.vnet.ibm.com> Signed-off-by: Markus Armbruster <arm...@redhat.com> --- tests/Makefile | 8 +++++--- tests/qapi-schema/duplicate-key.err | 1 + tests/qapi-schema/duplicate-key.exit | 1 + tests/qapi-schema/duplicate-key.json | 2 ++ tests/qapi-schema/union-enum-value-not-cover.err | 1 + tests/qapi-schema/union-enum-value-not-cover.exit | 1 + tests/qapi-schema/union-enum-value-not-cover.json | 16 ++++++++++++++++ tests/qapi-schema/union-invalid-base.err | 1 + tests/qapi-schema/union-invalid-base.exit | 1 + tests/qapi-schema/union-invalid-base.json | 17 +++++++++++++++++ .../union-invalid-discriminator-value.err | 1 + .../union-invalid-discriminator-value.exit | 1 + .../union-invalid-discriminator-value.json | 17 +++++++++++++++++ tests/qapi-schema/union-invalid-discriminator.err | 1 + tests/qapi-schema/union-invalid-discriminator.exit | 1 + tests/qapi-schema/union-invalid-discriminator.json | 17 +++++++++++++++++ 16 files changed, 84 insertions(+), 3 deletions(-) create mode 100644 tests/qapi-schema/duplicate-key.err create mode 100644 tests/qapi-schema/duplicate-key.exit create mode 100644 tests/qapi-schema/duplicate-key.json create mode 100644 tests/qapi-schema/duplicate-key.out create mode 100644 tests/qapi-schema/union-enum-value-not-cover.err create mode 100644 tests/qapi-schema/union-enum-value-not-cover.exit create mode 100644 tests/qapi-schema/union-enum-value-not-cover.json create mode 100644 tests/qapi-schema/union-enum-value-not-cover.out create mode 100644 tests/qapi-schema/union-invalid-base.err create mode 100644 tests/qapi-schema/union-invalid-base.exit create mode 100644 tests/qapi-schema/union-invalid-base.json create mode 100644 tests/qapi-schema/union-invalid-base.out create mode 100644 tests/qapi-schema/union-invalid-discriminator-value.err create mode 100644 tests/qapi-schema/union-invalid-discriminator-value.exit create mode 100644 tests/qapi-schema/union-invalid-discriminator-value.json create mode 100644 tests/qapi-schema/union-invalid-discriminator-value.out create mode 100644 tests/qapi-schema/union-invalid-discriminator.err create mode 100644 tests/qapi-schema/union-invalid-discriminator.exit create mode 100644 tests/qapi-schema/union-invalid-discriminator.json create mode 100644 tests/qapi-schema/union-invalid-discriminator.out
diff --git a/tests/Makefile b/tests/Makefile index 9a7d2f1..9219422 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -119,12 +119,14 @@ check-qtest-xtensa-y += tests/qom-test$(EXESUF) check-qtest-xtensaeb-y = $(check-qtest-xtensa-y) check-qapi-schema-y := $(addprefix tests/qapi-schema/, \ - comments.json empty.json funny-char.json indented-expr.json \ - missing-colon.json missing-comma-list.json \ + comments.json duplicate-key.json empty.json funny-char.json \ + indented-expr.json missing-colon.json missing-comma-list.json \ missing-comma-object.json non-objects.json \ qapi-schema-test.json quoted-structural-chars.json \ trailing-comma-list.json trailing-comma-object.json \ - unclosed-list.json unclosed-object.json unclosed-string.json) + unclosed-list.json unclosed-object.json unclosed-string.json \ + union-invalid-base.json union-invalid-discriminator.json \ + union-invalid-discriminator-value.json union-enum-value-not-cover.json) GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h tests/test-qmp-commands.h diff --git a/tests/qapi-schema/duplicate-key.err b/tests/qapi-schema/duplicate-key.err new file mode 100644 index 0000000..0801c6a --- /dev/null +++ b/tests/qapi-schema/duplicate-key.err @@ -0,0 +1 @@ +<stdin>:2:10: Duplicate key "key" diff --git a/tests/qapi-schema/duplicate-key.exit b/tests/qapi-schema/duplicate-key.exit new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/qapi-schema/duplicate-key.exit @@ -0,0 +1 @@ +1 diff --git a/tests/qapi-schema/duplicate-key.json b/tests/qapi-schema/duplicate-key.json new file mode 100644 index 0000000..1b55d88 --- /dev/null +++ b/tests/qapi-schema/duplicate-key.json @@ -0,0 +1,2 @@ +{ 'key': 'value', + 'key': 'value' } diff --git a/tests/qapi-schema/duplicate-key.out b/tests/qapi-schema/duplicate-key.out new file mode 100644 index 0000000..e69de29 diff --git a/tests/qapi-schema/union-enum-value-not-cover.err b/tests/qapi-schema/union-enum-value-not-cover.err new file mode 100644 index 0000000..a2354b3 --- /dev/null +++ b/tests/qapi-schema/union-enum-value-not-cover.err @@ -0,0 +1 @@ +<stdin>:13: Enum value 'value2' is not covered by a branch of union 'TestUnion' diff --git a/tests/qapi-schema/union-enum-value-not-cover.exit b/tests/qapi-schema/union-enum-value-not-cover.exit new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/qapi-schema/union-enum-value-not-cover.exit @@ -0,0 +1 @@ +1 diff --git a/tests/qapi-schema/union-enum-value-not-cover.json b/tests/qapi-schema/union-enum-value-not-cover.json new file mode 100644 index 0000000..c6a8432 --- /dev/null +++ b/tests/qapi-schema/union-enum-value-not-cover.json @@ -0,0 +1,16 @@ +{ 'enum': 'TestEnum', + 'data': [ 'value1', 'value2' ] } + +{ 'type': 'TestBase', + 'data': { 'enum1': 'TestEnum' } } + +{ 'type': 'TestTypeA', + 'data': { 'string': 'str' } } + +{ 'type': 'TestTypeB', + 'data': { 'integer': 'int' } } + +{ 'union': 'TestUnion', + 'base': 'TestBase', + 'discriminator': 'enum1', + 'data': { 'value1': 'TestTypeA' } } diff --git a/tests/qapi-schema/union-enum-value-not-cover.out b/tests/qapi-schema/union-enum-value-not-cover.out new file mode 100644 index 0000000..e69de29 diff --git a/tests/qapi-schema/union-invalid-base.err b/tests/qapi-schema/union-invalid-base.err new file mode 100644 index 0000000..cf3229e --- /dev/null +++ b/tests/qapi-schema/union-invalid-base.err @@ -0,0 +1 @@ +<stdin>:13: Base 'TestBaseWrong' is not a valid type diff --git a/tests/qapi-schema/union-invalid-base.exit b/tests/qapi-schema/union-invalid-base.exit new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/qapi-schema/union-invalid-base.exit @@ -0,0 +1 @@ +1 diff --git a/tests/qapi-schema/union-invalid-base.json b/tests/qapi-schema/union-invalid-base.json new file mode 100644 index 0000000..cffc237 --- /dev/null +++ b/tests/qapi-schema/union-invalid-base.json @@ -0,0 +1,17 @@ +{ 'enum': 'TestEnum', + 'data': [ 'value1', 'value2' ] } + +{ 'type': 'TestBase', + 'data': { 'enum1': 'TestEnum' } } + +{ 'type': 'TestTypeA', + 'data': { 'string': 'str' } } + +{ 'type': 'TestTypeB', + 'data': { 'integer': 'int' } } + +{ 'union': 'TestUnion', + 'base': 'TestBaseWrong', + 'discriminator': 'enum1', + 'data': { 'value1': 'TestTypeA', + 'value2': 'TestTypeB' } } diff --git a/tests/qapi-schema/union-invalid-base.out b/tests/qapi-schema/union-invalid-base.out new file mode 100644 index 0000000..e69de29 diff --git a/tests/qapi-schema/union-invalid-discriminator-value.err b/tests/qapi-schema/union-invalid-discriminator-value.err new file mode 100644 index 0000000..1125caf --- /dev/null +++ b/tests/qapi-schema/union-invalid-discriminator-value.err @@ -0,0 +1 @@ +<stdin>:13: Discriminator value 'value_wrong' is not found in enum 'TestEnum' diff --git a/tests/qapi-schema/union-invalid-discriminator-value.exit b/tests/qapi-schema/union-invalid-discriminator-value.exit new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/qapi-schema/union-invalid-discriminator-value.exit @@ -0,0 +1 @@ +1 diff --git a/tests/qapi-schema/union-invalid-discriminator-value.json b/tests/qapi-schema/union-invalid-discriminator-value.json new file mode 100644 index 0000000..a624282 --- /dev/null +++ b/tests/qapi-schema/union-invalid-discriminator-value.json @@ -0,0 +1,17 @@ +{ 'enum': 'TestEnum', + 'data': [ 'value1', 'value2' ] } + +{ 'type': 'TestBase', + 'data': { 'enum1': 'TestEnum' } } + +{ 'type': 'TestTypeA', + 'data': { 'string': 'str' } } + +{ 'type': 'TestTypeB', + 'data': { 'integer': 'int' } } + +{ 'union': 'TestUnion', + 'base': 'TestBase', + 'discriminator': 'enum1', + 'data': { 'value_wrong': 'TestTypeA', + 'value2': 'TestTypeB' } } diff --git a/tests/qapi-schema/union-invalid-discriminator-value.out b/tests/qapi-schema/union-invalid-discriminator-value.out new file mode 100644 index 0000000..e69de29 diff --git a/tests/qapi-schema/union-invalid-discriminator.err b/tests/qapi-schema/union-invalid-discriminator.err new file mode 100644 index 0000000..c5eeda9 --- /dev/null +++ b/tests/qapi-schema/union-invalid-discriminator.err @@ -0,0 +1 @@ +<stdin>:13: Discriminator 'enum_wrong' not found in schema diff --git a/tests/qapi-schema/union-invalid-discriminator.exit b/tests/qapi-schema/union-invalid-discriminator.exit new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/tests/qapi-schema/union-invalid-discriminator.exit @@ -0,0 +1 @@ +1 diff --git a/tests/qapi-schema/union-invalid-discriminator.json b/tests/qapi-schema/union-invalid-discriminator.json new file mode 100644 index 0000000..887157e --- /dev/null +++ b/tests/qapi-schema/union-invalid-discriminator.json @@ -0,0 +1,17 @@ +{ 'enum': 'TestEnum', + 'data': [ 'value1', 'value2' ] } + +{ 'type': 'TestBase', + 'data': { 'enum1': 'TestEnum' } } + +{ 'type': 'TestTypeA', + 'data': { 'string': 'str' } } + +{ 'type': 'TestTypeB', + 'data': { 'integer': 'int' } } + +{ 'union': 'TestUnion', + 'base': 'TestBase', + 'discriminator': 'enum_wrong', + 'data': { 'value1': 'TestTypeA', + 'value2': 'TestTypeB' } } diff --git a/tests/qapi-schema/union-invalid-discriminator.out b/tests/qapi-schema/union-invalid-discriminator.out new file mode 100644 index 0000000..e69de29 -- 1.7.1