# *-*- Mode: Python -*-*
# vim: filetype=python

# This file is a stress test of supported qapi constructs that must
# parse and compile correctly.

# Whitelists to permit QAPI rule violations
{ 'pragma': {
    # Types whose member names may use '_'
    'member-name-exceptions': [
        'UserDefA'
    ],
    # Commands allowed to return a non-dictionary:
    'command-returns-exceptions': [
        'guest-get-time',
        'guest-sync' ] } }

{ 'struct': 'TestStruct',
  'data': { 'integer': {'type': 'int'}, 'boolean': 'bool', 'string': 'str' } }

# for testing enums
{ 'struct': 'NestedEnumsOne',
  'data': { 'enum1': 'EnumOne',   # Intentional forward reference
            '*enum2': 'EnumOne', 'enum3': 'EnumOne', '*enum4': 'EnumOne' } }

# An empty enum, although unusual, is currently acceptable
{ 'enum': 'MyEnum', 'data': [ ] }

# Likewise for an empty struct, including an empty base
{ 'struct': 'Empty1', 'data': { } }
{ 'struct': 'Empty2', 'base': 'Empty1', 'data': { } }

# Likewise for an empty flat union
{ 'union': 'Union',
  'base': { 'type': 'EnumOne' }, 'discriminator': 'type',
  'data': { } }

{ 'command': 'user-def-cmd0', 'data': 'Empty2', 'returns': 'Empty2' }

# for testing override of default naming heuristic
{ 'enum': 'QEnumTwo',
  'prefix': 'QENUM_TWO',
  'data': [ 'value1', 'value2' ] }

# for testing nested structs
{ 'struct': 'UserDefOne',
  'base': 'UserDefZero',        # intentional forward reference
  'data': { 'string': 'str',
            '*enum1': 'EnumOne' } }   # intentional forward reference

{ 'enum': 'EnumOne',
  'data': [ 'value1', 'value2', 'value3', 'value4' ] }

{ 'struct': 'UserDefZero',
  'data': { 'integer': 'int' } }

{ 'struct': 'UserDefTwoDictDict',
  'data': { 'userdef': 'UserDefOne', 'string': 'str' } }

{ 'struct': 'UserDefTwoDict',
  'data': { 'string1': 'str',
            'dict2': 'UserDefTwoDictDict',
            '*dict3': 'UserDefTwoDictDict' } }

{ 'struct': 'UserDefTwo',
  'data': { 'string0': 'str',
            'dict1': 'UserDefTwoDict' } }

{ 'struct': 'UserDefThree',
  'data': { 'string0': 'str' } }

# dummy struct to force generation of array types not otherwise mentioned
{ 'struct': 'ForceArrays',
  'data': { 'unused1':['UserDefOne'], 'unused2':['UserDefTwo'],
            'unused3':['TestStruct'] } }

# for testing unions
# Among other things, test that a name collision between branches does
# not cause any problems (since only one branch can be in use at a time),
# by intentionally using two branches that both have a C member 'a_b'
{ 'struct': 'UserDefA',
  'data': { 'boolean': 'bool', '*a_b': 'int' } }

{ 'struct': 'UserDefB',
  'data': { 'intb': 'int', '*a-b': 'bool' } }

{ 'union': 'UserDefFlatUnion',
  'base': 'UserDefUnionBase',   # intentional forward reference
  'discriminator': 'enum1',
  'data': { 'value1' : {'type': 'UserDefA'},
            'value2' : 'UserDefB',
            'value3' : 'UserDefB'
            # 'value4' defaults to empty
  } }

{ 'struct': 'UserDefUnionBase',
  'base': 'UserDefZero',
  'data': { 'string': 'str', 'enum1': 'EnumOne' } }

# this variant of UserDefFlatUnion defaults to a union that uses members with
# allocated types to test corner cases in the cleanup/dealloc visitor
{ 'union': 'UserDefFlatUnion2',
  'base': { '*integer': 'int', 'string': 'str', 'enum1': 'QEnumTwo' },
  'discriminator': 'enum1',
  'data': { 'value1' : 'UserDefC', # intentional forward reference
            'value2' : 'UserDefB' } }

