1module ./builtin
2object q_empty
3enum QType
4    prefix QTYPE
5    member none
6    member qnull
7    member qnum
8    member qstring
9    member qdict
10    member qlist
11    member qbool
12module qapi-schema-test.json
13object TestStruct
14    member integer: int optional=False
15    member boolean: bool optional=False
16    member string: str optional=False
17object NestedEnumsOne
18    member enum1: EnumOne optional=False
19    member enum2: EnumOne optional=True
20    member enum3: EnumOne optional=False
21    member enum4: EnumOne optional=True
22enum MyEnum
23object Empty1
24object Empty2
25    base Empty1
26object q_obj_Union-base
27    member type: EnumOne optional=False
28object Union
29    base q_obj_Union-base
30    tag type
31    case value1: q_empty
32    case value2: q_empty
33    case value3: q_empty
34    case value4: q_empty
35command user-def-cmd0 Empty2 -> Empty2
36    gen=True success_response=True boxed=False oob=False preconfig=False
37enum QEnumTwo
38    prefix QENUM_TWO
39    member value1
40    member value2
41object UserDefOne
42    base UserDefZero
43    member string: str optional=False
44    member enum1: EnumOne optional=True
45enum EnumOne
46    member value1
47    member value2
48    member value3
49    member value4
50object UserDefZero
51    member integer: int optional=False
52object UserDefTwoDictDict
53    member userdef: UserDefOne optional=False
54    member string: str optional=False
55object UserDefTwoDict
56    member string1: str optional=False
57    member dict2: UserDefTwoDictDict optional=False
58    member dict3: UserDefTwoDictDict optional=True
59object UserDefTwo
60    member string0: str optional=False
61    member dict1: UserDefTwoDict optional=False
62object UserDefThree
63    member string0: str optional=False
64array UserDefOneList UserDefOne
65array UserDefTwoList UserDefTwo
66array TestStructList TestStruct
67object ForceArrays
68    member unused1: UserDefOneList optional=False
69    member unused2: UserDefTwoList optional=False
70    member unused3: TestStructList optional=False
71object UserDefA
72    member boolean: bool optional=False
73    member a_b: int optional=True
74object UserDefB
75    member intb: int optional=False
76    member a-b: bool optional=True
77object UserDefFlatUnion
78    base UserDefUnionBase
79    tag enum1
80    case value1: UserDefA
81    case value2: UserDefB
82    case value3: UserDefB
83    case value4: q_empty
84object UserDefUnionBase
85    base UserDefZero
86    member string: str optional=False
87    member enum1: EnumOne optional=False
88object q_obj_UserDefFlatUnion2-base
89    member integer: int optional=True
90    member string: str optional=False
91    member enum1: QEnumTwo optional=False
92object UserDefFlatUnion2
93    base q_obj_UserDefFlatUnion2-base
94    tag enum1
95    case value1: UserDefC
96    case value2: UserDefB
97object WrapAlternate
98    member alt: UserDefAlternate optional=False
99alternate UserDefAlternate
100    tag type
101    case udfu: UserDefFlatUnion
102    case e: EnumOne
103    case i: int
104    case n: null
105object UserDefC
106    member string1: str optional=False
107    member string2: str optional=False
108alternate AltEnumBool
109    tag type
110    case e: EnumOne
111    case b: bool
112alternate AltEnumNum
113    tag type
114    case e: EnumOne
115    case n: number
116alternate AltNumEnum
117    tag type
118    case n: number
119    case e: EnumOne
120alternate AltEnumInt
121    tag type
122    case e: EnumOne
123    case i: int
124alternate AltStrObj
125    tag type
126    case s: str
127    case o: TestStruct
128object ArrayStruct
129    member integer: intList optional=False
130    member s8: int8List optional=False
131    member s16: int16List optional=False
132    member s32: int32List optional=False
133    member s64: int64List optional=False
134    member u8: uint8List optional=False
135    member u16: uint16List optional=False
136    member u32: uint32List optional=False
137    member u64: uint64List optional=False
138    member number: numberList optional=False
139    member boolean: boolList optional=False
140    member string: strList optional=False
141    member sz: sizeList optional=True
142    member any: anyList optional=True
143    member user: StatusList optional=True
144include include/sub-module.json
145command user-def-cmd None -> None
146    gen=True success_response=True boxed=False oob=False preconfig=False
147object q_obj_user-def-cmd1-arg
148    member ud1a: UserDefOne optional=False
149command user-def-cmd1 q_obj_user-def-cmd1-arg -> None
150    gen=True success_response=True boxed=False oob=False preconfig=False
151object q_obj_user-def-cmd2-arg
152    member ud1a: UserDefOne optional=False
153    member ud1b: UserDefOne optional=True
154command user-def-cmd2 q_obj_user-def-cmd2-arg -> UserDefTwo
155    gen=True success_response=True boxed=False oob=False preconfig=False
156command cmd-success-response None -> None
157    gen=True success_response=False boxed=False oob=False preconfig=False
158command coroutine-cmd None -> None
159    gen=True success_response=True boxed=False oob=False preconfig=False coroutine=True
160object q_obj_guest-get-time-arg
161    member a: int optional=False
162    member b: int optional=True
163command guest-get-time q_obj_guest-get-time-arg -> int
164    gen=True success_response=True boxed=False oob=False preconfig=False
165object q_obj_guest-sync-arg
166    member arg: any optional=False
167command guest-sync q_obj_guest-sync-arg -> any
168    gen=True success_response=True boxed=False oob=False preconfig=False
169command boxed-struct UserDefZero -> None
170    gen=True success_response=True boxed=True oob=False preconfig=False
171command boxed-union UserDefFlatUnion -> None
172    gen=True success_response=True boxed=True oob=False preconfig=False
173command boxed-empty Empty1 -> None
174    gen=True success_response=True boxed=True oob=False preconfig=False
175command test-flags-command None -> None
176    gen=True success_response=True boxed=False oob=True preconfig=True
177object UserDefOptions
178    member i64: intList optional=True
179    member u64: uint64List optional=True
180    member u16: uint16List optional=True
181    member i64x: int optional=True
182    member u64x: uint64 optional=True
183object EventStructOne
184    member struct1: UserDefOne optional=False
185    member string: str optional=False
186    member enum2: EnumOne optional=True
187event EVENT_A None
188    boxed=False
189event EVENT_B None
190    boxed=False
191object q_obj_EVENT_C-arg
192    member a: int optional=True
193    member b: UserDefOne optional=True
194    member c: str optional=False
195event EVENT_C q_obj_EVENT_C-arg
196    boxed=False
197object q_obj_EVENT_D-arg
198    member a: EventStructOne optional=False
199    member b: str optional=False
200    member c: str optional=True
201    member enum3: EnumOne optional=True
202event EVENT_D q_obj_EVENT_D-arg
203    boxed=False
204event EVENT_E UserDefZero
205    boxed=True
206event EVENT_F UserDefFlatUnion
207    boxed=True
208event EVENT_G Empty1
209    boxed=True
210enum __org.qemu_x-Enum
211    member __org.qemu_x-value
212object __org.qemu_x-Base
213    member __org.qemu_x-member1: __org.qemu_x-Enum optional=False
214object __org.qemu_x-Struct
215    base __org.qemu_x-Base
216    member __org.qemu_x-member2: str optional=False
217    member wchar-t: int optional=True
218alternate __org.qemu_x-Alt1
219    tag type
220    case __org.qemu_x-branch: str
221array __org.qemu_x-UnionList __org.qemu_x-Union
222object __org.qemu_x-Struct2
223    member array: __org.qemu_x-UnionList optional=False
224object __org.qemu_x-Union
225    base __org.qemu_x-Base
226    tag __org.qemu_x-member1
227    case __org.qemu_x-value: __org.qemu_x-Struct2
228alternate __org.qemu_x-Alt
229    tag type
230    case __org.qemu_x-branch: __org.qemu_x-Base
231event __ORG.QEMU_X-EVENT __org.qemu_x-Struct
232    boxed=False
233array __org.qemu_x-EnumList __org.qemu_x-Enum
234array __org.qemu_x-StructList __org.qemu_x-Struct
235object q_obj___org.qemu_x-command-arg
236    member a: __org.qemu_x-EnumList optional=False
237    member b: __org.qemu_x-StructList optional=False
238    member c: __org.qemu_x-Union optional=False
239    member d: __org.qemu_x-Alt optional=False
240command __org.qemu_x-command q_obj___org.qemu_x-command-arg -> None
241    gen=True success_response=True boxed=False oob=False preconfig=False
242object TestIfStruct
243    member foo: int optional=False
244    member bar: int optional=False
245        if TEST_IF_STRUCT_BAR
246    if TEST_IF_STRUCT
247enum TestIfEnum
248    member foo
249    member bar
250        if TEST_IF_ENUM_BAR
251    if TEST_IF_ENUM
252object q_obj_TestIfUnion-base
253    member type: TestIfEnum optional=False
254    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
255object TestIfUnion
256    base q_obj_TestIfUnion-base
257    tag type
258    case foo: TestStruct
259    case bar: UserDefZero
260        if TEST_IF_ENUM_BAR
261    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
262object q_obj_test-if-union-cmd-arg
263    member union-cmd-arg: TestIfUnion optional=False
264    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
265command test-if-union-cmd q_obj_test-if-union-cmd-arg -> None
266    gen=True success_response=True boxed=False oob=False preconfig=False
267    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
268alternate TestIfAlternate
269    tag type
270    case foo: int
271    case bar: TestStruct
272        if TEST_IF_ALT_BAR
273    if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
274object q_obj_test-if-alternate-cmd-arg
275    member alt-cmd-arg: TestIfAlternate optional=False
276    if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
277command test-if-alternate-cmd q_obj_test-if-alternate-cmd-arg -> None
278    gen=True success_response=True boxed=False oob=False preconfig=False
279    if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
280object q_obj_test-if-cmd-arg
281    member foo: TestIfStruct optional=False
282    member bar: TestIfEnum optional=False
283        if TEST_IF_CMD_BAR
284    if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']}
285command test-if-cmd q_obj_test-if-cmd-arg -> UserDefThree
286    gen=True success_response=True boxed=False oob=False preconfig=False
287    if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']}
288command test-cmd-return-def-three None -> UserDefThree
289    gen=True success_response=True boxed=False oob=False preconfig=False
290array TestIfEnumList TestIfEnum
291    if TEST_IF_ENUM
292object q_obj_TEST_IF_EVENT-arg
293    member foo: TestIfStruct optional=False
294    member bar: TestIfEnumList optional=False
295        if TEST_IF_EVT_BAR
296    if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']}
297event TEST_IF_EVENT q_obj_TEST_IF_EVENT-arg
298    boxed=False
299    if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']}
300event TEST_IF_EVENT2 None
301    boxed=False
302    if {'not': {'any': [{'not': 'TEST_IF_EVT'}, {'not': 'TEST_IF_STRUCT'}]}}
303object FeatureStruct0
304    member foo: int optional=False
305object FeatureStruct1
306    member foo: int optional=False
307        feature deprecated
308    feature feature1
309object FeatureStruct2
310    member foo: int optional=False
311    feature feature1
312object FeatureStruct3
313    member foo: int optional=False
314    feature feature1
315    feature feature2
316object FeatureStruct4
317    member namespace-test: int optional=False
318    feature namespace-test
319    feature int
320    feature name
321    feature if
322object CondFeatureStruct1
323    member foo: int optional=False
324    feature feature1
325        if TEST_IF_FEATURE_1
326object CondFeatureStruct2
327    member foo: int optional=False
328    feature feature1
329        if TEST_IF_FEATURE_1
330    feature feature2
331        if TEST_IF_FEATURE_2
332object CondFeatureStruct3
333    member foo: int optional=False
334    feature feature1
335        if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']}
336object CondFeatureStruct4
337    member foo: int optional=False
338    feature feature1
339        if {'any': ['TEST_IF_COND_1', 'TEST_IF_COND_2']}
340enum FeatureEnum1
341    member eins
342    member zwei
343    member drei
344    feature feature1
345object q_obj_FeatureUnion1-base
346    member tag: FeatureEnum1 optional=False
347object FeatureUnion1
348    base q_obj_FeatureUnion1-base
349    tag tag
350    case eins: FeatureStruct1
351    case zwei: q_empty
352    case drei: q_empty
353    feature feature1
354alternate FeatureAlternate1
355    tag type
356    case eins: FeatureStruct1
357    feature feature1
358object q_obj_test-features0-arg
359    member fs0: FeatureStruct0 optional=True
360    member fs1: FeatureStruct1 optional=True
361    member fs2: FeatureStruct2 optional=True
362    member fs3: FeatureStruct3 optional=True
363    member fs4: FeatureStruct4 optional=True
364    member cfs1: CondFeatureStruct1 optional=True
365    member cfs2: CondFeatureStruct2 optional=True
366    member cfs3: CondFeatureStruct3 optional=True
367    member cfs4: CondFeatureStruct4 optional=True
368command test-features0 q_obj_test-features0-arg -> FeatureStruct1
369    gen=True success_response=True boxed=False oob=False preconfig=False
370command test-command-features1 None -> None
371    gen=True success_response=True boxed=False oob=False preconfig=False
372    feature deprecated
373command test-command-features3 None -> None
374    gen=True success_response=True boxed=False oob=False preconfig=False
375    feature feature1
376    feature feature2
377command test-command-cond-features1 None -> None
378    gen=True success_response=True boxed=False oob=False preconfig=False
379    feature feature1
380        if TEST_IF_FEATURE_1
381command test-command-cond-features2 None -> None
382    gen=True success_response=True boxed=False oob=False preconfig=False
383    feature feature1
384        if TEST_IF_FEATURE_1
385    feature feature2
386        if TEST_IF_FEATURE_2
387command test-command-cond-features3 None -> None
388    gen=True success_response=True boxed=False oob=False preconfig=False
389    feature feature1
390        if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']}
391event TEST_EVENT_FEATURES0 FeatureStruct1
392    boxed=False
393event TEST_EVENT_FEATURES1 None
394    boxed=False
395    feature deprecated
396module include/sub-module.json
397include sub-sub-module.json
398object SecondArrayRef
399    member s: StatusList optional=False
400module sub-sub-module.json
401array StatusList Status
402enum Status
403    member good
404    member bad
405    member ugly
406