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 AltListInt
125    tag type
126    case l: intList
127    case i: int
128alternate AltStrObj
129    tag type
130    case s: str
131    case o: TestStruct
132object ArrayStruct
133    member integer: intList optional=False
134    member s8: int8List optional=False
135    member s16: int16List optional=False
136    member s32: int32List optional=False
137    member s64: int64List optional=False
138    member u8: uint8List optional=False
139    member u16: uint16List optional=False
140    member u32: uint32List optional=False
141    member u64: uint64List optional=False
142    member number: numberList optional=False
143    member boolean: boolList optional=False
144    member string: strList optional=False
145    member sz: sizeList optional=True
146    member any: anyList optional=True
147    member user: StatusList optional=True
148include include/sub-module.json
149command user-def-cmd None -> None
150    gen=True success_response=True boxed=False oob=False preconfig=False
151object q_obj_user-def-cmd1-arg
152    member ud1a: UserDefOne optional=False
153command user-def-cmd1 q_obj_user-def-cmd1-arg -> None
154    gen=True success_response=True boxed=False oob=False preconfig=False
155object q_obj_user-def-cmd2-arg
156    member ud1a: UserDefOne optional=False
157    member ud1b: UserDefOne optional=True
158command user-def-cmd2 q_obj_user-def-cmd2-arg -> UserDefTwo
159    gen=True success_response=True boxed=False oob=False preconfig=False
160command cmd-success-response None -> None
161    gen=True success_response=False boxed=False oob=False preconfig=False
162command coroutine-cmd None -> None
163    gen=True success_response=True boxed=False oob=False preconfig=False coroutine=True
164object q_obj_guest-get-time-arg
165    member a: int optional=False
166    member b: int optional=True
167command guest-get-time q_obj_guest-get-time-arg -> int
168    gen=True success_response=True boxed=False oob=False preconfig=False
169object q_obj_guest-sync-arg
170    member arg: any optional=False
171command guest-sync q_obj_guest-sync-arg -> any
172    gen=True success_response=True boxed=False oob=False preconfig=False
173command boxed-struct UserDefZero -> None
174    gen=True success_response=True boxed=True oob=False preconfig=False
175command boxed-union UserDefFlatUnion -> None
176    gen=True success_response=True boxed=True oob=False preconfig=False
177command boxed-empty Empty1 -> None
178    gen=True success_response=True boxed=True oob=False preconfig=False
179command test-flags-command None -> None
180    gen=True success_response=True boxed=False oob=True preconfig=True
181object UserDefOptions
182    member i64: intList optional=True
183    member u64: uint64List optional=True
184    member u16: uint16List optional=True
185    member i64x: int optional=True
186    member u64x: uint64 optional=True
187object EventStructOne
188    member struct1: UserDefOne optional=False
189    member string: str optional=False
190    member enum2: EnumOne optional=True
191event EVENT_A None
192    boxed=False
193event EVENT_B None
194    boxed=False
195object q_obj_EVENT_C-arg
196    member a: int optional=True
197    member b: UserDefOne optional=True
198    member c: str optional=False
199event EVENT_C q_obj_EVENT_C-arg
200    boxed=False
201object q_obj_EVENT_D-arg
202    member a: EventStructOne optional=False
203    member b: str optional=False
204    member c: str optional=True
205    member enum3: EnumOne optional=True
206event EVENT_D q_obj_EVENT_D-arg
207    boxed=False
208event EVENT_E UserDefZero
209    boxed=True
210event EVENT_F UserDefFlatUnion
211    boxed=True
212event EVENT_G Empty1
213    boxed=True
214enum __org.qemu_x-Enum
215    member __org.qemu_x-value
216object __org.qemu_x-Base
217    member __org.qemu_x-member1: __org.qemu_x-Enum optional=False
218object __org.qemu_x-Struct
219    base __org.qemu_x-Base
220    member __org.qemu_x-member2: str optional=False
221    member wchar-t: int optional=True
222alternate __org.qemu_x-Alt1
223    tag type
224    case __org.qemu_x-branch: str
225array __org.qemu_x-UnionList __org.qemu_x-Union
226object __org.qemu_x-Struct2
227    member array: __org.qemu_x-UnionList optional=False
228object __org.qemu_x-Union
229    base __org.qemu_x-Base
230    tag __org.qemu_x-member1
231    case __org.qemu_x-value: __org.qemu_x-Struct2
232alternate __org.qemu_x-Alt
233    tag type
234    case __org.qemu_x-branch: __org.qemu_x-Base
235event __ORG.QEMU_X-EVENT __org.qemu_x-Struct
236    boxed=False
237array __org.qemu_x-EnumList __org.qemu_x-Enum
238array __org.qemu_x-StructList __org.qemu_x-Struct
239object q_obj___org.qemu_x-command-arg
240    member a: __org.qemu_x-EnumList optional=False
241    member b: __org.qemu_x-StructList optional=False
242    member c: __org.qemu_x-Union optional=False
243    member d: __org.qemu_x-Alt optional=False
244command __org.qemu_x-command q_obj___org.qemu_x-command-arg -> None
245    gen=True success_response=True boxed=False oob=False preconfig=False
246object TestIfStruct
247    member foo: int optional=False
248    member bar: int optional=False
249        if TEST_IF_STRUCT_BAR
250    if TEST_IF_STRUCT
251enum TestIfEnum
252    member foo
253    member bar
254        if TEST_IF_ENUM_BAR
255    if TEST_IF_ENUM
256object q_obj_TestIfUnion-base
257    member type: TestIfEnum optional=False
258    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
259object TestIfUnion
260    base q_obj_TestIfUnion-base
261    tag type
262    case foo: TestStruct
263    case bar: UserDefZero
264        if TEST_IF_ENUM_BAR
265    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
266object q_obj_test-if-union-cmd-arg
267    member union-cmd-arg: TestIfUnion optional=False
268    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
269command test-if-union-cmd q_obj_test-if-union-cmd-arg -> None
270    gen=True success_response=True boxed=False oob=False preconfig=False
271    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
272alternate TestIfAlternate
273    tag type
274    case foo: int
275    case bar: TestStruct
276        if TEST_IF_ALT_BAR
277    if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
278object q_obj_test-if-alternate-cmd-arg
279    member alt-cmd-arg: TestIfAlternate optional=False
280    if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
281command test-if-alternate-cmd q_obj_test-if-alternate-cmd-arg -> None
282    gen=True success_response=True boxed=False oob=False preconfig=False
283    if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
284object q_obj_test-if-cmd-arg
285    member foo: TestIfStruct optional=False
286    member bar: TestIfEnum optional=False
287        if TEST_IF_CMD_BAR
288    if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']}
289command test-if-cmd q_obj_test-if-cmd-arg -> UserDefThree
290    gen=True success_response=True boxed=False oob=False preconfig=False
291    if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']}
292command test-cmd-return-def-three None -> UserDefThree
293    gen=True success_response=True boxed=False oob=False preconfig=False
294array TestIfEnumList TestIfEnum
295    if TEST_IF_ENUM
296object q_obj_TEST_IF_EVENT-arg
297    member foo: TestIfStruct optional=False
298    member bar: TestIfEnumList optional=False
299        if TEST_IF_EVT_BAR
300    if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']}
301event TEST_IF_EVENT q_obj_TEST_IF_EVENT-arg
302    boxed=False
303    if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']}
304event TEST_IF_EVENT2 None
305    boxed=False
306    if {'not': {'any': [{'not': 'TEST_IF_EVT'}, {'not': 'TEST_IF_STRUCT'}]}}
307object FeatureStruct0
308    member foo: int optional=False
309object FeatureStruct1
310    member foo: int optional=False
311        feature deprecated
312    feature feature1
313object FeatureStruct2
314    member foo: int optional=False
315        feature unstable
316    feature feature1
317object FeatureStruct3
318    member foo: int optional=False
319    feature feature1
320    feature feature2
321object FeatureStruct4
322    member namespace-test: int optional=False
323    feature namespace-test
324    feature int
325    feature name
326    feature if
327object CondFeatureStruct1
328    member foo: int optional=False
329    feature feature1
330        if TEST_IF_FEATURE_1
331object CondFeatureStruct2
332    member foo: int optional=False
333    feature feature1
334        if TEST_IF_FEATURE_1
335    feature feature2
336        if TEST_IF_FEATURE_2
337object CondFeatureStruct3
338    member foo: int optional=False
339    feature feature1
340        if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']}
341object CondFeatureStruct4
342    member foo: int optional=False
343    feature feature1
344        if {'any': ['TEST_IF_COND_1', 'TEST_IF_COND_2']}
345enum FeatureEnum1
346    member eins
347    member zwei
348    member drei
349        feature deprecated
350    feature feature1
351object q_obj_FeatureUnion1-base
352    member tag: FeatureEnum1 optional=False
353object FeatureUnion1
354    base q_obj_FeatureUnion1-base
355    tag tag
356    case eins: FeatureStruct1
357    case zwei: q_empty
358    case drei: q_empty
359    feature feature1
360alternate FeatureAlternate1
361    tag type
362    case eins: FeatureStruct1
363    feature feature1
364object q_obj_test-features0-arg
365    member fs0: FeatureStruct0 optional=True
366    member fs1: FeatureStruct1 optional=True
367    member fs2: FeatureStruct2 optional=True
368    member fs3: FeatureStruct3 optional=True
369    member fs4: FeatureStruct4 optional=True
370    member cfs1: CondFeatureStruct1 optional=True
371    member cfs2: CondFeatureStruct2 optional=True
372    member cfs3: CondFeatureStruct3 optional=True
373    member cfs4: CondFeatureStruct4 optional=True
374command test-features0 q_obj_test-features0-arg -> FeatureStruct1
375    gen=True success_response=True boxed=False oob=False preconfig=False
376command test-command-features1 None -> None
377    gen=True success_response=True boxed=False oob=False preconfig=False
378    feature deprecated
379command test-command-features3 None -> None
380    gen=True success_response=True boxed=False oob=False preconfig=False
381    feature unstable
382    feature feature1
383    feature feature2
384command test-command-cond-features1 None -> None
385    gen=True success_response=True boxed=False oob=False preconfig=False
386    feature feature1
387        if TEST_IF_FEATURE_1
388command test-command-cond-features2 None -> None
389    gen=True success_response=True boxed=False oob=False preconfig=False
390    feature feature1
391        if TEST_IF_FEATURE_1
392    feature feature2
393        if TEST_IF_FEATURE_2
394command test-command-cond-features3 None -> None
395    gen=True success_response=True boxed=False oob=False preconfig=False
396    feature feature1
397        if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']}
398event TEST_EVENT_FEATURES0 FeatureStruct1
399    boxed=False
400event TEST_EVENT_FEATURES1 None
401    boxed=False
402    feature deprecated
403event TEST_EVENT_FEATURES2 None
404    boxed=False
405    feature unstable
406module include/sub-module.json
407include sub-sub-module.json
408object SecondArrayRef
409    member s: StatusList optional=False
410module sub-sub-module.json
411array StatusList Status
412enum Status
413    member good
414    member bad
415    member ugly
416