{ 'struct': 'WrapAlternate',
  'data': { 'alt': 'UserDefAlternate' } }
{ 'alternate': 'UserDefAlternate',
  'data': { 'udfu': {'type': 'UserDefFlatUnion'}, 'e': 'EnumOne', 'i': 'int',
            'n': 'null' } }

{ 'struct': 'UserDefC',
  'data': { 'string1': 'str', 'string2': 'str' } }

# for testing use of 'number' within alternates
{ 'alternate': 'AltEnumBool', 'data': { 'e': 'EnumOne', 'b': 'bool' } }
{ 'alternate': 'AltEnumNum', 'data': { 'e': 'EnumOne', 'n': 'number' } }
{ 'alternate': 'AltNumEnum', 'data': { 'n': 'number', 'e': 'EnumOne' } }
{ 'alternate': 'AltEnumInt', 'data': { 'e': 'EnumOne', 'i': 'int' } }

# for testing use of 'str' within alternates
{ 'alternate': 'AltStrObj', 'data': { 's': 'str', 'o': 'TestStruct' } }

# for testing lists
{ 'union': 'UserDefListUnion',
  'data': { 'integer': ['int'],
            's8': ['int8'],
            's16': ['int16'],
            's32': ['int32'],
            's64': ['int64'],
            'u8': ['uint8'],
            'u16': ['uint16'],
            'u32': ['uint32'],
            'u64': ['uint64'],
            'number': ['number'],
            'boolean': ['bool'],
            'string': ['str'],
            'sizes': ['size'],
            'any': ['any'],
            'user': ['Status'] } } # intentional forward ref. to sub-module

# for testing sub-modules
{ 'include': 'include/sub-module.json' }

# testing commands
{ 'command': 'user-def-cmd', 'data': {} }
{ 'command': 'user-def-cmd1', 'data': {'ud1a': 'UserDefOne'} }
{ 'command': 'user-def-cmd2',
  'data': {'ud1a': {'type': 'UserDefOne'}, '*ud1b': 'UserDefOne'},
  'returns': 'UserDefTwo' }

{ 'command': 'cmd-success-response', 'data': {}, 'success-response': false }
{ 'command': 'coroutine-cmd', 'data': {}, 'coroutine': true }

# Returning a non-dictionary requires a name from the whitelist
{ 'command': 'guest-get-time', 'data': {'a': 'int', '*b': 'int' },
  'returns': 'int' }
{ 'command': 'guest-sync', 'data': { 'arg': 'any' }, 'returns': 'any' }
{ 'command': 'boxed-struct', 'boxed': true, 'data': 'UserDefZero' }
{ 'command': 'boxed-union', 'data': 'UserDefListUnion', 'boxed': true }
{ 'command': 'boxed-empty', 'boxed': true, 'data': 'Empty1' }

# Smoke test on out-of-band and allow-preconfig-test
{ 'command': 'test-flags-command', 'allow-oob': true, 'allow-preconfig': true }

# For testing integer range flattening in opts-visitor. The following schema
# corresponds to the option format:
#
# -userdef i64=3-6,i64=-5--1,u64=2,u16=1,u16=7-12
#
# For simplicity, this example doesn't use [type=]discriminator nor optargs
# specific to discriminator values.
{ 'struct': 'UserDefOptions',
  'data': {
    '*i64' : [ 'int'    ],
    '*u64' : [ 'uint64' ],
    '*u16' : [ 'uint16' ],
    '*i64x':   'int'     ,
    '*u64x':   'uint64'  } }

# testing event
{ 'struct': 'EventStructOne',
  'data': { 'struct1': {'type': 'UserDefOne'}, 'string': 'str', '*enum2': 'EnumOne' } }

