• E
    qapi: Better error messages for bad enums · cf393590
    Eric Blake 提交于
    The previous commit demonstrated that the generator had several
    flaws with less-than-perfect enums:
    - an enum that listed the same string twice (or two variant
    strings that map to the same C enumerator) ended up generating
    an invalid C enum
    - because the generator adds a _MAX terminator to each enum,
    the use of an enum member 'max' can also cause this clash
    - if an enum omits 'data', the generator left a python stack
    trace rather than a graceful message
    - an enum that used a non-array 'data' was silently accepted by
    the parser
    - an enum that used non-string members in the 'data' member
    was silently accepted by the parser
    
    Add check_enum to cover these situations, and update testcases
    to match.  While valid .json files won't trigger any of these
    cases, we might as well be nicer to developers that make a typo
    while trying to add new QAPI code.
    Signed-off-by: NEric Blake <eblake@redhat.com>
    Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
    Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
    cf393590
enum-clash-member.err 90 字节