aboutsummaryrefslogtreecommitdiff
path: root/tests/qapi-schema/qapi-schema-test.out
blob: bc8d496ff46733686946944eb4d3d950e0292321 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
alternate AltIntNum
    tag type
    case i: int
    case n: number
alternate AltNumInt
    tag type
    case n: number
    case i: int
alternate AltNumStr
    tag type
    case n: number
    case s: str
alternate AltStrBool
    tag type
    case s: str
    case b: bool
alternate AltStrInt
    tag type
    case s: str
    case i: int
alternate AltStrNum
    tag type
    case s: str
    case n: number
event EVENT_A None
   boxed=False
event EVENT_B None
   boxed=False
event EVENT_C q_obj_EVENT_C-arg
   boxed=False
event EVENT_D q_obj_EVENT_D-arg
   boxed=False
event EVENT_E UserDefZero
   boxed=True
event EVENT_F UserDefAlternate
   boxed=True
object Empty1
object Empty2
    base Empty1
enum EnumOne ['value1', 'value2', 'value3']
object EventStructOne
    member struct1: UserDefOne optional=False
    member string: str optional=False
    member enum2: EnumOne optional=True
object ForceArrays
    member unused1: UserDefOneList optional=False
    member unused2: UserDefTwoList optional=False
    member unused3: TestStructList optional=False
enum MyEnum []
object NestedEnumsOne
    member enum1: EnumOne optional=False
    member enum2: EnumOne optional=True
    member enum3: EnumOne optional=False
    member enum4: EnumOne optional=True
enum QEnumTwo ['value1', 'value2']
    prefix QENUM_TWO
enum QType ['none', 'qnull', 'qint', 'qstring', 'qdict', 'qlist', 'qfloat', 'qbool']
    prefix QTYPE
object TestStruct
    member integer: int optional=False
    member boolean: bool optional=False
    member string: str optional=False
object UserDefA
    member boolean: bool optional=False
    member a_b: int optional=True
alternate UserDefAlternate
    tag type
    case udfu: UserDefFlatUnion
    case s: str
    case i: int
object UserDefB
    member intb: int optional=False
    member a-b: bool optional=True
object UserDefC
    member string1: str optional=False
    member string2: str optional=False
object UserDefFlatUnion
    base UserDefUnionBase
    tag enum1
    case value1: UserDefA
    case value2: UserDefB
    case value3: UserDefB
object UserDefFlatUnion2
    base q_obj_UserDefFlatUnion2-base
    tag enum1
    case value1: UserDefC
    case value2: UserDefB
object UserDefNativeListUnion
    member type: UserDefNativeListUnionKind optional=False
    tag type
    case integer: q_obj_intList-wrapper
    case s8: q_obj_int8List-wrapper
    case s16: q_obj_int16List-wrapper
    case s32: q_obj_int32List-wrapper
    case s64: q_obj_int64List-wrapper
    case u8: q_obj_uint8List-wrapper
    case u16: q_obj_uint16List-wrapper
    case u32: q_obj_uint32List-wrapper
    case u64: q_obj_uint64List-wrapper
    case number: q_obj_numberList-wrapper
    case boolean: q_obj_boolList-wrapper
    case string: q_obj_strList-wrapper
    case sizes: q_obj_sizeList-wrapper
    case any: q_obj_anyList-wrapper
enum UserDefNativeListUnionKind ['integer', 's8', 's16', 's32', 's64', 'u8', 'u16', 'u32', 'u64', 'number', 'boolean', 'string', 'sizes', 'any']
object UserDefOne
    base UserDefZero
    member string: str optional=False
    member enum1: EnumOne optional=True
object UserDefOptions
    member i64: intList optional=True
    member u64: uint64List optional=True
    member u16: uint16List optional=True
    member i64x: int optional=True
    member u64x: uint64 optional=True
object UserDefTwo
    member string0: str optional=False
    member dict1: UserDefTwoDict optional=False
object UserDefTwoDict
    member string1: str optional=False
    member dict2: UserDefTwoDictDict optional=False
    member dict3: UserDefTwoDictDict optional=True
object UserDefTwoDictDict
    member userdef: UserDefOne optional=False
    member string: str optional=False
object UserDefUnionBase
    base UserDefZero
    member string: str optional=False
    member enum1: EnumOne optional=False
object UserDefZero
    member integer: int optional=False
object WrapAlternate
    member alt: UserDefAlternate optional=False
event __ORG.QEMU_X-EVENT __org.qemu_x-Struct
   boxed=False
alternate __org.qemu_x-Alt
    tag type
    case __org.qemu_x-branch: str
    case b: __org.qemu_x-Base
object __org.qemu_x-Base
    member __org.qemu_x-member1: __org.qemu_x-Enum optional=False