{ 'event': 'EVENT_A' }
{ 'event': 'EVENT_B',
  'data': { } }
{ 'event': 'EVENT_C',
  'data': { '*a': 'int', '*b': 'UserDefOne', 'c': 'str' } }
{ 'event': 'EVENT_D',
  'data': { 'a' : 'EventStructOne', 'b' : 'str', '*c': 'str', '*enum3': 'EnumOne' } }
{ 'event': 'EVENT_E', 'boxed': true, 'data': 'UserDefZero' }
{ 'event': 'EVENT_F', 'boxed': true, 'data': 'UserDefFlatUnion' }
{ 'event': 'EVENT_G', 'boxed': true, 'data': 'Empty1' }

# test that we correctly compile downstream extensions, as well as munge
# ticklish names
# also test union and alternate with just one branch
{ 'enum': '__org.qemu_x-Enum', 'data': [ '__org.qemu_x-value' ] }
{ 'struct': '__org.qemu_x-Base',
  'data': { '__org.qemu_x-member1': '__org.qemu_x-Enum' } }
{ 'struct': '__org.qemu_x-Struct', 'base': '__org.qemu_x-Base',
  'data': { '__org.qemu_x-member2': 'str', '*wchar-t': 'int' } }
{ 'union': '__org.qemu_x-Union1', 'data': { '__org.qemu_x-branch': 'str' } }
{ 'alternate': '__org.qemu_x-Alt1', 'data': { '__org.qemu_x-branch': 'str' } }
{ 'struct': '__org.qemu_x-Struct2',
  'data': { 'array': ['__org.qemu_x-Union1'] } }
{ 'union': '__org.qemu_x-Union2', 'base': '__org.qemu_x-Base',
  'discriminator': '__org.qemu_x-member1',
  'data': { '__org.qemu_x-value': '__org.qemu_x-Struct2' } }
{ 'alternate': '__org.qemu_x-Alt',
  'data': { '__org.qemu_x-branch': '__org.qemu_x-Base' } }
{ 'event': '__ORG.QEMU_X-EVENT', 'data': '__org.qemu_x-Struct' }
{ 'command': '__org.qemu_x-command',
  'data': { 'a': ['__org.qemu_x-Enum'], 'b': ['__org.qemu_x-Struct'],
            'c': '__org.qemu_x-Union2', 'd': '__org.qemu_x-Alt' },
  'returns': '__org.qemu_x-Union1' }

# test 'if' condition handling

{ 'struct': 'TestIfStruct', 'data':
  { 'foo': 'int',
    'bar': { 'type': 'int', 'if': 'defined(TEST_IF_STRUCT_BAR)'} },
  'if': 'defined(TEST_IF_STRUCT)' }

{ 'enum': 'TestIfEnum', 'data':
  [ 'foo', { 'name' : 'bar', 'if': 'defined(TEST_IF_ENUM_BAR)' } ],
  'if': 'defined(TEST_IF_ENUM)' }

{ 'union': 'TestIfUnion', 'data':
  { 'foo': 'TestStruct',
    'bar': { 'type': 'str', 'if': 'defined(TEST_IF_UNION_BAR)'} },
  'if': 'defined(TEST_IF_UNION) && defined(TEST_IF_STRUCT)' }

{ 'command': 'test-if-union-cmd',
  'data': { 'union-cmd-arg': 'TestIfUnion' },
  'if': 'defined(TEST_IF_UNION)' }

{ 'alternate': 'TestIfAlternate', 'data':
  { 'foo': 'int',
    'bar': { 'type': 'TestStruct', 'if': 'defined(TEST_IF_ALT_BAR)'} },
  'if': 'defined(TEST_IF_ALT) && defined(TEST_IF_STRUCT)' }

{ 'command': 'test-if-alternate-cmd',
  'data': { 'alt-cmd-arg': 'TestIfAlternate' },
  'if': 'defined(TEST_IF_ALT)' }

