mirror of
https://github.com/JakeHillion/object-introspection.git
synced 2024-11-10 05:26:56 +00:00
64 lines
1.7 KiB
TOML
64 lines
1.7 KiB
TOML
|
# TODO: The dynamic union tests should be updated when tagged union support is in:
|
||
|
# https://github.com/facebookexperimental/object-introspection/issues/234
|
||
|
thrift_definitions = '''
|
||
|
union StaticUnion {
|
||
|
1: i32 a;
|
||
|
2: i32 b;
|
||
|
3: i32 c;
|
||
|
}
|
||
|
|
||
|
union DynamicUnion {
|
||
|
1: i32 n;
|
||
|
2: list<i32> vec;
|
||
|
}
|
||
|
'''
|
||
|
raw_definitions = '''
|
||
|
namespace cpp2 {
|
||
|
void StaticUnion::__fbthrift_clear() {}
|
||
|
void DynamicUnion::__fbthrift_clear() {}
|
||
|
}
|
||
|
'''
|
||
|
|
||
|
[cases]
|
||
|
[cases.static]
|
||
|
param_types = ["const cpp2::StaticUnion&"]
|
||
|
setup = '''
|
||
|
cpp2::StaticUnion ret;
|
||
|
return ret;
|
||
|
'''
|
||
|
expect_json = '''[{
|
||
|
"staticSize":8,
|
||
|
"dynamicSize":0,
|
||
|
"members":[
|
||
|
{"typeName":"storage_type", "name":"value_", "staticSize":4},
|
||
|
{"typeName":"underlying_type_t<cpp2::StaticUnion::Type>", "name":"type_", "staticSize":4}
|
||
|
]}]'''
|
||
|
[cases.dynamic_int]
|
||
|
param_types = ["const cpp2::DynamicUnion&"]
|
||
|
setup = '''
|
||
|
cpp2::DynamicUnion ret;
|
||
|
ret.set_n(123);
|
||
|
return ret;
|
||
|
'''
|
||
|
expect_json = '''[{
|
||
|
"staticSize":32,
|
||
|
"dynamicSize":0,
|
||
|
"members":[
|
||
|
{"typeName":"storage_type", "name":"value_", "staticSize":24},
|
||
|
{"typeName":"underlying_type_t<cpp2::DynamicUnion::Type>", "name":"type_", "staticSize":4}
|
||
|
]}]'''
|
||
|
[cases.dynamic_vec]
|
||
|
param_types = ["const cpp2::DynamicUnion&"]
|
||
|
setup = '''
|
||
|
cpp2::DynamicUnion ret;
|
||
|
ret.set_vec({1,2,3});
|
||
|
return ret;
|
||
|
'''
|
||
|
expect_json = '''[{
|
||
|
"staticSize":32,
|
||
|
"dynamicSize":0,
|
||
|
"members":[
|
||
|
{"typeName":"storage_type", "name":"value_", "staticSize":24},
|
||
|
{"typeName":"underlying_type_t<cpp2::DynamicUnion::Type>", "name":"type_", "staticSize":4}
|
||
|
]}]'''
|