diff options
author | Markus Armbruster <armbru@redhat.com> | 2017-03-15 13:56:58 +0100 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2017-03-16 07:13:02 +0100 |
commit | 481537451302fc63eee5cf3663a92629bb78954f (patch) | |
tree | 29cfcab01ca3552013ba6d32efd21070bb0765ed | |
parent | 707fb2d381de7a03e5bf9d2bd305dc7883fd992e (diff) |
qapi: Fix to reject empty union base gracefully
Common Python pitfall: 'assert base_members' fires on [] in addition
to None. Correct to 'assert base_members is not None'.
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-10-git-send-email-armbru@redhat.com>
-rw-r--r-- | scripts/qapi.py | 2 | ||||
-rw-r--r-- | tests/qapi-schema/union-base-empty.err | 11 |
2 files changed, 2 insertions, 11 deletions
diff --git a/scripts/qapi.py b/scripts/qapi.py index 78db319831..f4c82100f4 100644 --- a/scripts/qapi.py +++ b/scripts/qapi.py @@ -735,7 +735,7 @@ def check_union(expr, info): raise QAPISemError(info, "Flat union '%s' must have a base" % name) base_members = find_base_members(base) - assert base_members + assert base_members is not None # The value of member 'discriminator' must name a non-optional # member of the base struct. diff --git a/tests/qapi-schema/union-base-empty.err b/tests/qapi-schema/union-base-empty.err index 26bfa07bc9..7695806d81 100644 --- a/tests/qapi-schema/union-base-empty.err +++ b/tests/qapi-schema/union-base-empty.err @@ -1,10 +1 @@ -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 +tests/qapi-schema/union-base-empty.json:5: Discriminator 'type' is not a member of base struct 'Empty' |