object-introspection/test/integration/thrift_unions.toml
Thierry Treyer d232a5d2fb Add namespaces to integration tests' "typeName"
Some integration tests have not been updated since drgn started
reporting type names with all their namespaces, and were failing.
2024-01-11 14:13:51 +01:00

89 lines
2.9 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() {}
DynamicUnion::~DynamicUnion() {}
}
'''
[cases]
[cases.static]
param_types = ["const cpp2::StaticUnion&"]
setup = '''
cpp2::StaticUnion ret;
return ret;
'''
expect_json = '''[{
"staticSize":8,
"dynamicSize":0,
"members":[
{"typeName":"cpp2::StaticUnion::storage_type", "name":"value_", "staticSize":4},
{"typeName":"underlying_type_t<cpp2::StaticUnion::Type>", "name":"type_", "staticSize":4}
]}]'''
expect_json_v2 = '''[{
"staticSize":8,
"exclusiveSize":0,
"size":8,
"members":[
{"typeNames":["cpp2::StaticUnion::storage_type"], "name":"value_", "staticSize":4, "exclusiveSize":4, "size":4},
{"typeNames":["underlying_type_t<cpp2::StaticUnion::Type>", "type", "int32_t"], "name":"type_", "staticSize":4, "exclusiveSize":4, "size":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":"cpp2::DynamicUnion::storage_type", "name":"value_", "staticSize":24},
{"typeName":"underlying_type_t<cpp2::DynamicUnion::Type>", "name":"type_", "staticSize":4}
]}]'''
expect_json_v2 = '''[{
"staticSize":32,
"exclusiveSize":4,
"size":32,
"members":[
{"typeNames":["cpp2::DynamicUnion::storage_type"], "name":"value_", "staticSize":24, "exclusiveSize":24, "size":24},
{"typeNames":["underlying_type_t<cpp2::DynamicUnion::Type>", "type", "int32_t"], "name":"type_", "staticSize":4, "exclusiveSize":4, "size":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":"cpp2::DynamicUnion::storage_type", "name":"value_", "staticSize":24},
{"typeName":"underlying_type_t<cpp2::DynamicUnion::Type>", "name":"type_", "staticSize":4}
]}]'''
expect_json_v2 = '''[{
"staticSize":32,
"exclusiveSize":4,
"size":32,
"members":[
{"typeNames":["cpp2::DynamicUnion::storage_type"], "name":"value_", "staticSize":24, "exclusiveSize":24, "size":24},
{"typeNames":["underlying_type_t<cpp2::DynamicUnion::Type>", "type", "int32_t"], "name":"type_", "staticSize":4, "exclusiveSize":4, "size":4}
]}]'''