summaryrefslogtreecommitdiffstats
path: root/tests/qapi-schema/union-optional-branch.json
diff options
context:
space:
mode:
authorEric Blake2015-05-04 17:05:22 +0200
committerMarkus Armbruster2015-05-05 18:39:01 +0200
commitc9e0a798691d8c45747b082206e789c8f50523c9 (patch)
tree35bbc705d0227068e58d129b7f90d0b8e294d429 /tests/qapi-schema/union-optional-branch.json
parentqapi: More rigourous checking of types (diff)
downloadqemu-c9e0a798691d8c45747b082206e789c8f50523c9.tar.gz
qemu-c9e0a798691d8c45747b082206e789c8f50523c9.tar.xz
qemu-c9e0a798691d8c45747b082206e789c8f50523c9.zip
qapi: Require valid names
Previous commits demonstrated that the generator overlooked various bad naming situations: - types, commands, and events need a valid name - enum members must be valid names, when combined with prefix - union and alternate branches cannot be marked optional Valid upstream names match [a-zA-Z][a-zA-Z0-9_-]*; valid downstream names match __[a-zA-Z][a-zA-Z0-9._-]*. Enumerations match the weaker [a-zA-Z0-9._-]+ (in part thanks to QKeyCode picking an enum that starts with a digit, which we can't change now due to backwards compatibility). Rather than call out three separate regex, this patch just uses a broader combination that allows both upstream and downstream names, as well as a small hack that realizes that any enum name is merely a suffix to an already valid name prefix (that is, any enum name is valid if prepending _ fits the normal rules). We could reject new enumeration names beginning with a digit by whitelisting existing exceptions. We could also be stricter about the distinction between upstream names (no leading underscore, no use of dot) and downstream (mandatory leading double underscore), but it is probably not worth the bother. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'tests/qapi-schema/union-optional-branch.json')
-rw-r--r--tests/qapi-schema/union-optional-branch.json2
1 files changed, 1 insertions, 1 deletions
diff --git a/tests/qapi-schema/union-optional-branch.json b/tests/qapi-schema/union-optional-branch.json
index c513db72d4..591615fc68 100644
--- a/tests/qapi-schema/union-optional-branch.json
+++ b/tests/qapi-schema/union-optional-branch.json
@@ -1,2 +1,2 @@
-# FIXME: union branches cannot be optional
+# union branches cannot be optional
{ 'union': 'Union', 'data': { '*a': 'int', 'b': 'str' } }