xref: /qemu/tests/qapi-schema/qapi-schema-test.out (revision 39d2cc8e71cb7b67b3636b6c431832a426651dd2)
1e2bbc4eaSJohn Snowmodule ./builtin
28a84767cSMarkus Armbrusterobject q_empty
31e381b65SMarc-André Lureauenum QType
48a84767cSMarkus Armbruster    prefix QTYPE
51e381b65SMarc-André Lureau    member none
61e381b65SMarc-André Lureau    member qnull
71e381b65SMarc-André Lureau    member qnum
81e381b65SMarc-André Lureau    member qstring
91e381b65SMarc-André Lureau    member qdict
101e381b65SMarc-André Lureau    member qlist
111e381b65SMarc-André Lureau    member qbool
12cf40a0a5SMarkus Armbrustermodule qapi-schema-test.json
138a84767cSMarkus Armbrusterobject TestStruct
148a84767cSMarkus Armbruster    member integer: int optional=False
158a84767cSMarkus Armbruster    member boolean: bool optional=False
168a84767cSMarkus Armbruster    member string: str optional=False
178a84767cSMarkus Armbrusterobject NestedEnumsOne
188a84767cSMarkus Armbruster    member enum1: EnumOne optional=False
198a84767cSMarkus Armbruster    member enum2: EnumOne optional=True
208a84767cSMarkus Armbruster    member enum3: EnumOne optional=False
218a84767cSMarkus Armbruster    member enum4: EnumOne optional=True
221e381b65SMarc-André Lureauenum MyEnum
238a84767cSMarkus Armbrusterobject Empty1
248a84767cSMarkus Armbrusterobject Empty2
258a84767cSMarkus Armbruster    base Empty1
260ced9531SMarkus Armbrusterobject q_obj_Union-base
270ced9531SMarkus Armbruster    member type: EnumOne optional=False
280ced9531SMarkus Armbrusterobject Union
290ced9531SMarkus Armbruster    base q_obj_Union-base
300ced9531SMarkus Armbruster    tag type
310ced9531SMarkus Armbruster    case value1: q_empty
320ced9531SMarkus Armbruster    case value2: q_empty
330ced9531SMarkus Armbruster    case value3: q_empty
340ced9531SMarkus Armbruster    case value4: q_empty
3505ebf841SMarkus Armbrustercommand user-def-cmd0 Empty2 -> Empty2
367b13f2c2SIgor Mammedov    gen=True success_response=True boxed=False oob=False preconfig=False
371e381b65SMarc-André Lureauenum QEnumTwo
388a84767cSMarkus Armbruster    prefix QENUM_TWO
391e381b65SMarc-André Lureau    member value1
401e381b65SMarc-André Lureau    member value2
418a84767cSMarkus Armbrusterobject UserDefOne
428a84767cSMarkus Armbruster    base UserDefZero
438a84767cSMarkus Armbruster    member string: str optional=False
448a84767cSMarkus Armbruster    member enum1: EnumOne optional=True
451e381b65SMarc-André Lureauenum EnumOne
461e381b65SMarc-André Lureau    member value1
471e381b65SMarc-André Lureau    member value2
481e381b65SMarc-André Lureau    member value3
491e381b65SMarc-André Lureau    member value4
508a84767cSMarkus Armbrusterobject UserDefZero
518a84767cSMarkus Armbruster    member integer: int optional=False
528a84767cSMarkus Armbrusterobject UserDefTwoDictDict
538a84767cSMarkus Armbruster    member userdef: UserDefOne optional=False
548a84767cSMarkus Armbruster    member string: str optional=False
558a84767cSMarkus Armbrusterobject UserDefTwoDict
568a84767cSMarkus Armbruster    member string1: str optional=False
578a84767cSMarkus Armbruster    member dict2: UserDefTwoDictDict optional=False
588a84767cSMarkus Armbruster    member dict3: UserDefTwoDictDict optional=True
598a84767cSMarkus Armbrusterobject UserDefTwo
608a84767cSMarkus Armbruster    member string0: str optional=False
618a84767cSMarkus Armbruster    member dict1: UserDefTwoDict optional=False
62967c8851SMarc-André Lureauobject UserDefThree
63967c8851SMarc-André Lureau    member string0: str optional=False
64ca0ac758SMarkus Armbrusterarray UserDefOneList UserDefOne
65ca0ac758SMarkus Armbrusterarray UserDefTwoList UserDefTwo
66ca0ac758SMarkus Armbrusterarray TestStructList TestStruct
678a84767cSMarkus Armbrusterobject ForceArrays
688a84767cSMarkus Armbruster    member unused1: UserDefOneList optional=False
698a84767cSMarkus Armbruster    member unused2: UserDefTwoList optional=False
708a84767cSMarkus Armbruster    member unused3: TestStructList optional=False
718a84767cSMarkus Armbrusterobject UserDefA
728a84767cSMarkus Armbruster    member boolean: bool optional=False
738a84767cSMarkus Armbruster    member a_b: int optional=True
748a84767cSMarkus Armbrusterobject UserDefB
758a84767cSMarkus Armbruster    member intb: int optional=False
768a84767cSMarkus Armbruster    member a-b: bool optional=True
778a84767cSMarkus Armbrusterobject UserDefFlatUnion
788a84767cSMarkus Armbruster    base UserDefUnionBase
798a84767cSMarkus Armbruster    tag enum1
808a84767cSMarkus Armbruster    case value1: UserDefA
818a84767cSMarkus Armbruster    case value2: UserDefB
828a84767cSMarkus Armbruster    case value3: UserDefB
83800877bbSAnton Nefedov    case value4: q_empty
848a84767cSMarkus Armbrusterobject UserDefUnionBase
858a84767cSMarkus Armbruster    base UserDefZero
868a84767cSMarkus Armbruster    member string: str optional=False
878a84767cSMarkus Armbruster    member enum1: EnumOne optional=False
888a84767cSMarkus Armbrusterobject q_obj_UserDefFlatUnion2-base
898a84767cSMarkus Armbruster    member integer: int optional=True
908a84767cSMarkus Armbruster    member string: str optional=False
918a84767cSMarkus Armbruster    member enum1: QEnumTwo optional=False
928a84767cSMarkus Armbrusterobject UserDefFlatUnion2
938a84767cSMarkus Armbruster    base q_obj_UserDefFlatUnion2-base
948a84767cSMarkus Armbruster    tag enum1
958a84767cSMarkus Armbruster    case value1: UserDefC
968a84767cSMarkus Armbruster    case value2: UserDefB
978a84767cSMarkus Armbrusterobject WrapAlternate
988a84767cSMarkus Armbruster    member alt: UserDefAlternate optional=False
998a84767cSMarkus Armbrusteralternate UserDefAlternate
1008a84767cSMarkus Armbruster    tag type
1018a84767cSMarkus Armbruster    case udfu: UserDefFlatUnion
1028a84767cSMarkus Armbruster    case e: EnumOne
1038a84767cSMarkus Armbruster    case i: int
1048a84767cSMarkus Armbruster    case n: null
1058a84767cSMarkus Armbrusterobject UserDefC
1068a84767cSMarkus Armbruster    member string1: str optional=False
1078a84767cSMarkus Armbruster    member string2: str optional=False
1088168ca8eSMarkus Armbrusteralternate AltEnumBool
1098168ca8eSMarkus Armbruster    tag type
1108168ca8eSMarkus Armbruster    case e: EnumOne
1118168ca8eSMarkus Armbruster    case b: bool
1128168ca8eSMarkus Armbrusteralternate AltEnumNum
1138168ca8eSMarkus Armbruster    tag type
1148168ca8eSMarkus Armbruster    case e: EnumOne
1158168ca8eSMarkus Armbruster    case n: number
1168168ca8eSMarkus Armbrusteralternate AltNumEnum
1178168ca8eSMarkus Armbruster    tag type
1188168ca8eSMarkus Armbruster    case n: number
1198168ca8eSMarkus Armbruster    case e: EnumOne
1208a84767cSMarkus Armbrusteralternate AltEnumInt
1218a84767cSMarkus Armbruster    tag type
1228a84767cSMarkus Armbruster    case e: EnumOne
1238a84767cSMarkus Armbruster    case i: int
12479db9948SPaolo Bonzinialternate AltListInt
12579db9948SPaolo Bonzini    tag type
12679db9948SPaolo Bonzini    case l: intList
12779db9948SPaolo Bonzini    case i: int
128c0644771SMarkus Armbrusteralternate AltStrObj
129da9cb193SEric Blake    tag type
1309c51b441SEric Blake    case s: str
131c0644771SMarkus Armbruster    case o: TestStruct
132dffd8ff9SMarkus Armbrusterobject ArrayStruct
133dffd8ff9SMarkus Armbruster    member integer: intList optional=False
134dffd8ff9SMarkus Armbruster    member s8: int8List optional=False
135dffd8ff9SMarkus Armbruster    member s16: int16List optional=False
136dffd8ff9SMarkus Armbruster    member s32: int32List optional=False
137dffd8ff9SMarkus Armbruster    member s64: int64List optional=False
138dffd8ff9SMarkus Armbruster    member u8: uint8List optional=False
139dffd8ff9SMarkus Armbruster    member u16: uint16List optional=False
140dffd8ff9SMarkus Armbruster    member u32: uint32List optional=False
141dffd8ff9SMarkus Armbruster    member u64: uint64List optional=False
142dffd8ff9SMarkus Armbruster    member number: numberList optional=False
143dffd8ff9SMarkus Armbruster    member boolean: boolList optional=False
144dffd8ff9SMarkus Armbruster    member string: strList optional=False
145dffd8ff9SMarkus Armbruster    member sz: sizeList optional=True
146dffd8ff9SMarkus Armbruster    member any: anyList optional=True
147dffd8ff9SMarkus Armbruster    member user: StatusList optional=True
148709395f8SMarkus Armbrusterinclude include/sub-module.json
14905ebf841SMarkus Armbrustercommand user-def-cmd None -> None
1507b13f2c2SIgor Mammedov    gen=True success_response=True boxed=False oob=False preconfig=False
15105ebf841SMarkus Armbrusterobject q_obj_user-def-cmd1-arg
1528a84767cSMarkus Armbruster    member ud1a: UserDefOne optional=False
15305ebf841SMarkus Armbrustercommand user-def-cmd1 q_obj_user-def-cmd1-arg -> None
1547b13f2c2SIgor Mammedov    gen=True success_response=True boxed=False oob=False preconfig=False
15505ebf841SMarkus Armbrusterobject q_obj_user-def-cmd2-arg
1568a84767cSMarkus Armbruster    member ud1a: UserDefOne optional=False
1578a84767cSMarkus Armbruster    member ud1b: UserDefOne optional=True
15805ebf841SMarkus Armbrustercommand user-def-cmd2 q_obj_user-def-cmd2-arg -> UserDefTwo
1597b13f2c2SIgor Mammedov    gen=True success_response=True boxed=False oob=False preconfig=False
160ae6bf766SMarc-André Lureaucommand cmd-success-response None -> None
161ae6bf766SMarc-André Lureau    gen=True success_response=False boxed=False oob=False preconfig=False
16204f22362SKevin Wolfcommand coroutine-cmd None -> None
16304f22362SKevin Wolf    gen=True success_response=True boxed=False oob=False preconfig=False coroutine=True
1648a84767cSMarkus Armbrusterobject q_obj_guest-get-time-arg
1658a84767cSMarkus Armbruster    member a: int optional=False
1668a84767cSMarkus Armbruster    member b: int optional=True
1678a84767cSMarkus Armbrustercommand guest-get-time q_obj_guest-get-time-arg -> int
1687b13f2c2SIgor Mammedov    gen=True success_response=True boxed=False oob=False preconfig=False
1698a84767cSMarkus Armbrusterobject q_obj_guest-sync-arg
1708a84767cSMarkus Armbruster    member arg: any optional=False
1718a84767cSMarkus Armbrustercommand guest-sync q_obj_guest-sync-arg -> any
1727b13f2c2SIgor Mammedov    gen=True success_response=True boxed=False oob=False preconfig=False
1738a84767cSMarkus Armbrustercommand boxed-struct UserDefZero -> None
1747b13f2c2SIgor Mammedov    gen=True success_response=True boxed=True oob=False preconfig=False
1751e65e16cSMarkus Armbrustercommand boxed-union UserDefFlatUnion -> None
1767b13f2c2SIgor Mammedov    gen=True success_response=True boxed=True oob=False preconfig=False
177675b214bSMarkus Armbrustercommand boxed-empty Empty1 -> None
178675b214bSMarkus Armbruster    gen=True success_response=True boxed=True oob=False preconfig=False
1797b13f2c2SIgor Mammedovcommand test-flags-command None -> None
1807b13f2c2SIgor Mammedov    gen=True success_response=True boxed=False oob=True preconfig=True
181156402e5SMarkus Armbrusterobject UserDefOptions
182156402e5SMarkus Armbruster    member i64: intList optional=True
183156402e5SMarkus Armbruster    member u64: uint64List optional=True
184156402e5SMarkus Armbruster    member u16: uint16List optional=True
185156402e5SMarkus Armbruster    member i64x: int optional=True
186156402e5SMarkus Armbruster    member u64x: uint64 optional=True
1878a84767cSMarkus Armbrusterobject EventStructOne
1888a84767cSMarkus Armbruster    member struct1: UserDefOne optional=False
189156402e5SMarkus Armbruster    member string: str optional=False
1908a84767cSMarkus Armbruster    member enum2: EnumOne optional=True
1918a84767cSMarkus Armbrusterevent EVENT_A None
19248825ca4SEric Blake    boxed=False
1938a84767cSMarkus Armbrusterevent EVENT_B None
1948a84767cSMarkus Armbruster    boxed=False
1957599697cSEric Blakeobject q_obj_EVENT_C-arg
1967599697cSEric Blake    member a: int optional=True
1977599697cSEric Blake    member b: UserDefOne optional=True
1987599697cSEric Blake    member c: str optional=False
1998a84767cSMarkus Armbrusterevent EVENT_C q_obj_EVENT_C-arg
2008a84767cSMarkus Armbruster    boxed=False
2017599697cSEric Blakeobject q_obj_EVENT_D-arg
2027599697cSEric Blake    member a: EventStructOne optional=False
2037599697cSEric Blake    member b: str optional=False
2047599697cSEric Blake    member c: str optional=True
2057599697cSEric Blake    member enum3: EnumOne optional=True
2068a84767cSMarkus Armbrusterevent EVENT_D q_obj_EVENT_D-arg
2078a84767cSMarkus Armbruster    boxed=False
2088a84767cSMarkus Armbrusterevent EVENT_E UserDefZero
2098a84767cSMarkus Armbruster    boxed=True
210b22e8658SMarkus Armbrusterevent EVENT_F UserDefFlatUnion
2118a84767cSMarkus Armbruster    boxed=True
212675b214bSMarkus Armbrusterevent EVENT_G Empty1
213675b214bSMarkus Armbruster    boxed=True
2141e381b65SMarc-André Lureauenum __org.qemu_x-Enum
2151e381b65SMarc-André Lureau    member __org.qemu_x-value
2168a84767cSMarkus Armbrusterobject __org.qemu_x-Base
2178a84767cSMarkus Armbruster    member __org.qemu_x-member1: __org.qemu_x-Enum optional=False
2188a84767cSMarkus Armbrusterobject __org.qemu_x-Struct
2198a84767cSMarkus Armbruster    base __org.qemu_x-Base
2208a84767cSMarkus Armbruster    member __org.qemu_x-member2: str optional=False
2218a84767cSMarkus Armbruster    member wchar-t: int optional=True
222f0325536SMarkus Armbrusteralternate __org.qemu_x-Alt1
223f0325536SMarkus Armbruster    tag type
224f0325536SMarkus Armbruster    case __org.qemu_x-branch: str
225bb5821ddSMarkus Armbrusterarray __org.qemu_x-UnionList __org.qemu_x-Union
2268a84767cSMarkus Armbrusterobject __org.qemu_x-Struct2
227bb5821ddSMarkus Armbruster    member array: __org.qemu_x-UnionList optional=False
228bb5821ddSMarkus Armbrusterobject __org.qemu_x-Union
2298a84767cSMarkus Armbruster    base __org.qemu_x-Base
2308a84767cSMarkus Armbruster    tag __org.qemu_x-member1
2318a84767cSMarkus Armbruster    case __org.qemu_x-value: __org.qemu_x-Struct2
2328a84767cSMarkus Armbrusteralternate __org.qemu_x-Alt
2338a84767cSMarkus Armbruster    tag type
234f0325536SMarkus Armbruster    case __org.qemu_x-branch: __org.qemu_x-Base
2358a84767cSMarkus Armbrusterevent __ORG.QEMU_X-EVENT __org.qemu_x-Struct
2368a84767cSMarkus Armbruster    boxed=False
237ca0ac758SMarkus Armbrusterarray __org.qemu_x-EnumList __org.qemu_x-Enum
238ca0ac758SMarkus Armbrusterarray __org.qemu_x-StructList __org.qemu_x-Struct
2397599697cSEric Blakeobject q_obj___org.qemu_x-command-arg
2407599697cSEric Blake    member a: __org.qemu_x-EnumList optional=False
2417599697cSEric Blake    member b: __org.qemu_x-StructList optional=False
242bb5821ddSMarkus Armbruster    member c: __org.qemu_x-Union optional=False
2437599697cSEric Blake    member d: __org.qemu_x-Alt optional=False
244bb5821ddSMarkus Armbrustercommand __org.qemu_x-command q_obj___org.qemu_x-command-arg -> None
2457b13f2c2SIgor Mammedov    gen=True success_response=True boxed=False oob=False preconfig=False
246967c8851SMarc-André Lureauobject TestIfStruct
247967c8851SMarc-André Lureau    member foo: int optional=False
248ccadd6bcSMarc-André Lureau    member bar: int optional=False
24940e350f0SMarkus Armbruster        if TEST_IF_STRUCT_MEMBER
2508a9f1e1dSMarc-André Lureau    if TEST_IF_STRUCT
2511e381b65SMarc-André Lureauenum TestIfEnum
2521e381b65SMarc-André Lureau    member foo
2531e381b65SMarc-André Lureau    member bar
25440e350f0SMarkus Armbruster        if TEST_IF_ENUM_MEMBER
255*39d2cc8eSMarkus Armbruster    if TEST_IF_UNION
25654501863SMarkus Armbrusterobject q_obj_TestIfUnion-base
25754501863SMarkus Armbruster    member type: TestIfEnum optional=False
2589c629fa8SMarkus Armbruster    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
259967c8851SMarc-André Lureauobject TestIfUnion
26054501863SMarkus Armbruster    base q_obj_TestIfUnion-base
261967c8851SMarc-André Lureau    tag type
26254501863SMarkus Armbruster    case foo: TestStruct
26354501863SMarkus Armbruster    case bar: UserDefZero
26440e350f0SMarkus Armbruster        if TEST_IF_ENUM_MEMBER
2659c629fa8SMarkus Armbruster    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
26605ebf841SMarkus Armbrusterobject q_obj_test-if-union-cmd-arg
2675aceeac0SMarkus Armbruster    member union-cmd-arg: TestIfUnion optional=False
2689c629fa8SMarkus Armbruster    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
26905ebf841SMarkus Armbrustercommand test-if-union-cmd q_obj_test-if-union-cmd-arg -> None
270f8c4fdd6SMarc-André Lureau    gen=True success_response=True boxed=False oob=False preconfig=False
2719c629fa8SMarkus Armbruster    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
272967c8851SMarc-André Lureaualternate TestIfAlternate
273967c8851SMarc-André Lureau    tag type
274967c8851SMarc-André Lureau    case foo: int
275967c8851SMarc-André Lureau    case bar: TestStruct
27640e350f0SMarkus Armbruster        if TEST_IF_ALT_MEMBER
2779c629fa8SMarkus Armbruster    if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
27805ebf841SMarkus Armbrusterobject q_obj_test-if-alternate-cmd-arg
2795aceeac0SMarkus Armbruster    member alt-cmd-arg: TestIfAlternate optional=False
2809c629fa8SMarkus Armbruster    if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
28105ebf841SMarkus Armbrustercommand test-if-alternate-cmd q_obj_test-if-alternate-cmd-arg -> None
282f8c4fdd6SMarc-André Lureau    gen=True success_response=True boxed=False oob=False preconfig=False
2839c629fa8SMarkus Armbruster    if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
28405ebf841SMarkus Armbrusterobject q_obj_test-if-cmd-arg
285967c8851SMarc-André Lureau    member foo: TestIfStruct optional=False
286*39d2cc8eSMarkus Armbruster    member bar: str optional=False
28740e350f0SMarkus Armbruster        if TEST_IF_CMD_ARG
2889c629fa8SMarkus Armbruster    if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']}
28905ebf841SMarkus Armbrustercommand test-if-cmd q_obj_test-if-cmd-arg -> UserDefThree
290967c8851SMarc-André Lureau    gen=True success_response=True boxed=False oob=False preconfig=False
2919c629fa8SMarkus Armbruster    if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']}
29205ebf841SMarkus Armbrustercommand test-cmd-return-def-three None -> UserDefThree
293967c8851SMarc-André Lureau    gen=True success_response=True boxed=False oob=False preconfig=False
294d4f4cae8SMarkus Armbrusterobject q_obj_TEST_IF_EVENT-arg
295967c8851SMarc-André Lureau    member foo: TestIfStruct optional=False
296*39d2cc8eSMarkus Armbruster    member bar: strList optional=False
29740e350f0SMarkus Armbruster        if TEST_IF_EVT_ARG
2989c629fa8SMarkus Armbruster    if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']}
299d4f4cae8SMarkus Armbrusterevent TEST_IF_EVENT q_obj_TEST_IF_EVENT-arg
300967c8851SMarc-André Lureau    boxed=False
3019c629fa8SMarkus Armbruster    if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']}
302dd044023SMarkus Armbrusterevent TEST_IF_EVENT2 None
303dd044023SMarkus Armbruster    boxed=False
3049c629fa8SMarkus Armbruster    if {'not': {'any': [{'not': 'TEST_IF_EVT'}, {'not': 'TEST_IF_STRUCT'}]}}
3058aa3a33eSKevin Wolfobject FeatureStruct0
3068aa3a33eSKevin Wolf    member foo: int optional=False
3078aa3a33eSKevin Wolfobject FeatureStruct1
3088aa3a33eSKevin Wolf    member foo: int optional=False
309f965e8feSMarkus Armbruster        feature deprecated
3108aa3a33eSKevin Wolf    feature feature1
3118aa3a33eSKevin Wolfobject FeatureStruct2
3128aa3a33eSKevin Wolf    member foo: int optional=False
313a3c45b3eSMarkus Armbruster        feature unstable
3148aa3a33eSKevin Wolf    feature feature1
3158aa3a33eSKevin Wolfobject FeatureStruct3
3168aa3a33eSKevin Wolf    member foo: int optional=False
3178aa3a33eSKevin Wolf    feature feature1
3188aa3a33eSKevin Wolf    feature feature2
3198aa3a33eSKevin Wolfobject FeatureStruct4
3208aa3a33eSKevin Wolf    member namespace-test: int optional=False
3218aa3a33eSKevin Wolf    feature namespace-test
3228aa3a33eSKevin Wolf    feature int
3238aa3a33eSKevin Wolf    feature name
3248aa3a33eSKevin Wolf    feature if
3258aa3a33eSKevin Wolfobject CondFeatureStruct1
3268aa3a33eSKevin Wolf    member foo: int optional=False
3278aa3a33eSKevin Wolf    feature feature1
3288a9f1e1dSMarc-André Lureau        if TEST_IF_FEATURE_1
3298aa3a33eSKevin Wolfobject CondFeatureStruct2
3308aa3a33eSKevin Wolf    member foo: int optional=False
3318aa3a33eSKevin Wolf    feature feature1
3328a9f1e1dSMarc-André Lureau        if TEST_IF_FEATURE_1
3338aa3a33eSKevin Wolf    feature feature2
3348a9f1e1dSMarc-André Lureau        if TEST_IF_FEATURE_2
3358aa3a33eSKevin Wolfobject CondFeatureStruct3
3368aa3a33eSKevin Wolf    member foo: int optional=False
3378aa3a33eSKevin Wolf    feature feature1
3389c629fa8SMarkus Armbruster        if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']}
3393ad64edfSMarc-André Lureauobject CondFeatureStruct4
3403ad64edfSMarc-André Lureau    member foo: int optional=False
3413ad64edfSMarc-André Lureau    feature feature1
3429c629fa8SMarkus Armbruster        if {'any': ['TEST_IF_COND_1', 'TEST_IF_COND_2']}
343013b4efcSMarkus Armbrusterenum FeatureEnum1
344013b4efcSMarkus Armbruster    member eins
345013b4efcSMarkus Armbruster    member zwei
346013b4efcSMarkus Armbruster    member drei
347b6c18755SMarkus Armbruster        feature deprecated
348013b4efcSMarkus Armbruster    feature feature1
349013b4efcSMarkus Armbrusterobject q_obj_FeatureUnion1-base
350013b4efcSMarkus Armbruster    member tag: FeatureEnum1 optional=False
351013b4efcSMarkus Armbrusterobject FeatureUnion1
352013b4efcSMarkus Armbruster    base q_obj_FeatureUnion1-base
353013b4efcSMarkus Armbruster    tag tag
354013b4efcSMarkus Armbruster    case eins: FeatureStruct1
355013b4efcSMarkus Armbruster    case zwei: q_empty
356013b4efcSMarkus Armbruster    case drei: q_empty
357013b4efcSMarkus Armbruster    feature feature1
358013b4efcSMarkus Armbrusteralternate FeatureAlternate1
359013b4efcSMarkus Armbruster    tag type
360013b4efcSMarkus Armbruster    case eins: FeatureStruct1
361013b4efcSMarkus Armbruster    feature feature1
362013b4efcSMarkus Armbrusterobject q_obj_test-features0-arg
36391fa93e5SMarkus Armbruster    member fs0: FeatureStruct0 optional=True
36491fa93e5SMarkus Armbruster    member fs1: FeatureStruct1 optional=True
36591fa93e5SMarkus Armbruster    member fs2: FeatureStruct2 optional=True
36691fa93e5SMarkus Armbruster    member fs3: FeatureStruct3 optional=True
36791fa93e5SMarkus Armbruster    member fs4: FeatureStruct4 optional=True
36891fa93e5SMarkus Armbruster    member cfs1: CondFeatureStruct1 optional=True
36991fa93e5SMarkus Armbruster    member cfs2: CondFeatureStruct2 optional=True
37091fa93e5SMarkus Armbruster    member cfs3: CondFeatureStruct3 optional=True
3713ad64edfSMarc-André Lureau    member cfs4: CondFeatureStruct4 optional=True
37291fa93e5SMarkus Armbrustercommand test-features0 q_obj_test-features0-arg -> FeatureStruct1
3732e2e0df2SPeter Krempa    gen=True success_response=True boxed=False oob=False preconfig=False
3742e2e0df2SPeter Krempacommand test-command-features1 None -> None
3752e2e0df2SPeter Krempa    gen=True success_response=True boxed=False oob=False preconfig=False
376f965e8feSMarkus Armbruster    feature deprecated
3772e2e0df2SPeter Krempacommand test-command-features3 None -> None
3782e2e0df2SPeter Krempa    gen=True success_response=True boxed=False oob=False preconfig=False
379a3c45b3eSMarkus Armbruster    feature unstable
3802e2e0df2SPeter Krempa    feature feature1
3812e2e0df2SPeter Krempa    feature feature2
3822e2e0df2SPeter Krempacommand test-command-cond-features1 None -> None
3832e2e0df2SPeter Krempa    gen=True success_response=True boxed=False oob=False preconfig=False
3842e2e0df2SPeter Krempa    feature feature1
3858a9f1e1dSMarc-André Lureau        if TEST_IF_FEATURE_1
3862e2e0df2SPeter Krempacommand test-command-cond-features2 None -> None
3872e2e0df2SPeter Krempa    gen=True success_response=True boxed=False oob=False preconfig=False
3882e2e0df2SPeter Krempa    feature feature1
3898a9f1e1dSMarc-André Lureau        if TEST_IF_FEATURE_1
3902e2e0df2SPeter Krempa    feature feature2
3918a9f1e1dSMarc-André Lureau        if TEST_IF_FEATURE_2
3922e2e0df2SPeter Krempacommand test-command-cond-features3 None -> None
3932e2e0df2SPeter Krempa    gen=True success_response=True boxed=False oob=False preconfig=False
3942e2e0df2SPeter Krempa    feature feature1
3959c629fa8SMarkus Armbruster        if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']}
396d4f4cae8SMarkus Armbrusterevent TEST_EVENT_FEATURES0 FeatureStruct1
397a291a38fSMarkus Armbruster    boxed=False
398d4f4cae8SMarkus Armbrusterevent TEST_EVENT_FEATURES1 None
399013b4efcSMarkus Armbruster    boxed=False
400f965e8feSMarkus Armbruster    feature deprecated
401a3c45b3eSMarkus Armbrusterevent TEST_EVENT_FEATURES2 None
402a3c45b3eSMarkus Armbruster    boxed=False
403a3c45b3eSMarkus Armbruster    feature unstable
4043e7fb581SMarkus Armbrustermodule include/sub-module.json
4053e7fb581SMarkus Armbrusterinclude sub-sub-module.json
4063e7fb581SMarkus Armbrusterobject SecondArrayRef
4073e7fb581SMarkus Armbruster    member s: StatusList optional=False
4083e7fb581SMarkus Armbrustermodule sub-sub-module.json
4093e7fb581SMarkus Armbrusterarray StatusList Status
4103e7fb581SMarkus Armbrusterenum Status
4113e7fb581SMarkus Armbruster    member good
4123e7fb581SMarkus Armbruster    member bad
4133e7fb581SMarkus Armbruster    member ugly
414