tests/qapi-schema: Cover empty union base

The new test case shows off qapi.py choking on an empty union base.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <1489582656-31133-9-git-send-email-armbru@redhat.com>
This commit is contained in:
Markus Armbruster 2017-03-15 13:56:57 +01:00
parent bd7f974796
commit 707fb2d381
5 changed files with 21 additions and 0 deletions

View File

@ -476,6 +476,7 @@ qapi-schema += unclosed-list.json
qapi-schema += unclosed-object.json
qapi-schema += unclosed-string.json
qapi-schema += unicode-str.json
qapi-schema += union-base-empty.json
qapi-schema += union-base-no-discriminator.json
qapi-schema += union-branch-case.json
qapi-schema += union-clash-branches.json

View File

@ -0,0 +1,10 @@
Traceback (most recent call last):
File "tests/qapi-schema/test-qapi.py", line 56, in <module>
schema = QAPISchema(sys.argv[1])
File "scripts/qapi.py", line 1487, in __init__
self.exprs = check_exprs(parser.exprs)
File "scripts/qapi.py", line 921, in check_exprs
check_union(expr, info)
File "scripts/qapi.py", line 738, in check_union
assert base_members
AssertionError

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1,9 @@
# Flat union with empty base and therefore without discriminator
{ 'struct': 'Empty', 'data': { } }
{ 'union': 'TestUnion',
'base': 'Empty',
'discriminator': 'type',
'data': { 'value1': 'int',
'value2': 'str' } }

View File