On 12/02/2015 06:41 AM, Eric Blake wrote: > On 12/02/2015 04:51 AM, Markus Armbruster wrote: >> This is the fixup I mentioned in the v13 thread. The "Unreachable and >> not implemented" hunk should probably be its own patch. > > In fact, that hunk... > >> >> diff --git a/scripts/qapi.py b/scripts/qapi.py >> index 6d38d7c..870e476 100644 >> --- a/scripts/qapi.py >> +++ b/scripts/qapi.py > >> @@ -1073,7 +1071,8 @@ class QAPISchemaMember(object): >> return '(parameter of %s)' % owner[:-4] >> else: >> assert owner.endswith('-wrapper') >> - return '(branch of %s)' % owner[:-8] >> + # Unreachable and not implemented >> + assert False >> if owner.endswith('Kind'): >> # See QAPISchema._make_implicit_enum_type() >> return '(branch of %s)' % owner[:-4] > > ...should probably just be squashed directly into commit 8f3a05b on your > current qapi-next branch, since it hasn't landed upstream yet. > > Your fixup looks sane, and eliminates the need for 12/15. So I'm fine > if you'd like to make that change when updating qapi-next. > Reviewed-by: Eric Blake <ebl...@redhat.com>
Scratch that. With your patch, the positive tests no longer work in isolation. You were getting lucky that things sorted such that 'Foo' was checked for correctness prior to 'UuidInfo'; but if you comment out the 'Foo' declaration, or rename from 'Foo' to something else that hashes after 'UuidInfo', then args-member-case and union-branch-case start reporting failures about UuidInfo (and only enum-member-case honors the whitelist). That's because your change to qapi.py would require the whitelist to contain ':obj-UuidInfo-args' and 'UuidInfoKind', respectively (with my approach of info['name'], the whitelist containing 'UuidInfo' was sufficient). Maybe we need to modify qapi.py as follows: diff --git i/scripts/qapi.py w/scripts/qapi.py index 04c4c8d..1325da1 100644 --- i/scripts/qapi.py +++ w/scripts/qapi.py @@ -71,6 +71,10 @@ case_whitelist = [ 'QapiErrorClass', # all members, visible through errors 'UuidInfo', # UUID, visible through query-uuid 'X86CPURegister32', # all members, visible indirectly through qom-get + + # For use in the testsuite + ':obj-x-UuidInfo-arg', # args-member-case + 'x-UuidInfoList', # union-branch-case ] enum_types = [] index 1bc823a..193eb66 100644 --- i/tests/qapi-schema/args-member-case.json +++ w/tests/qapi-schema/args-member-case.json @@ -1,3 +1,3 @@ # Member names should be 'lower-case' unless the struct/command is whitelisted -{ 'command': 'UuidInfo', 'data': { 'Arg': 'int' } } +{ 'command': 'x-UuidInfo', 'data': { 'Arg': 'int' } } { 'command': 'Foo', 'data': { 'Arg': 'int' } } index a5951f1..4f0988a 100644 --- i/tests/qapi-schema/union-branch-case.json +++ w/tests/qapi-schema/union-branch-case.json @@ -1,3 +1,3 @@ # Branch names should be 'lower-case' unless the union is whitelisted -{ 'union': 'UuidInfo', 'data': { 'Branch': 'int' } } +{ 'union': 'x-UuidInfo', 'data': { 'Branch': 'int' } } { 'union': 'Foo', 'data': { 'Branch': 'int' } } -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature