ff55d72eaf
Our type inheritance for both 'struct' and for flat 'union' merges key/value pairs from the base class with those from the type in question. Although the C code currently boxes things so that there is a distinction between which member is referred to, the QMP wire format does not allow passing a key more than once in a single object. Besides, if we ever change the generated C code to not be quite so boxy, we'd want to avoid duplicate member names there, too. Fix a testsuite entry added in an earlier patch, as well as adding a couple more tests to ensure we have appropriate coverage. Ensure that collisions are detected, regardless of whether there is a difference in opinion on whether the member name is optional. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
15 lines
434 B
JSON
15 lines
434 B
JSON
# we check for no duplicate keys between branches and base
|
|
{ 'enum': 'TestEnum',
|
|
'data': [ 'value1', 'value2' ] }
|
|
{ 'struct': 'Base',
|
|
'data': { 'enum1': 'TestEnum', '*name': 'str' } }
|
|
{ 'struct': 'Branch1',
|
|
'data': { 'name': 'str' } }
|
|
{ 'struct': 'Branch2',
|
|
'data': { 'value': 'int' } }
|
|
{ 'union': 'TestUnion',
|
|
'base': 'Base',
|
|
'discriminator': 'enum1',
|
|
'data': { 'value1': 'Branch1',
|
|
'value2': 'Branch2' } }
|