root / tests / qapi-schema / qapi-schema-test.json @ ab22ad96
History | View | Annotate | Download (2.2 kB)
1 |
# *-*- Mode: Python -*-* |
---|---|
2 |
|
3 |
# for testing enums |
4 |
{ 'enum': 'EnumOne', |
5 |
'data': [ 'value1', 'value2', 'value3' ] } |
6 |
{ 'type': 'NestedEnumsOne', |
7 |
'data': { 'enum1': 'EnumOne', '*enum2': 'EnumOne', 'enum3': 'EnumOne', '*enum4': 'EnumOne' } } |
8 |
|
9 |
# for testing nested structs |
10 |
{ 'type': 'UserDefOne', |
11 |
'data': { 'integer': 'int', 'string': 'str', '*enum1': 'EnumOne' } } |
12 |
|
13 |
{ 'type': 'UserDefTwo', |
14 |
'data': { 'string': 'str', |
15 |
'dict': { 'string': 'str', |
16 |
'dict': { 'userdef': 'UserDefOne', 'string': 'str' }, |
17 |
'*dict2': { 'userdef': 'UserDefOne', 'string': 'str' } } } } |
18 |
|
19 |
{ 'type': 'UserDefNested', |
20 |
'data': { 'string0': 'str', |
21 |
'dict1': { 'string1': 'str', |
22 |
'dict2': { 'userdef1': 'UserDefOne', 'string2': 'str' }, |
23 |
'*dict3': { 'userdef2': 'UserDefOne', 'string3': 'str' } } } } |
24 |
|
25 |
# for testing unions |
26 |
{ 'type': 'UserDefA', |
27 |
'data': { 'boolean': 'bool' } } |
28 |
|
29 |
{ 'type': 'UserDefB', |
30 |
'data': { 'integer': 'int' } } |
31 |
|
32 |
{ 'union': 'UserDefUnion', |
33 |
'data': { 'a' : 'UserDefA', 'b' : 'UserDefB' } } |
34 |
|
35 |
# for testing native lists |
36 |
{ 'union': 'UserDefNativeListUnion', |
37 |
'data': { 'integer': ['int'], |
38 |
's8': ['int8'], |
39 |
's16': ['int16'], |
40 |
's32': ['int32'], |
41 |
's64': ['int64'], |
42 |
'u8': ['uint8'], |
43 |
'u16': ['uint16'], |
44 |
'u32': ['uint32'], |
45 |
'u64': ['uint64'], |
46 |
'number': ['number'], |
47 |
'boolean': ['bool'], |
48 |
'string': ['str'] } } |
49 |
|
50 |
# testing commands |
51 |
{ 'command': 'user_def_cmd', 'data': {} } |
52 |
{ 'command': 'user_def_cmd1', 'data': {'ud1a': 'UserDefOne'} } |
53 |
{ 'command': 'user_def_cmd2', |
54 |
'data': {'ud1a': 'UserDefOne', '*ud1b': 'UserDefOne'}, |
55 |
'returns': 'UserDefTwo' } |
56 |
|
57 |
# For testing integer range flattening in opts-visitor. The following schema |
58 |
# corresponds to the option format: |
59 |
#
|
60 |
# -userdef i64=3-6,i64=-5--1,u64=2,u16=1,u16=7-12 |
61 |
#
|
62 |
# For simplicity, this example doesn't use [type=]discriminator nor optargs |
63 |
# specific to discriminator values. |
64 |
{ 'type': 'UserDefOptions', |
65 |
'data': { |
66 |
'*i64' : [ 'int' ], |
67 |
'*u64' : [ 'uint64' ], |
68 |
'*u16' : [ 'uint16' ], |
69 |
'*i64x': 'int' , |
70 |
'*u64x': 'uint64' } } |