Commit 156402e5 authored by Markus Armbruster's avatar Markus Armbruster
Browse files

tests/qapi-schema: Convert test harness to QAPISchemaVisitor



The old code prints the result of parsing (list of expression
dictionaries), and partial results of semantic analysis (list of enum
dictionaries, list of struct dictionaries).

The new code prints a trace of a schema visit, i.e. what the back-ends
are going to use.  Built-in and array types are omitted, because
they're boring.

Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarDaniel P. Berrange <berrange@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
parent 3f7dc21b
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
[OrderedDict([('struct', 'Data'), ('data', OrderedDict([('*number', 'int'), ('*name', 'str')]))]),
 OrderedDict([('enum', 'Enum'), ('data', ['hello', 'world'])]),
 OrderedDict([('alternate', 'Alt'), ('data', OrderedDict([('value', 'int'), ('string', 'Enum'), ('struct', 'Data')]))])]
[{'enum_name': 'Enum', 'enum_values': ['hello', 'world']},
 {'enum_name': 'AltKind', 'enum_values': None}]
[OrderedDict([('struct', 'Data'), ('data', OrderedDict([('*number', 'int'), ('*name', 'str')]))])]
alternate Alt
    case value: int
    case string: Enum
    case struct: Data
enum AltKind ['value', 'string', 'struct']
object Data
    member number: int optional=True
    member name: str optional=True
enum Enum ['hello', 'world']
+8 −5
Original line number Diff line number Diff line
[OrderedDict([('enum', 'abc'), ('data', ['a', 'b', 'c'])]),
 OrderedDict([('struct', 'def'), ('data', OrderedDict([('array', ['abc'])]))]),
 OrderedDict([('command', 'okay'), ('data', OrderedDict([('member1', ['int']), ('member2', ['def'])]))])]
[{'enum_name': 'abc', 'enum_values': ['a', 'b', 'c']}]
[OrderedDict([('struct', 'def'), ('data', OrderedDict([('array', ['abc'])]))])]
object :obj-okay-arg
    member member1: intList optional=False
    member member2: defList optional=False
enum abc ['a', 'b', 'c']
object def
    member array: abcList optional=False
command okay :obj-okay-arg -> None
   gen=True success_response=True
+1 −3
Original line number Diff line number Diff line
[OrderedDict([('enum', 'Status'), ('data', ['good', 'bad', 'ugly'])])]
[{'enum_name': 'Status', 'enum_values': ['good', 'bad', 'ugly']}]
[]
enum Status ['good', 'bad', 'ugly']
+0 −3
Original line number Diff line number Diff line
[]
[]
[]
+1 −3
Original line number Diff line number Diff line
[OrderedDict([('enum', 'MyEnum'), ('data', [])])]
[{'enum_name': 'MyEnum', 'enum_values': []}]
[]
enum MyEnum []
Loading