object-introspection/test/integration/std_list_del_allocator.toml
2022-12-19 06:37:51 -08:00

60 lines
1.5 KiB
TOML

definitions = '''
namespace nsA {
struct C {
int a;
};
}
namespace nsB {
struct C {
int b;
};
}
template<typename T>
class CustomAllocator: public std::allocator<T>
{
};
// Naming conflict will only work if OI deletes the allocator field
struct Foo {
std::list<nsA::C, CustomAllocator<nsA::C>> v1;
std::list<nsB::C, CustomAllocator<nsB::C>> v2;
};
'''
includes = ["list"]
[cases]
[cases.a]
param_types = ["const Foo&"]
setup = '''
Foo foo;
foo.v1.resize(1);
foo.v2.resize(2);
return {foo};
'''
expect_json = '''[{
"staticSize":48,
"dynamicSize":12,
"members":[
{"name":"v1", "staticSize":24, "dynamicSize":4, "length":1, "capacity":1, "elementStaticSize":4,
"members":[
{"name":"", "typeName": "C", "staticSize":4, "dynamicSize":0,
"members":[
{"name":"a", "typeName": "int", "staticSize":4, "dynamicSize":0}
]}
]},
{"name":"v2", "staticSize":24, "dynamicSize":8, "length":2, "capacity":2, "elementStaticSize":4,
"members":[
{"name":"", "typeName": "C", "staticSize":4, "dynamicSize":0,
"members":[
{"name":"b", "typeName": "int", "staticSize":4, "dynamicSize":0}
]},
{"name":"", "typeName": "C", "staticSize":4, "dynamicSize":0,
"members":[
{"name":"b", "typeName": "int", "staticSize":4, "dynamicSize":0}
]}
]}
]}]'''