{ 'command': 'test-if-cmd',
  'data': {
    'foo': 'TestIfStruct',
    'bar': { 'type': 'TestIfEnum', 'if': 'defined(TEST_IF_CMD_BAR)' } },
  'returns': 'UserDefThree',
  'if': ['defined(TEST_IF_CMD)', 'defined(TEST_IF_STRUCT)'] }

{ 'command': 'test-cmd-return-def-three', 'returns': 'UserDefThree' }

{ 'event': 'TEST_IF_EVENT', 'data':
  { 'foo': 'TestIfStruct',
    'bar': { 'type': ['TestIfEnum'], 'if': 'defined(TEST_IF_EVT_BAR)' } },
  'if': 'defined(TEST_IF_EVT) && defined(TEST_IF_STRUCT)' }

# test 'features'

{ 'struct': 'FeatureStruct0',
  'data': { 'foo': 'int' },
  'features': [] }
{ 'struct': 'FeatureStruct1',
  'data': { 'foo': { 'type': 'int', 'features': [ 'deprecated' ] } },
  'features': [ 'feature1' ] }
{ 'struct': 'FeatureStruct2',
  'data': { 'foo': 'int' },
  'features': [ { 'name': 'feature1' } ] }
{ 'struct': 'FeatureStruct3',
  'data': { 'foo': 'int' },
  'features': [ 'feature1', 'feature2' ] }
{ 'struct': 'FeatureStruct4',
  'data': { 'namespace-test': 'int' },
  'features': [ 'namespace-test', 'int', 'name', 'if' ] }

{ 'struct': 'CondFeatureStruct1',
  'data': { 'foo': 'int' },
  'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'} ] }
{ 'struct': 'CondFeatureStruct2',
  'data': { 'foo': 'int' },
  'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'},
                { 'name': 'feature2', 'if': 'defined(TEST_IF_FEATURE_2)'} ] }
{ 'struct': 'CondFeatureStruct3',
  'data': { 'foo': 'int' },
  'features': [ { 'name': 'feature1', 'if': [ 'defined(TEST_IF_COND_1)',
                                              'defined(TEST_IF_COND_2)'] } ] }

{ 'enum': 'FeatureEnum1',
  'data': [ 'eins', 'zwei', 'drei' ],
  'features': [ 'feature1' ] }

{ 'union': 'FeatureUnion1',
  'base': { 'tag': 'FeatureEnum1' },
  'discriminator': 'tag',
  'data': { 'eins': 'FeatureStruct1' },
  'features': [ 'feature1' ] }

{ 'alternate': 'FeatureAlternate1',
  'data': { 'eins': 'FeatureStruct1' },
  'features': [ 'feature1' ] }

{ 'command': 'test-features0',
  'data': { '*fs0': 'FeatureStruct0',
            '*fs1': 'FeatureStruct1',
            '*fs2': 'FeatureStruct2',
            '*fs3': 'FeatureStruct3',
            '*fs4': 'FeatureStruct4',
            '*cfs1': 'CondFeatureStruct1',
            '*cfs2': 'CondFeatureStruct2',
            '*cfs3': 'CondFeatureStruct3' },
  'returns': 'FeatureStruct1',
  'features': [] }

{ 'command': 'test-command-features1',
  'features': [ 'deprecated' ] }
{ 'command': 'test-command-features3',
  'features': [ 'feature1', 'feature2' ] }

{ 'command': 'test-command-cond-features1',
  'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'} ] }
{ 'command': 'test-command-cond-features2',
  'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'},
                { 'name': 'feature2', 'if': 'defined(TEST_IF_FEATURE_2)'} ] }
{ 'command': 'test-command-cond-features3',
  'features': [ { 'name': 'feature1', 'if': [ 'defined(TEST_IF_COND_1)',
                                              'defined(TEST_IF_COND_2)'] } ] }

{ 'event': 'TEST_EVENT_FEATURES0',
  'data': 'FeatureStruct1' }

{ 'event': 'TEST_EVENT_FEATURES1',
  'features': [ 'deprecated' ] }
