Eric Blake <ebl...@redhat.com> writes:

> On 11/27/2015 02:03 AM, Markus Armbruster wrote:
>> Eric Blake <ebl...@redhat.com> writes:
>> 
>>> We document that members of enums and objects should be
>>> 'lower-case', although we were not enforcing it.  We have to
>>> whitelist a few pre-existing entities that violate the norms.
>>> Add three new tests to expose the new error message, each of
>>> which first uses the whitelisted name 'UuidInfo' to prove the
>>> whitelist works, then triggers the failure.
>> 
>
>>> +    'X86CPURegister32',
>> 
>> Because of all enum members.
>> 
>> *Not* visible in QMP, thus fixable.  Fix or TODO comment, please.
>
> Not visible directly in QMP, but unfortunately visible in QOM.  See
> target-i386/cpu.c, where x86_reg_info_32[] references the all-caps
> names, and where x86_cpu_get_feature_words() calls
> visit_type_X86CPUFeatureWordInfoList() and thereby exposes
> X86CPURegister32 to the caller through 'qom-get'.
>
> I can certainly add comments, though.

Hmm, this shows my use of "qapi-introspect.py -u" to find the externally
visible part of QAPI is flawed.

To make it work, we'd need QOM introspection, which we might want
anyway.

Additionally, a way to output just JSON rather than JSON encoded in C
would be nice.

>>> +++ b/tests/qapi-schema/args-member-case.json
>>> @@ -0,0 +1,3 @@
>>> +# Member names should be 'lower-case' unless the struct/command is
>>> whitelisted
>>> +{ 'command': 'UuidInfo', 'data': { 'Arg': 'int' } }
>>> +{ 'command': 'Foo', 'data': { 'Arg': 'int' } }
>> 
>> We normally put positive tests in qapi-schema-test.json, but I think
>> keeping this one here makes more sense.
>
> The idea of a positive test prior to a negative test, in order to prove
> that the .err file refers only to the line number of the negative test,
> was copied from returns-whitelist.json.  But maybe I can reuse the
> 'no-way-this-will-get-whitelisted' name from that test :)

Yes, please.

Reply via email to