enum __org.qemu_x-Enum ['__org.qemu_x-value']
object __org.qemu_x-Struct
    base __org.qemu_x-Base
    member __org.qemu_x-member2: str optional=False
    member wchar-t: int optional=True
object __org.qemu_x-Struct2
    member array: __org.qemu_x-Union1List optional=False
object __org.qemu_x-Union1
    member type: __org.qemu_x-Union1Kind optional=False
    tag type
    case __org.qemu_x-branch: q_obj_str-wrapper
enum __org.qemu_x-Union1Kind ['__org.qemu_x-branch']
object __org.qemu_x-Union2
    base __org.qemu_x-Base
    tag __org.qemu_x-member1
    case __org.qemu_x-value: __org.qemu_x-Struct2
command __org.qemu_x-command q_obj___org.qemu_x-command-arg -> __org.qemu_x-Union1
   gen=True success_response=True boxed=False
command boxed-struct UserDefZero -> None
   gen=True success_response=True boxed=True
command boxed-union UserDefNativeListUnion -> None
   gen=True success_response=True boxed=True
command guest-get-time q_obj_guest-get-time-arg -> int
   gen=True success_response=True boxed=False
command guest-sync q_obj_guest-sync-arg -> any
   gen=True success_response=True boxed=False
object q_empty
object q_obj_EVENT_C-arg
    member a: int optional=True
    member b: UserDefOne optional=True
    member c: str optional=False
object q_obj_EVENT_D-arg
    member a: EventStructOne optional=False
    member b: str optional=False
    member c: str optional=True
    member enum3: EnumOne optional=True
object q_obj_UserDefFlatUnion2-base
    member integer: int optional=True
    member string: str optional=False
    member enum1: QEnumTwo optional=False
object q_obj___org.qemu_x-command-arg
    member a: __org.qemu_x-EnumList optional=False
    member b: __org.qemu_x-StructList optional=False
    member c: __org.qemu_x-Union2 optional=False
    member d: __org.qemu_x-Alt optional=False
object q_obj_anyList-wrapper
    member data: anyList optional=False
object q_obj_boolList-wrapper
    member data: boolList optional=False
object q_obj_guest-get-time-arg
    member a: int optional=False
    member b: int optional=True
object q_obj_guest-sync-arg
    member arg: any optional=False
object q_obj_int16List-wrapper
    member data: int16List optional=False
object q_obj_int32List-wrapper
    member data: int32List optional=False
object q_obj_int64List-wrapper
    member data: int64List optional=False
object q_obj_int8List-wrapper
    member data: int8List optional=False
object q_obj_intList-wrapper
    member data: intList optional=False
object q_obj_numberList-wrapper
    member data: numberList optional=False
object q_obj_sizeList-wrapper
    member data: sizeList optional=False
object q_obj_str-wrapper
    member data: str optional=False
object q_obj_strList-wrapper
    member data: strList optional=False
object q_obj_uint16List-wrapper
    member data: uint16List optional=False
object q_obj_uint32List-wrapper
    member data: uint32List optional=False
object q_obj_uint64List-wrapper
    member data: uint64List optional=False
object q_obj_uint8List-wrapper
    member data: uint8List optional=False
object q_obj_user_def_cmd1-arg
    member ud1a: UserDefOne optional=False
object q_obj_user_def_cmd2-arg
    member ud1a: UserDefOne optional=False
    member ud1b: UserDefOne optional=True
command user_def_cmd None -> None
   gen=True success_response=True boxed=False
command user_def_cmd0 Empty2 -> Empty2
   gen=True success_response=True boxed=False
command user_def_cmd1 q_obj_user_def_cmd1-arg -> None
   gen=True success_response=True boxed=False
command user_def_cmd2 q_obj_user_def_cmd2-arg -> UserDefTwo
   gen=True success_response=True boxed=False
doc freeform
    body=
= Section
== subsection

Some text foo with *strong* and _emphasis_
1. with a list
2. like that @foo

And some code:
| $ echo foo
| -> do this
| <- get that

Note: is not a meta
doc symbol=TestStruct expr=('struct', 'TestStruct')
    arg=integer
foo
blah

bao
    arg=boolean
bar
    arg=string
baz
    section=Example
-> { "execute": ... }
<- { "return": ... }
    section=Since
2.3
    section=Note
a note
    body=
body with @var
doc symbol=NestedEnumsOne expr=('struct', 'NestedEnumsOne')
    body=
for testing enums
doc symbol=MyEnum expr=('enum', 'MyEnum')
    body=
An empty enum, although unusual, is currently acceptable
doc symbol=Empty1 expr=('struct', 'Empty1')
    body=
Likewise for an empty struct, including an empty base
doc symbol=Empty2 expr=('struct', 'Empty2')
doc symbol=user_def_cmd0 expr=('command', 'user_def_cmd0')
doc symbol=QEnumTwo expr=('enum', 'QEnumTwo')
    body=
