Re: [PATCH v2 16/16] rust/tests: QAPI integration tests
Marc-André Lureau <[email protected]> Wed, 3 Jun 2026 12:36:53 +0400
| Newsgroups | org.nongnu.qemu-rust,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <CAJ+F1CLTM64zfr4e6b9X1zAqs_+=rRZ27KCEQLG_Fxj7ybQWaQ@mail.gmail.com> |
Hi On Thu, Jan 8, 2026 at 5:13 PM Paolo Bonzini <[email protected]> wrote: > > From: Marc-André Lureau <[email protected]> > > Signed-off-by: Marc-André Lureau <[email protected]> > Signed-off-by: Paolo Bonzini <[email protected]> > --- > rust/tests/meson.build | 21 +- > rust/tests/tests/integration.rs | 2 + > rust/tests/tests/qapi.rs | 444 ++++++++++++++++++++++++++++++++ > 3 files changed, 464 insertions(+), 3 deletions(-) > create mode 100644 rust/tests/tests/integration.rs > create mode 100644 rust/tests/tests/qapi.rs > ... > + let qsa = to_qobject(&expected).unwrap(); > + let json = qsa.to_json(); > + assert_eq!( > + json, > + "{\"port\": \"port-val\", \"keep_alive_idle\": 42, \"host\": \"host-val\"}" > + ); We need to fix the field names to produce the correct wire format: index 41ed83c381d..3e0bd237d8c 100644 --- a/scripts/qapi/rs_types.py +++ b/scripts/qapi/rs_types.py @@ -163,15 +163,21 @@ def gen_struct_members(members: List[QAPISchemaObjectTypeMember], typ = 'Box<%s>' % typ if memb.optional: typ = 'Option<%s>' % typ + field_name = rs_name(camel_to_lower(memb.name)) + serde_rename = '' + if field_name.removeprefix('r#') != memb.name: + serde_rename = '#[serde(rename = "%s")]' % memb.name ret.append(mcgen(''' %(cfg)s''', ''' %(skip_if)s''', ''' +%(serde_rename)s''', ''' pub %(rs_name)s: %(rs_type)s, ''', cfg=memb.ifcond.rsgen(), skip_if=SERDE_SKIP_NONE if memb.optional else '', + serde_rename=serde_rename, rs_type=typ, - rs_name=rs_name(camel_to_lower(memb.name)))) + rs_name=field_name))