aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2017-03-15 13:56:58 +0100
committerMarkus Armbruster <armbru@redhat.com>2017-03-16 07:13:02 +0100
commit481537451302fc63eee5cf3663a92629bb78954f (patch)
tree29cfcab01ca3552013ba6d32efd21070bb0765ed
parent707fb2d381de7a03e5bf9d2bd305dc7883fd992e (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.py2
-rw-r--r--tests/qapi-schema/union-base-empty.err11
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'