[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 01/26] qapi: fix type_seen key error
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 01/26] qapi: fix type_seen key error |
Date: |
Thu, 27 Jul 2017 17:41:01 +0200 |
The type_seen member can be of a different type than the 'qtype' being
checked, since a string create several conflicts. Lookup the real
conflicting type in the conflict set, that one must be present in
type_seen.
This fixes the following error, reproducible with the modified test:
Traceback (most recent call last):
File "/home/elmarco/src/qq/tests/qapi-schema/test-qapi.py", line 56, in
<module>
schema = QAPISchema(sys.argv[1])
File "/home/elmarco/src/qq/scripts/qapi.py", line 1470, in __init__
self.exprs = check_exprs(parser.exprs)
File "/home/elmarco/src/qq/scripts/qapi.py", line 959, in check_exprs
check_alternate(expr, info)
File "/home/elmarco/src/qq/scripts/qapi.py", line 831, in check_alternate
% (name, key, types_seen[qtype]))
KeyError: 'QTYPE_QSTRING'
Signed-off-by: Marc-André Lureau <address@hidden>
---
scripts/qapi.py | 4 +++-
tests/qapi-schema/alternate-conflict-string.json | 4 ++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/scripts/qapi.py b/scripts/qapi.py
index 8aa2775f12..4ecc19e944 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -825,7 +825,9 @@ def check_alternate(expr, info):
else:
conflicting.add('QTYPE_QNUM')
conflicting.add('QTYPE_QBOOL')
- if conflicting & set(types_seen):
+ conflict = conflicting & set(types_seen)
+ if conflict:
+ qtype = list(conflict)[0]
raise QAPISemError(info, "Alternate '%s' member '%s' can't "
"be distinguished from member '%s'"
% (name, key, types_seen[qtype]))
diff --git a/tests/qapi-schema/alternate-conflict-string.json
b/tests/qapi-schema/alternate-conflict-string.json
index 85adbd4adc..bb2702978e 100644
--- a/tests/qapi-schema/alternate-conflict-string.json
+++ b/tests/qapi-schema/alternate-conflict-string.json
@@ -1,4 +1,4 @@
# alternate branches of 'str' type conflict with all scalar types
{ 'alternate': 'Alt',
- 'data': { 'one': 'str',
- 'two': 'int' } }
+ 'data': { 'one': 'int',
+ 'two': 'str' } }
--
2.14.0.rc0.1.g40ca67566
- [Qemu-devel] [PATCH 16/26] qapi: add conditions to VNC type/commands/events on the schema, (continued)
- [Qemu-devel] [PATCH 16/26] qapi: add conditions to VNC type/commands/events on the schema, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 08/26] qapi: add 'if' condition on enum member values, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 24/26] qapi: make query-gic-capabilities depend on TARGET_ARM, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 15/26] qapi2texi: add condition to variants, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 12/26] qapi2texi: add 'If:' section to generated documentation, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 21/26] build-sys: make qemu qapi objects per-target, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 14/26] qapi2texi: add 'If:' condition to struct members, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 09/26] qapi: add 'if' condition on struct member, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 18/26] qapi: add conditions to REPLICATION type/commands on the schema, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 06/26] qapi2texi: minor python code simplification, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 01/26] qapi: fix type_seen key error,
Marc-André Lureau <=
- [Qemu-devel] [PATCH 17/26] qapi: add conditions to SPICE type/commands/events on the schema, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 10/26] qapi: add 'if' condition on union variant, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 11/26] qapi: add 'if' condition on alternate variant, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 25/26] qapi: make query-cpu-model-expansion depend on s390 or x86, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 26/26] qapi: make query-cpu-definitions depend on specific targets, Marc-André Lureau, 2017/07/27
- [Qemu-devel] [PATCH 07/26] qapi: add 'if' condition on top-level schema elements, Marc-André Lureau, 2017/07/27