2022-12-19 14:37:51 +00:00
|
|
|
definitions = '''
|
|
|
|
namespace nsA {
|
|
|
|
struct C {
|
|
|
|
int a;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
namespace nsB {
|
|
|
|
struct C {
|
|
|
|
int b;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
// TODO: Custom allocator for deque is generating a compiler error
|
|
|
|
|
|
|
|
// deque generates compiler errors with custom allocator. But because of
|
|
|
|
// name conflicts, OI would fail unless it deletes the allocator param.
|
|
|
|
struct Foo {
|
|
|
|
std::deque<nsA::C> v1;
|
|
|
|
std::deque<nsB::C> v2;
|
|
|
|
};
|
|
|
|
|
|
|
|
'''
|
|
|
|
includes = ["deque"]
|
|
|
|
|
|
|
|
[cases]
|
|
|
|
[cases.a]
|
|
|
|
param_types = ["const Foo&"]
|
|
|
|
setup = '''
|
|
|
|
Foo foo;
|
|
|
|
foo.v1.resize(1);
|
|
|
|
foo.v2.resize(2);
|
|
|
|
return {foo};
|
|
|
|
'''
|
|
|
|
expect_json = '''[{
|
|
|
|
"staticSize":160,
|
|
|
|
"dynamicSize":12,
|
|
|
|
"members":[
|
|
|
|
{"name":"v1", "staticSize":80, "dynamicSize":4, "length":1, "capacity":1, "elementStaticSize":4,
|
|
|
|
"members":[
|
2023-12-13 16:49:41 +00:00
|
|
|
{"name":"", "staticSize":4, "dynamicSize":0,
|
2022-12-19 14:37:51 +00:00
|
|
|
"members":[
|
2023-12-13 16:49:41 +00:00
|
|
|
{"name":"a", "staticSize":4, "dynamicSize":0}
|
2022-12-19 14:37:51 +00:00
|
|
|
]}
|
|
|
|
]},
|
|
|
|
{"name":"v2", "staticSize":80, "dynamicSize":8, "length":2, "capacity":2, "elementStaticSize":4,
|
|
|
|
"members":[
|
2023-12-13 16:49:41 +00:00
|
|
|
{"name":"", "staticSize":4, "dynamicSize":0,
|
2022-12-19 14:37:51 +00:00
|
|
|
"members":[
|
2023-12-13 16:49:41 +00:00
|
|
|
{"name":"b", "staticSize":4, "dynamicSize":0}
|
2022-12-19 14:37:51 +00:00
|
|
|
]},
|
2023-12-13 16:49:41 +00:00
|
|
|
{"name":"", "staticSize":4, "dynamicSize":0,
|
2022-12-19 14:37:51 +00:00
|
|
|
"members":[
|
2023-12-13 16:49:41 +00:00
|
|
|
{"name":"b", "staticSize":4, "dynamicSize":0}
|
2022-12-19 14:37:51 +00:00
|
|
|
]}
|
|
|
|
]}
|
|
|
|
]}]'''
|
2024-01-23 16:44:01 +00:00
|
|
|
expect_json_v2 = '''[{
|
|
|
|
"size":1312,
|
|
|
|
"staticSize":160,
|
|
|
|
"exclusiveSize":0,
|
|
|
|
"members":[
|
|
|
|
{"name":"v1", "size":656, "staticSize":80, "exclusiveSize":652, "length":1, "capacity":128,
|
|
|
|
"members":[
|
|
|
|
{"name":"[]", "staticSize":4, "exclusiveSize":0,
|
|
|
|
"members":[
|
|
|
|
{"name":"a", "staticSize":4, "exclusiveSize":4}
|
|
|
|
]}
|
|
|
|
]},
|
|
|
|
{"name":"v2", "size":656, "staticSize":80, "exclusiveSize":648, "length":2, "capacity":128,
|
|
|
|
"members":[
|
|
|
|
{"name":"[]", "staticSize":4, "exclusiveSize":0,
|
|
|
|
"members":[
|
|
|
|
{"name":"b", "staticSize":4, "exclusiveSize":4}
|
|
|
|
]},
|
|
|
|
{"name":"[]", "staticSize":4, "exclusiveSize":0,
|
|
|
|
"members":[
|
|
|
|
{"name":"b", "staticSize":4, "exclusiveSize":4}
|
|
|
|
]}
|
|
|
|
]}
|
|
|
|
]}]'''
|