for testing override of default naming heuristic
doc symbol=UserDefOne expr=('struct', 'UserDefOne')
    body=
for testing nested structs
doc symbol=EnumOne expr=('enum', 'EnumOne')
doc symbol=UserDefZero expr=('struct', 'UserDefZero')
doc symbol=UserDefTwoDictDict expr=('struct', 'UserDefTwoDictDict')
doc symbol=UserDefTwoDict expr=('struct', 'UserDefTwoDict')
doc symbol=UserDefTwo expr=('struct', 'UserDefTwo')
doc symbol=ForceArrays expr=('struct', 'ForceArrays')
    body=
dummy struct to force generation of array types not otherwise mentioned
doc symbol=UserDefA expr=('struct', 'UserDefA')
    body=
for testing unions
Among other things, test that a name collision between branches does
not cause any problems (since only one branch can be in use at a time),
by intentionally using two branches that both have a C member 'a_b'
doc symbol=UserDefB expr=('struct', 'UserDefB')
doc symbol=UserDefFlatUnion expr=('union', 'UserDefFlatUnion')
doc symbol=UserDefUnionBase expr=('struct', 'UserDefUnionBase')
doc symbol=UserDefFlatUnion2 expr=('union', 'UserDefFlatUnion2')
    body=
this variant of UserDefFlatUnion defaults to a union that uses members with
allocated types to test corner cases in the cleanup/dealloc visitor
doc symbol=WrapAlternate expr=('struct', 'WrapAlternate')
doc symbol=UserDefAlternate expr=('alternate', 'UserDefAlternate')
doc symbol=UserDefC expr=('struct', 'UserDefC')
doc symbol=AltStrBool expr=('alternate', 'AltStrBool')
doc symbol=AltStrNum expr=('alternate', 'AltStrNum')
doc symbol=AltNumStr expr=('alternate', 'AltNumStr')
doc symbol=AltStrInt expr=('alternate', 'AltStrInt')
doc symbol=AltIntNum expr=('alternate', 'AltIntNum')
doc symbol=AltNumInt expr=('alternate', 'AltNumInt')
doc symbol=UserDefNativeListUnion expr=('union', 'UserDefNativeListUnion')
    body=
for testing native lists
doc symbol=user_def_cmd expr=('command', 'user_def_cmd')
doc symbol=user_def_cmd1 expr=('command', 'user_def_cmd1')
doc symbol=user_def_cmd2 expr=('command', 'user_def_cmd2')
doc freeform
    body=
Another comment
doc symbol=guest-get-time expr=('command', 'guest-get-time')
    arg=a
an integer
    arg=b
#optional integer
    section=Returns
returns something
    section=Example
-> { "execute": "guest-get-time", ... }
<- { "return": "42" }
    body=
@guest-get-time body
doc symbol=guest-sync expr=('command', 'guest-sync')
doc symbol=boxed-struct expr=('command', 'boxed-struct')
doc symbol=boxed-union expr=('command', 'boxed-union')
doc symbol=UserDefOptions expr=('struct', 'UserDefOptions')
    body=
For testing integer range flattening in opts-visitor. The following schema
corresponds to the option format:

-userdef i64=3-6,i64=-5--1,u64=2,u16=1,u16=7-12

For simplicity, this example doesn't use [type=]discriminator nor optargs
specific to discriminator values.
doc symbol=EventStructOne expr=('struct', 'EventStructOne')
doc symbol=EVENT_A expr=('event', 'EVENT_A')
doc symbol=EVENT_B expr=('event', 'EVENT_B')
doc symbol=EVENT_C expr=('event', 'EVENT_C')
doc symbol=EVENT_D expr=('event', 'EVENT_D')
doc symbol=EVENT_E expr=('event', 'EVENT_E')
doc symbol=EVENT_F expr=('event', 'EVENT_F')
doc symbol=__org.qemu_x-Enum expr=('enum', '__org.qemu_x-Enum')
doc symbol=__org.qemu_x-Base expr=('struct', '__org.qemu_x-Base')
doc symbol=__org.qemu_x-Struct expr=('struct', '__org.qemu_x-Struct')
doc symbol=__org.qemu_x-Union1 expr=('union', '__org.qemu_x-Union1')
doc symbol=__org.qemu_x-Struct2 expr=('struct', '__org.qemu_x-Struct2')
doc symbol=__org.qemu_x-Union2 expr=('union', '__org.qemu_x-Union2')
doc symbol=__org.qemu_x-Alt expr=('alternate', '__org.qemu_x-Alt')
doc symbol=__ORG.QEMU_X-EVENT expr=('event', '__ORG.QEMU_X-EVENT')
doc symbol=__org.qemu_x-command expr=('command', '__org.qemu_x-command')