Message ID | 20180211093607.27351-17-armbru@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 02/11/2018 03:35 AM, Markus Armbruster wrote: > The generators' conversion to visitors (merge commit 9e72681d16) > changed the processing order of entities from source order to > alphabetical order. The next commit needs source order, so change it > back. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> > Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- Reviewed-by: Eric Blake <eblake@redhat.com>
Quoting Markus Armbruster (2018-02-11 03:35:54) > The generators' conversion to visitors (merge commit 9e72681d16) > changed the processing order of entities from source order to > alphabetical order. The next commit needs source order, so change it > back. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> > Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com> > --- > scripts/qapi/common.py | 6 +- > tests/qapi-schema/comments.out | 2 +- > tests/qapi-schema/doc-bad-section.out | 4 +- > tests/qapi-schema/doc-good.out | 32 ++-- > tests/qapi-schema/empty.out | 2 +- > tests/qapi-schema/event-case.out | 2 +- > tests/qapi-schema/ident-with-escape.out | 6 +- > tests/qapi-schema/include-relpath.out | 2 +- > tests/qapi-schema/include-repetition.out | 2 +- > tests/qapi-schema/include-simple.out | 2 +- > tests/qapi-schema/indented-expr.out | 2 +- > tests/qapi-schema/qapi-schema-test.out | 320 +++++++++++++++---------------- > 12 files changed, 192 insertions(+), 190 deletions(-) > > diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py > index 6d49709784..b531ab519f 100644 > --- a/scripts/qapi/common.py > +++ b/scripts/qapi/common.py > @@ -1475,6 +1475,7 @@ class QAPISchema(object): > parser = QAPISchemaParser(open(fname, 'r')) > exprs = check_exprs(parser.exprs) > self.docs = parser.docs > + self._entity_list = [] > self._entity_dict = {} > self._predefining = True > self._def_predefineds() > @@ -1486,6 +1487,7 @@ class QAPISchema(object): > # Only the predefined types are allowed to not have info > assert ent.info or self._predefining > assert ent.name not in self._entity_dict > + self._entity_list.append(ent) > self._entity_dict[ent.name] = ent > > def lookup_entity(self, name, typ=None): > @@ -1684,12 +1686,12 @@ class QAPISchema(object): > assert False > > def check(self): > - for (name, ent) in sorted(self._entity_dict.items()): > + for ent in self._entity_list: > ent.check(self) > > def visit(self, visitor): > visitor.visit_begin(self) > - for (name, entity) in sorted(self._entity_dict.items()): > + for entity in self._entity_list: > if visitor.visit_needed(entity): > entity.visit(visitor) > visitor.visit_end() > diff --git a/tests/qapi-schema/comments.out b/tests/qapi-schema/comments.out > index 17e652535c..0261ddf202 100644 > --- a/tests/qapi-schema/comments.out > +++ b/tests/qapi-schema/comments.out > @@ -1,4 +1,4 @@ > +object q_empty > enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] > prefix QTYPE > enum Status ['good', 'bad', 'ugly'] > -object q_empty > diff --git a/tests/qapi-schema/doc-bad-section.out b/tests/qapi-schema/doc-bad-section.out > index 089bde1381..23bf8c71ab 100644 > --- a/tests/qapi-schema/doc-bad-section.out > +++ b/tests/qapi-schema/doc-bad-section.out > @@ -1,7 +1,7 @@ > -enum Enum ['one', 'two'] > +object q_empty > enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] > prefix QTYPE > -object q_empty > +enum Enum ['one', 'two'] > doc symbol=Enum > body= > == Produces *invalid* texinfo > diff --git a/tests/qapi-schema/doc-good.out b/tests/qapi-schema/doc-good.out > index 1d2c250527..0c07301f07 100644 > --- a/tests/qapi-schema/doc-good.out > +++ b/tests/qapi-schema/doc-good.out > @@ -1,35 +1,35 @@ > +object q_empty > +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] > + prefix QTYPE > +enum Enum ['one', 'two'] > object Base > member base1: Enum optional=False > -enum Enum ['one', 'two'] > +object Variant1 > + member var1: str optional=False > +object Variant2 > object Object > base Base > tag base1 > case one: Variant1 > case two: Variant2 > -enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] > - prefix QTYPE > +object q_obj_Variant1-wrapper > + member data: Variant1 optional=False > +object q_obj_Variant2-wrapper > + member data: Variant2 optional=False > +enum SugaredUnionKind ['one', 'two'] > object SugaredUnion > member type: SugaredUnionKind optional=False > tag type > case one: q_obj_Variant1-wrapper > case two: q_obj_Variant2-wrapper > -enum SugaredUnionKind ['one', 'two'] > -object Variant1 > - member var1: str optional=False > -object Variant2 > -command cmd q_obj_cmd-arg -> Object > - gen=True success_response=True boxed=False > -command cmd-boxed Object -> None > - gen=True success_response=True boxed=True > -object q_empty > -object q_obj_Variant1-wrapper > - member data: Variant1 optional=False > -object q_obj_Variant2-wrapper > - member data: Variant2 optional=False > object q_obj_cmd-arg > member arg1: int optional=False > member arg2: str optional=True > member arg3: bool optional=False > +command cmd q_obj_cmd-arg -> Object > + gen=True success_response=True boxed=False > +command cmd-boxed Object -> None > + gen=True success_response=True boxed=True > doc freeform > body= > = Section > diff --git a/tests/qapi-schema/empty.out b/tests/qapi-schema/empty.out > index 40b886ddae..0ec234eec4 100644 > --- a/tests/qapi-schema/empty.out > +++ b/tests/qapi-schema/empty.out > @@ -1,3 +1,3 @@ > +object q_empty > enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] > prefix QTYPE > -object q_empty > diff --git a/tests/qapi-schema/event-case.out b/tests/qapi-schema/event-case.out > index 313c0fe7be..110571b793 100644 > --- a/tests/qapi-schema/event-case.out > +++ b/tests/qapi-schema/event-case.out > @@ -1,5 +1,5 @@ > +object q_empty > enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] > prefix QTYPE > event oops None > boxed=False > -object q_empty > diff --git a/tests/qapi-schema/ident-with-escape.out b/tests/qapi-schema/ident-with-escape.out > index b5637cb2e0..8336aa7629 100644 > --- a/tests/qapi-schema/ident-with-escape.out > +++ b/tests/qapi-schema/ident-with-escape.out > @@ -1,7 +1,7 @@ > +object q_empty > enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] > prefix QTYPE > -command fooA q_obj_fooA-arg -> None > - gen=True success_response=True boxed=False > -object q_empty > object q_obj_fooA-arg > member bar1: str optional=False > +command fooA q_obj_fooA-arg -> None > + gen=True success_response=True boxed=False > diff --git a/tests/qapi-schema/include-relpath.out b/tests/qapi-schema/include-relpath.out > index 17e652535c..0261ddf202 100644 > --- a/tests/qapi-schema/include-relpath.out > +++ b/tests/qapi-schema/include-relpath.out > @@ -1,4 +1,4 @@ > +object q_empty > enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] > prefix QTYPE > enum Status ['good', 'bad', 'ugly'] > -object q_empty > diff --git a/tests/qapi-schema/include-repetition.out b/tests/qapi-schema/include-repetition.out > index 17e652535c..0261ddf202 100644 > --- a/tests/qapi-schema/include-repetition.out > +++ b/tests/qapi-schema/include-repetition.out > @@ -1,4 +1,4 @@ > +object q_empty > enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] > prefix QTYPE > enum Status ['good', 'bad', 'ugly'] > -object q_empty > diff --git a/tests/qapi-schema/include-simple.out b/tests/qapi-schema/include-simple.out > index 17e652535c..0261ddf202 100644 > --- a/tests/qapi-schema/include-simple.out > +++ b/tests/qapi-schema/include-simple.out > @@ -1,4 +1,4 @@ > +object q_empty > enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] > prefix QTYPE > enum Status ['good', 'bad', 'ugly'] > -object q_empty > diff --git a/tests/qapi-schema/indented-expr.out b/tests/qapi-schema/indented-expr.out > index 586795f44d..34de8be426 100644 > --- a/tests/qapi-schema/indented-expr.out > +++ b/tests/qapi-schema/indented-expr.out > @@ -1,7 +1,7 @@ > +object q_empty > enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] > prefix QTYPE > command eins None -> None > gen=True success_response=True boxed=False > -object q_empty > command zwei None -> None > gen=True success_response=True boxed=False > diff --git a/tests/qapi-schema/qapi-schema-test.out b/tests/qapi-schema/qapi-schema-test.out > index 3b1e9082d3..50706b0136 100644 > --- a/tests/qapi-schema/qapi-schema-test.out > +++ b/tests/qapi-schema/qapi-schema-test.out > @@ -1,87 +1,129 @@ > -alternate AltEnumBool > - tag type > - case e: EnumOne > - case b: bool > -alternate AltEnumInt > - tag type > - case e: EnumOne > - case i: int > -alternate AltEnumNum > - tag type > - case e: EnumOne > - case n: number > -alternate AltNumEnum > - tag type > - case n: number > - case e: EnumOne > -alternate AltStrObj > - tag type > - case s: str > - case o: TestStruct > -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 q_empty > +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] > + prefix QTYPE > +object TestStruct > + member integer: int optional=False > + member boolean: bool optional=False > + member string: str optional=False > +object NestedEnumsOne > + member enum1: EnumOne optional=False > + member enum2: EnumOne optional=True > + member enum3: EnumOne optional=False > + member enum4: EnumOne optional=True > +enum MyEnum [] > object Empty1 > object Empty2 > base Empty1 > +command user_def_cmd0 Empty2 -> Empty2 > + gen=True success_response=True boxed=False > +enum QEnumTwo ['value1', 'value2'] > + prefix QENUM_TWO > +object UserDefOne > + base UserDefZero > + member string: str optional=False > + member enum1: EnumOne optional=True > enum EnumOne ['value1', 'value2', 'value3'] > -object EventStructOne > - member struct1: UserDefOne optional=False > +object UserDefZero > + member integer: int optional=False > +object UserDefTwoDictDict > + member userdef: UserDefOne optional=False > member string: str optional=False > - member enum2: EnumOne optional=True > +object UserDefTwoDict > + member string1: str optional=False > + member dict2: UserDefTwoDictDict optional=False > + member dict3: UserDefTwoDictDict optional=True > +object UserDefTwo > + member string0: str optional=False > + member dict1: UserDefTwoDict optional=False > 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', 'qnum', 'qstring', 'qdict', 'qlist', '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 e: EnumOne > - case i: int > - case n: null > 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 UserDefUnionBase > + base UserDefZero > + member string: str optional=False > + member enum1: EnumOne optional=False > +object q_obj_UserDefFlatUnion2-base > + member integer: int optional=True > + member string: str optional=False > + member enum1: QEnumTwo optional=False > object UserDefFlatUnion2 > base q_obj_UserDefFlatUnion2-base > tag enum1 > case value1: UserDefC > case value2: UserDefB > +object WrapAlternate > + member alt: UserDefAlternate optional=False > +alternate UserDefAlternate > + tag type > + case udfu: UserDefFlatUnion > + case e: EnumOne > + case i: int > + case n: null > +object UserDefC > + member string1: str optional=False > + member string2: str optional=False > +alternate AltEnumBool > + tag type > + case e: EnumOne > + case b: bool > +alternate AltEnumNum > + tag type > + case e: EnumOne > + case n: number > +alternate AltNumEnum > + tag type > + case n: number > + case e: EnumOne > +alternate AltEnumInt > + tag type > + case e: EnumOne > + case i: int > +alternate AltStrObj > + tag type > + case s: str > + case o: TestStruct > +object q_obj_intList-wrapper > + member data: intList optional=False > +object q_obj_int8List-wrapper > + member data: int8List 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_uint8List-wrapper > + member data: uint8List 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_numberList-wrapper > + member data: numberList optional=False > +object q_obj_boolList-wrapper > + member data: boolList optional=False > +object q_obj_strList-wrapper > + member data: strList optional=False > +object q_obj_sizeList-wrapper > + member data: sizeList optional=False > +object q_obj_anyList-wrapper > + member data: anyList optional=False > +enum UserDefNativeListUnionKind ['integer', 's8', 's16', 's32', 's64', 'u8', 'u16', 'u32', 'u64', 'number', 'boolean', 'string', 'sizes', 'any'] > object UserDefNativeListUnion > member type: UserDefNativeListUnionKind optional=False > tag type > @@ -99,133 +141,91 @@ object UserDefNativeListUnion > 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 > +command user_def_cmd None -> None > + gen=True success_response=True boxed=False > +object q_obj_user_def_cmd1-arg > + member ud1a: UserDefOne optional=False > +command user_def_cmd1 q_obj_user_def_cmd1-arg -> None > + gen=True success_response=True boxed=False > +object q_obj_user_def_cmd2-arg > + member ud1a: UserDefOne optional=False > + member ud1b: UserDefOne optional=True > +command user_def_cmd2 q_obj_user_def_cmd2-arg -> UserDefTwo > + gen=True success_response=True boxed=False > +object q_obj_guest-get-time-arg > + member a: int optional=False > + member b: int optional=True > +command guest-get-time q_obj_guest-get-time-arg -> int > + gen=True success_response=True boxed=False > +object q_obj_guest-sync-arg > + member arg: any optional=False > +command guest-sync q_obj_guest-sync-arg -> any > + 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 > 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 > +object EventStructOne > + member struct1: 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 > + member enum2: EnumOne optional=True > +event EVENT_A None > + boxed=False > +event EVENT_B None > + boxed=False > +object q_obj_EVENT_C-arg > + member a: int optional=True > + member b: UserDefOne optional=True > + member c: str optional=False > +event EVENT_C q_obj_EVENT_C-arg > + boxed=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 > +event EVENT_D q_obj_EVENT_D-arg > boxed=False > -alternate __org.qemu_x-Alt > - tag type > - case __org.qemu_x-branch: str > - case b: __org.qemu_x-Base > +event EVENT_E UserDefZero > + boxed=True > +event EVENT_F UserDefAlternate > + boxed=True > +enum __org.qemu_x-Enum ['__org.qemu_x-value'] > 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 q_obj_str-wrapper > + member data: str optional=False > +enum __org.qemu_x-Union1Kind ['__org.qemu_x-branch'] > 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-Struct2 > + member array: __org.qemu_x-Union1List optional=False > 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 > +alternate __org.qemu_x-Alt > + tag type > + case __org.qemu_x-branch: str > + case b: __org.qemu_x-Base > +event __ORG.QEMU_X-EVENT __org.qemu_x-Struct > + boxed=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 > +command __org.qemu_x-command q_obj___org.qemu_x-command-arg -> __org.qemu_x-Union1 > gen=True success_response=True boxed=False > -- > 2.13.6 >
diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py index 6d49709784..b531ab519f 100644 --- a/scripts/qapi/common.py +++ b/scripts/qapi/common.py @@ -1475,6 +1475,7 @@ class QAPISchema(object): parser = QAPISchemaParser(open(fname, 'r')) exprs = check_exprs(parser.exprs) self.docs = parser.docs + self._entity_list = [] self._entity_dict = {} self._predefining = True self._def_predefineds() @@ -1486,6 +1487,7 @@ class QAPISchema(object): # Only the predefined types are allowed to not have info assert ent.info or self._predefining assert ent.name not in self._entity_dict + self._entity_list.append(ent) self._entity_dict[ent.name] = ent def lookup_entity(self, name, typ=None): @@ -1684,12 +1686,12 @@ class QAPISchema(object): assert False def check(self): - for (name, ent) in sorted(self._entity_dict.items()): + for ent in self._entity_list: ent.check(self) def visit(self, visitor): visitor.visit_begin(self) - for (name, entity) in sorted(self._entity_dict.items()): + for entity in self._entity_list: if visitor.visit_needed(entity): entity.visit(visitor) visitor.visit_end() diff --git a/tests/qapi-schema/comments.out b/tests/qapi-schema/comments.out index 17e652535c..0261ddf202 100644 --- a/tests/qapi-schema/comments.out +++ b/tests/qapi-schema/comments.out @@ -1,4 +1,4 @@ +object q_empty enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE enum Status ['good', 'bad', 'ugly'] -object q_empty diff --git a/tests/qapi-schema/doc-bad-section.out b/tests/qapi-schema/doc-bad-section.out index 089bde1381..23bf8c71ab 100644 --- a/tests/qapi-schema/doc-bad-section.out +++ b/tests/qapi-schema/doc-bad-section.out @@ -1,7 +1,7 @@ -enum Enum ['one', 'two'] +object q_empty enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE -object q_empty +enum Enum ['one', 'two'] doc symbol=Enum body= == Produces *invalid* texinfo diff --git a/tests/qapi-schema/doc-good.out b/tests/qapi-schema/doc-good.out index 1d2c250527..0c07301f07 100644 --- a/tests/qapi-schema/doc-good.out +++ b/tests/qapi-schema/doc-good.out @@ -1,35 +1,35 @@ +object q_empty +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] + prefix QTYPE +enum Enum ['one', 'two'] object Base member base1: Enum optional=False -enum Enum ['one', 'two'] +object Variant1 + member var1: str optional=False +object Variant2 object Object base Base tag base1 case one: Variant1 case two: Variant2 -enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] - prefix QTYPE +object q_obj_Variant1-wrapper + member data: Variant1 optional=False +object q_obj_Variant2-wrapper + member data: Variant2 optional=False +enum SugaredUnionKind ['one', 'two'] object SugaredUnion member type: SugaredUnionKind optional=False tag type case one: q_obj_Variant1-wrapper case two: q_obj_Variant2-wrapper -enum SugaredUnionKind ['one', 'two'] -object Variant1 - member var1: str optional=False -object Variant2 -command cmd q_obj_cmd-arg -> Object - gen=True success_response=True boxed=False -command cmd-boxed Object -> None - gen=True success_response=True boxed=True -object q_empty -object q_obj_Variant1-wrapper - member data: Variant1 optional=False -object q_obj_Variant2-wrapper - member data: Variant2 optional=False object q_obj_cmd-arg member arg1: int optional=False member arg2: str optional=True member arg3: bool optional=False +command cmd q_obj_cmd-arg -> Object + gen=True success_response=True boxed=False +command cmd-boxed Object -> None + gen=True success_response=True boxed=True doc freeform body= = Section diff --git a/tests/qapi-schema/empty.out b/tests/qapi-schema/empty.out index 40b886ddae..0ec234eec4 100644 --- a/tests/qapi-schema/empty.out +++ b/tests/qapi-schema/empty.out @@ -1,3 +1,3 @@ +object q_empty enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE -object q_empty diff --git a/tests/qapi-schema/event-case.out b/tests/qapi-schema/event-case.out index 313c0fe7be..110571b793 100644 --- a/tests/qapi-schema/event-case.out +++ b/tests/qapi-schema/event-case.out @@ -1,5 +1,5 @@ +object q_empty enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE event oops None boxed=False -object q_empty diff --git a/tests/qapi-schema/ident-with-escape.out b/tests/qapi-schema/ident-with-escape.out index b5637cb2e0..8336aa7629 100644 --- a/tests/qapi-schema/ident-with-escape.out +++ b/tests/qapi-schema/ident-with-escape.out @@ -1,7 +1,7 @@ +object q_empty enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE -command fooA q_obj_fooA-arg -> None - gen=True success_response=True boxed=False -object q_empty object q_obj_fooA-arg member bar1: str optional=False +command fooA q_obj_fooA-arg -> None + gen=True success_response=True boxed=False diff --git a/tests/qapi-schema/include-relpath.out b/tests/qapi-schema/include-relpath.out index 17e652535c..0261ddf202 100644 --- a/tests/qapi-schema/include-relpath.out +++ b/tests/qapi-schema/include-relpath.out @@ -1,4 +1,4 @@ +object q_empty enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE enum Status ['good', 'bad', 'ugly'] -object q_empty diff --git a/tests/qapi-schema/include-repetition.out b/tests/qapi-schema/include-repetition.out index 17e652535c..0261ddf202 100644 --- a/tests/qapi-schema/include-repetition.out +++ b/tests/qapi-schema/include-repetition.out @@ -1,4 +1,4 @@ +object q_empty enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE enum Status ['good', 'bad', 'ugly'] -object q_empty diff --git a/tests/qapi-schema/include-simple.out b/tests/qapi-schema/include-simple.out index 17e652535c..0261ddf202 100644 --- a/tests/qapi-schema/include-simple.out +++ b/tests/qapi-schema/include-simple.out @@ -1,4 +1,4 @@ +object q_empty enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE enum Status ['good', 'bad', 'ugly'] -object q_empty diff --git a/tests/qapi-schema/indented-expr.out b/tests/qapi-schema/indented-expr.out index 586795f44d..34de8be426 100644 --- a/tests/qapi-schema/indented-expr.out +++ b/tests/qapi-schema/indented-expr.out @@ -1,7 +1,7 @@ +object q_empty enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] prefix QTYPE command eins None -> None gen=True success_response=True boxed=False -object q_empty command zwei None -> None gen=True success_response=True boxed=False diff --git a/tests/qapi-schema/qapi-schema-test.out b/tests/qapi-schema/qapi-schema-test.out index 3b1e9082d3..50706b0136 100644 --- a/tests/qapi-schema/qapi-schema-test.out +++ b/tests/qapi-schema/qapi-schema-test.out @@ -1,87 +1,129 @@ -alternate AltEnumBool - tag type - case e: EnumOne - case b: bool -alternate AltEnumInt - tag type - case e: EnumOne - case i: int -alternate AltEnumNum - tag type - case e: EnumOne - case n: number -alternate AltNumEnum - tag type - case n: number - case e: EnumOne -alternate AltStrObj - tag type - case s: str - case o: TestStruct -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 q_empty +enum QType ['none', 'qnull', 'qnum', 'qstring', 'qdict', 'qlist', 'qbool'] + prefix QTYPE +object TestStruct + member integer: int optional=False + member boolean: bool optional=False + member string: str optional=False +object NestedEnumsOne + member enum1: EnumOne optional=False + member enum2: EnumOne optional=True + member enum3: EnumOne optional=False + member enum4: EnumOne optional=True +enum MyEnum [] object Empty1 object Empty2 base Empty1 +command user_def_cmd0 Empty2 -> Empty2 + gen=True success_response=True boxed=False +enum QEnumTwo ['value1', 'value2'] + prefix QENUM_TWO +object UserDefOne + base UserDefZero + member string: str optional=False + member enum1: EnumOne optional=True enum EnumOne ['value1', 'value2', 'value3'] -object EventStructOne - member struct1: UserDefOne optional=False +object UserDefZero + member integer: int optional=False +object UserDefTwoDictDict + member userdef: UserDefOne optional=False member string: str optional=False - member enum2: EnumOne optional=True +object UserDefTwoDict + member string1: str optional=False + member dict2: UserDefTwoDictDict optional=False + member dict3: UserDefTwoDictDict optional=True +object UserDefTwo + member string0: str optional=False + member dict1: UserDefTwoDict optional=False 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', 'qnum', 'qstring', 'qdict', 'qlist', '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 e: EnumOne - case i: int - case n: null 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 UserDefUnionBase + base UserDefZero + member string: str optional=False + member enum1: EnumOne optional=False +object q_obj_UserDefFlatUnion2-base + member integer: int optional=True + member string: str optional=False + member enum1: QEnumTwo optional=False object UserDefFlatUnion2 base q_obj_UserDefFlatUnion2-base tag enum1 case value1: UserDefC case value2: UserDefB +object WrapAlternate + member alt: UserDefAlternate optional=False +alternate UserDefAlternate + tag type + case udfu: UserDefFlatUnion + case e: EnumOne + case i: int + case n: null +object UserDefC + member string1: str optional=False + member string2: str optional=False +alternate AltEnumBool + tag type + case e: EnumOne + case b: bool +alternate AltEnumNum + tag type + case e: EnumOne + case n: number +alternate AltNumEnum + tag type + case n: number + case e: EnumOne +alternate AltEnumInt + tag type + case e: EnumOne + case i: int +alternate AltStrObj + tag type + case s: str + case o: TestStruct +object q_obj_intList-wrapper + member data: intList optional=False +object q_obj_int8List-wrapper + member data: int8List 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_uint8List-wrapper + member data: uint8List 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_numberList-wrapper + member data: numberList optional=False +object q_obj_boolList-wrapper + member data: boolList optional=False +object q_obj_strList-wrapper + member data: strList optional=False +object q_obj_sizeList-wrapper + member data: sizeList optional=False +object q_obj_anyList-wrapper + member data: anyList optional=False +enum UserDefNativeListUnionKind ['integer', 's8', 's16', 's32', 's64', 'u8', 'u16', 'u32', 'u64', 'number', 'boolean', 'string', 'sizes', 'any'] object UserDefNativeListUnion member type: UserDefNativeListUnionKind optional=False tag type @@ -99,133 +141,91 @@ object UserDefNativeListUnion 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 +command user_def_cmd None -> None + gen=True success_response=True boxed=False +object q_obj_user_def_cmd1-arg + member ud1a: UserDefOne optional=False +command user_def_cmd1 q_obj_user_def_cmd1-arg -> None + gen=True success_response=True boxed=False +object q_obj_user_def_cmd2-arg + member ud1a: UserDefOne optional=False + member ud1b: UserDefOne optional=True +command user_def_cmd2 q_obj_user_def_cmd2-arg -> UserDefTwo + gen=True success_response=True boxed=False +object q_obj_guest-get-time-arg + member a: int optional=False + member b: int optional=True +command guest-get-time q_obj_guest-get-time-arg -> int + gen=True success_response=True boxed=False +object q_obj_guest-sync-arg + member arg: any optional=False +command guest-sync q_obj_guest-sync-arg -> any + 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 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 +object EventStructOne + member struct1: 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 + member enum2: EnumOne optional=True +event EVENT_A None + boxed=False +event EVENT_B None + boxed=False +object q_obj_EVENT_C-arg + member a: int optional=True + member b: UserDefOne optional=True + member c: str optional=False +event EVENT_C q_obj_EVENT_C-arg + boxed=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 +event EVENT_D q_obj_EVENT_D-arg boxed=False -alternate __org.qemu_x-Alt - tag type - case __org.qemu_x-branch: str - case b: __org.qemu_x-Base +event EVENT_E UserDefZero + boxed=True +event EVENT_F UserDefAlternate + boxed=True +enum __org.qemu_x-Enum ['__org.qemu_x-value'] 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 q_obj_str-wrapper + member data: str optional=False +enum __org.qemu_x-Union1Kind ['__org.qemu_x-branch'] 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-Struct2 + member array: __org.qemu_x-Union1List optional=False 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 +alternate __org.qemu_x-Alt + tag type + case __org.qemu_x-branch: str + case b: __org.qemu_x-Base +event __ORG.QEMU_X-EVENT __org.qemu_x-Struct + boxed=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 +command __org.qemu_x-command q_obj___org.qemu_x-command-arg -> __org.qemu_x-Union1 gen=True success_response=True boxed=False