qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

tests/qapi-schema: Restore test case for flat union base bug

Test case added in commit 2fc0043, and messed up in commit 5223070.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>

+7 -6
+3 -2
tests/qapi-schema/qapi-schema-test.json
··· 31 31 'data': { 'boolean': 'bool' } } 32 32 33 33 { 'struct': 'UserDefB', 34 - 'data': { 'integer': 'int' } } 34 + 'data': { 'intb': 'int' } } 35 35 36 36 { 'union': 'UserDefFlatUnion', 37 37 'base': 'UserDefUnionBase', # intentional forward reference ··· 40 40 'value2' : 'UserDefB', 41 41 'value3' : 'UserDefB' } } 42 42 # FIXME generated struct UserDefFlatUnion has members for direct base 43 - # UserDefOne, but lacks members for indirect base UserDefZero 43 + # UserDefUnionBase, but lacks members for indirect base UserDefZero 44 44 45 45 { 'struct': 'UserDefUnionBase', 46 + 'base': 'UserDefZero', 46 47 'data': { 'string': 'str', 'enum1': 'EnumOne' } } 47 48 48 49 # this variant of UserDefFlatUnion defaults to a union that uses fields with
+4 -4
tests/qapi-schema/qapi-schema-test.out
··· 6 6 OrderedDict([('struct', 'UserDefTwoDict'), ('data', OrderedDict([('string1', 'str'), ('dict2', 'UserDefTwoDictDict'), ('*dict3', 'UserDefTwoDictDict')]))]), 7 7 OrderedDict([('struct', 'UserDefTwo'), ('data', OrderedDict([('string0', 'str'), ('dict1', 'UserDefTwoDict')]))]), 8 8 OrderedDict([('struct', 'UserDefA'), ('data', OrderedDict([('boolean', 'bool')]))]), 9 - OrderedDict([('struct', 'UserDefB'), ('data', OrderedDict([('integer', 'int')]))]), 9 + OrderedDict([('struct', 'UserDefB'), ('data', OrderedDict([('intb', 'int')]))]), 10 10 OrderedDict([('union', 'UserDefFlatUnion'), ('base', 'UserDefUnionBase'), ('discriminator', 'enum1'), ('data', OrderedDict([('value1', 'UserDefA'), ('value2', 'UserDefB'), ('value3', 'UserDefB')]))]), 11 - OrderedDict([('struct', 'UserDefUnionBase'), ('data', OrderedDict([('string', 'str'), ('enum1', 'EnumOne')]))]), 11 + OrderedDict([('struct', 'UserDefUnionBase'), ('base', 'UserDefZero'), ('data', OrderedDict([('string', 'str'), ('enum1', 'EnumOne')]))]), 12 12 OrderedDict([('union', 'UserDefFlatUnion2'), ('base', 'UserDefUnionBase'), ('discriminator', 'enum1'), ('data', OrderedDict([('value1', 'UserDefC'), ('value2', 'UserDefB'), ('value3', 'UserDefA')]))]), 13 13 OrderedDict([('alternate', 'UserDefAlternate'), ('data', OrderedDict([('uda', 'UserDefA'), ('s', 'str'), ('i', 'int')]))]), 14 14 OrderedDict([('struct', 'UserDefC'), ('data', OrderedDict([('string1', 'str'), ('string2', 'str')]))]), ··· 45 45 OrderedDict([('struct', 'UserDefTwoDict'), ('data', OrderedDict([('string1', 'str'), ('dict2', 'UserDefTwoDictDict'), ('*dict3', 'UserDefTwoDictDict')]))]), 46 46 OrderedDict([('struct', 'UserDefTwo'), ('data', OrderedDict([('string0', 'str'), ('dict1', 'UserDefTwoDict')]))]), 47 47 OrderedDict([('struct', 'UserDefA'), ('data', OrderedDict([('boolean', 'bool')]))]), 48 - OrderedDict([('struct', 'UserDefB'), ('data', OrderedDict([('integer', 'int')]))]), 49 - OrderedDict([('struct', 'UserDefUnionBase'), ('data', OrderedDict([('string', 'str'), ('enum1', 'EnumOne')]))]), 48 + OrderedDict([('struct', 'UserDefB'), ('data', OrderedDict([('intb', 'int')]))]), 49 + OrderedDict([('struct', 'UserDefUnionBase'), ('base', 'UserDefZero'), ('data', OrderedDict([('string', 'str'), ('enum1', 'EnumOne')]))]), 50 50 OrderedDict([('struct', 'UserDefC'), ('data', OrderedDict([('string1', 'str'), ('string2', 'str')]))]), 51 51 OrderedDict([('struct', 'UserDefOptions'), ('data', OrderedDict([('*i64', ['int']), ('*u64', ['uint64']), ('*u16', ['uint16']), ('*i64x', 'int'), ('*u64x', 'uint64')]))]), 52 52 OrderedDict([('struct', 'EventStructOne'), ('data', OrderedDict([('struct1', 'UserDefOne'), ('string', 'str'), ('*enum2', 'EnumOne')]))]),