Add tests for exclusive size

This commit is contained in:
Jay Kamat 2023-03-03 12:09:51 -08:00
parent 542f1a6743
commit 7a3cd2d6bc
9 changed files with 57 additions and 20 deletions

View File

@ -162,24 +162,28 @@ definitions = '''
"isTypedef": true, "isTypedef": true,
"staticSize": 8, "staticSize": 8,
"dynamicSize": 12, "dynamicSize": 12,
"exclusiveSize": 0,
"members": [{ "members": [{
"name": "", "name": "",
"typeName": "__anon_struct_0", "typeName": "__anon_struct_0",
"isTypedef": false, "isTypedef": false,
"staticSize": 8, "staticSize": 8,
"dynamicSize": 12, "dynamicSize": 12,
"exclusiveSize": 0,
"members": [{ "members": [{
"name": "node", "name": "node",
"typeName": "struct Node *", "typeName": "struct Node *",
"staticSize": 8, "staticSize": 8,
"dynamicSize": 12, "dynamicSize": 12,
"exclusiveSize": 8,
"members": [{ "members": [{
"typeName": "Node", "typeName": "Node",
"staticSize": 12, "staticSize": 12,
"exclusiveSize": 0,
"members": [ "members": [
{ "name": "a", "staticSize": 4, "dynamicSize": 0 }, { "name": "a", "staticSize": 4, "exclusiveSize": 4, "dynamicSize": 0 },
{ "name": "b", "staticSize": 4, "dynamicSize": 0 }, { "name": "b", "staticSize": 4, "exclusiveSize": 4, "dynamicSize": 0 },
{ "name": "c", "staticSize": 4, "dynamicSize": 0 } { "name": "c", "staticSize": 4, "exclusiveSize": 4, "dynamicSize": 0 }
] ]
}] }]
}] }]

View File

@ -144,10 +144,11 @@ definitions = '''
expect_json = '''[{ expect_json = '''[{
"staticSize":24, "staticSize":24,
"dynamicSize":4, "dynamicSize":4,
"exclusiveSize":4,
"members":[ "members":[
{"name":"a", "staticSize":4, "dynamicSize":0}, {"name":"a", "staticSize":4, "exclusiveSize":4, "dynamicSize":0},
{"name":"b", "staticSize":8, "dynamicSize":4}, {"name":"b", "staticSize":8, "exclusiveSize":8, "dynamicSize":4},
{"name":"c", "staticSize":8, "dynamicSize":0} {"name":"c", "staticSize":8, "exclusiveSize":8, "dynamicSize":0}
]}]''' ]}]'''
[cases.struct_primitive_ptrs_no_follow] [cases.struct_primitive_ptrs_no_follow]
param_types = ["const PrimitivePtrs&"] param_types = ["const PrimitivePtrs&"]

View File

@ -34,12 +34,14 @@ definitions = '''
expect_json = '''[{ expect_json = '''[{
"staticSize": 24, "staticSize": 24,
"dynamicSize": 16, "dynamicSize": 16,
"exclusiveSize": 0,
"length":3, "length":3,
"capacity":4, "capacity":4,
"elementStaticSize":4, "elementStaticSize":4,
"members": [{ "members": [{
"staticSize": 24, "staticSize": 24,
"dynamicSize": 16, "dynamicSize": 16,
"exclusiveSize": 40,
"length": 3, "length": 3,
"capacity": 4, "capacity": 4,
"elementStaticSize": 4 "elementStaticSize": 4

View File

@ -8,6 +8,7 @@ includes = ["array", "cstdint", "vector"]
{ {
"staticSize": 1, "staticSize": 1,
"dynamicSize": 0, "dynamicSize": 0,
"exclusiveSize": 1,
"length": 0, "length": 0,
"capacity": 0, "capacity": 0,
"elementStaticSize": 8 "elementStaticSize": 8
@ -22,6 +23,7 @@ includes = ["array", "cstdint", "vector"]
{ {
"staticSize": 8, "staticSize": 8,
"dynamicSize": 0, "dynamicSize": 0,
"exclusiveSize": 8,
"length": 1, "length": 1,
"capacity": 1, "capacity": 1,
"elementStaticSize": 8 "elementStaticSize": 8
@ -70,17 +72,20 @@ includes = ["array", "cstdint", "vector"]
{ {
"staticSize": 48, "staticSize": 48,
"dynamicSize": 72, "dynamicSize": 72,
"exclusiveSize": 0,
"length": 2, "length": 2,
"capacity": 2, "capacity": 2,
"elementStaticSize": 24, "elementStaticSize": 24,
"members": [ "members": [
{ {
"staticSize": 24, "staticSize": 24,
"dynamicSize": 40 "dynamicSize": 40,
"exclusiveSize": 64
}, },
{ {
"staticSize": 24, "staticSize": 24,
"dynamicSize": 32 "dynamicSize": 32,
"exclusiveSize": 56
} }
] ]
} }

View File

@ -8,6 +8,7 @@ includes = ["optional", "cstdint", "vector"]
{ {
"staticSize": 16, "staticSize": 16,
"dynamicSize": 0, "dynamicSize": 0,
"exclusiveSize": 16,
"length": 0, "length": 0,
"capacity": 1, "capacity": 1,
"elementStaticSize": 8 "elementStaticSize": 8
@ -22,6 +23,7 @@ includes = ["optional", "cstdint", "vector"]
{ {
"staticSize": 16, "staticSize": 16,
"dynamicSize": 0, "dynamicSize": 0,
"exclusiveSize": 16,
"length": 1, "length": 1,
"capacity": 1, "capacity": 1,
"elementStaticSize": 8 "elementStaticSize": 8
@ -36,6 +38,7 @@ includes = ["optional", "cstdint", "vector"]
{ {
"staticSize": 32, "staticSize": 32,
"dynamicSize": 0, "dynamicSize": 0,
"exclusiveSize": 32,
"length": 0, "length": 0,
"capacity": 1, "capacity": 1,
"elementStaticSize": 24 "elementStaticSize": 24
@ -50,6 +53,7 @@ includes = ["optional", "cstdint", "vector"]
{ {
"staticSize": 32, "staticSize": 32,
"dynamicSize": 40, "dynamicSize": 40,
"exclusiveSize": 8,
"length": 1, "length": 1,
"capacity": 1, "capacity": 1,
"elementStaticSize": 24, "elementStaticSize": 24,
@ -57,6 +61,7 @@ includes = ["optional", "cstdint", "vector"]
{ {
"staticSize": 24, "staticSize": 24,
"dynamicSize": 40, "dynamicSize": 40,
"exclusiveSize": 64,
"length": 5 "length": 5
} }
] ]

View File

@ -14,6 +14,7 @@ definitions = '''
{ {
"staticSize": 8, "staticSize": 8,
"dynamicSize": 0, "dynamicSize": 0,
"exclusiveSize": 8,
"length": 0, "length": 0,
"capacity": 1, "capacity": 1,
"elementStaticSize": 8 "elementStaticSize": 8
@ -56,13 +57,15 @@ definitions = '''
{ {
"staticSize": 8, "staticSize": 8,
"dynamicSize": 64, "dynamicSize": 64,
"exclusiveSize": 8,
"length": 1, "length": 1,
"capacity": 1, "capacity": 1,
"elementStaticSize": 24, "elementStaticSize": 24,
"members": [ "members": [
{ {
"staticSize": 24, "staticSize": 24,
"dynamicSize": 40 "dynamicSize": 40,
"exclusiveSize": 64
} }
] ]
} }
@ -159,7 +162,8 @@ definitions = '''
[ [
{ {
"staticSize": 16, "staticSize": 16,
"dynamicSize": 0 "dynamicSize": 0,
"exclusiveSize": 16
} }
] ]
''' '''
@ -170,7 +174,8 @@ definitions = '''
[ [
{ {
"staticSize": 16, "staticSize": 16,
"dynamicSize": 0 "dynamicSize": 0,
"exclusiveSize": 16
} }
] ]
''' '''

View File

@ -10,10 +10,12 @@ includes = ["string"]
"isTypedef": true, "isTypedef": true,
"staticSize": 32, "staticSize": 32,
"dynamicSize": 0, "dynamicSize": 0,
"exclusiveSize": 0,
"members": [ "members": [
{ {
"staticSize": 32, "staticSize": 32,
"dynamicSize": 0, "dynamicSize": 0,
"exclusiveSize": 32,
"length": 0, "length": 0,
"capacity": 15, "capacity": 15,
"elementStaticSize": 1 "elementStaticSize": 1
@ -32,10 +34,12 @@ includes = ["string"]
"isTypedef": true, "isTypedef": true,
"staticSize": 32, "staticSize": 32,
"dynamicSize": 0, "dynamicSize": 0,
"exclusiveSize": 0,
"members": [ "members": [
{ {
"staticSize": 32, "staticSize": 32,
"dynamicSize": 0, "dynamicSize": 0,
"exclusiveSize": 32,
"length": 6, "length": 6,
"capacity": 15, "capacity": 15,
"elementStaticSize": 1 "elementStaticSize": 1
@ -54,10 +58,12 @@ includes = ["string"]
"isTypedef": true, "isTypedef": true,
"staticSize": 32, "staticSize": 32,
"dynamicSize": 26, "dynamicSize": 26,
"exclusiveSize": 0,
"members": [ "members": [
{ {
"staticSize": 32, "staticSize": 32,
"dynamicSize": 26, "dynamicSize": 26,
"exclusiveSize": 58,
"length": 26, "length": 26,
"capacity": 26, "capacity": 26,
"elementStaticSize": 1 "elementStaticSize": 1

View File

@ -14,11 +14,12 @@ definitions = '''
expect_json = '''[{ expect_json = '''[{
"staticSize":16, "staticSize":16,
"dynamicSize":0, "dynamicSize":0,
"exclusiveSize":15,
"length":1, "length":1,
"capacity":1, "capacity":1,
"elementStaticSize":8, "elementStaticSize":8,
"members":[ "members":[
{"typeName":"char", "staticSize":1, "dynamicSize":0} {"typeName":"char", "staticSize":1, "exclusiveSize":1, "dynamicSize":0}
]}]''' ]}]'''
[cases.char_int64_2] [cases.char_int64_2]
param_types = ["const std::variant<char, int64_t>&"] param_types = ["const std::variant<char, int64_t>&"]
@ -26,11 +27,12 @@ definitions = '''
expect_json = '''[{ expect_json = '''[{
"staticSize":16, "staticSize":16,
"dynamicSize":0, "dynamicSize":0,
"exclusiveSize":8,
"length":1, "length":1,
"capacity":1, "capacity":1,
"elementStaticSize":8, "elementStaticSize":8,
"members":[ "members":[
{"typeName":"long", "staticSize":8, "dynamicSize":0} {"typeName":"long", "staticSize":8, "exclusiveSize":8, "dynamicSize":0}
]}]''' ]}]'''
[cases.vector_int_1] [cases.vector_int_1]
@ -39,6 +41,7 @@ definitions = '''
expect_json = '''[{ expect_json = '''[{
"staticSize":32, "staticSize":32,
"dynamicSize":12, "dynamicSize":12,
"exclusiveSize":8,
"length":1, "length":1,
"capacity":1, "capacity":1,
"elementStaticSize":24, "elementStaticSize":24,
@ -47,6 +50,7 @@ definitions = '''
"typeName":"vector<int, std::allocator<int> >", "typeName":"vector<int, std::allocator<int> >",
"staticSize":24, "staticSize":24,
"dynamicSize":12, "dynamicSize":12,
"exclusiveSize":36,
"length":3, "length":3,
"capacity":3, "capacity":3,
"elementStaticSize":4 "elementStaticSize":4
@ -77,6 +81,7 @@ definitions = '''
expect_json = '''[{ expect_json = '''[{
"staticSize":24, "staticSize":24,
"dynamicSize":0, "dynamicSize":0,
"exclusiveSize":8,
"length":1, "length":1,
"capacity":1, "capacity":1,
"elementStaticSize":16, "elementStaticSize":16,
@ -84,11 +89,12 @@ definitions = '''
{ {
"staticSize":16, "staticSize":16,
"dynamicSize":0, "dynamicSize":0,
"exclusiveSize":8,
"length":1, "length":1,
"capacity":1, "capacity":1,
"elementStaticSize":8, "elementStaticSize":8,
"members":[ "members":[
{"typeName":"long", "staticSize":8, "dynamicSize":0} {"typeName":"long", "staticSize":8, "exclusiveSize":8, "dynamicSize":0}
] ]
} }
]}]''' ]}]'''
@ -109,6 +115,7 @@ definitions = '''
expect_json = '''[{ expect_json = '''[{
"staticSize":8, "staticSize":8,
"dynamicSize":0, "dynamicSize":0,
"exclusiveSize":8,
"length":1, "length":1,
"capacity":1, "capacity":1,
"elementStaticSize":4, "elementStaticSize":4,
@ -125,11 +132,12 @@ definitions = '''
expect_json = '''[{ expect_json = '''[{
"staticSize":8, "staticSize":8,
"dynamicSize":0, "dynamicSize":0,
"exclusiveSize":7,
"length":1, "length":1,
"capacity":1, "capacity":1,
"elementStaticSize":4, "elementStaticSize":4,
"members":[ "members":[
{"typeName":"char", "staticSize":1, "dynamicSize":0} {"typeName":"char", "staticSize":1, "exclusiveSize":1, "dynamicSize":0}
]}]''' ]}]'''
[cases.256_params_empty] [cases.256_params_empty]
param_types = ["const std::variant<Thrower,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,char>&"] param_types = ["const std::variant<Thrower,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,char>&"]

View File

@ -17,7 +17,7 @@ includes = ["vector"]
skip = true # https://github.com/facebookexperimental/object-introspection/issues/14 skip = true # https://github.com/facebookexperimental/object-introspection/issues/14
param_types = ["const std::vector<bool>&"] param_types = ["const std::vector<bool>&"]
setup = "return {{true, false, true}};" setup = "return {{true, false, true}};"
expect_json = '[{"staticSize":40,"dynamicSize":8, "length":3, "capacity":64, "elementStaticSize":0.125}]' expect_json = '[{"staticSize":40,"dynamicSize":8, "exclusiveSize":40, "length":3, "capacity":64, "elementStaticSize":0.125}]'
[cases.vector_int_empty] [cases.vector_int_empty]
param_types = ["const std::vector<std::vector<int>>&"] param_types = ["const std::vector<std::vector<int>>&"]
setup = "return {};" setup = "return {};"
@ -28,13 +28,14 @@ includes = ["vector"]
expect_json = '''[{ expect_json = '''[{
"staticSize":24, "staticSize":24,
"dynamicSize":96, "dynamicSize":96,
"exclusiveSize":24,
"length":3, "length":3,
"capacity":3, "capacity":3,
"elementStaticSize":24, "elementStaticSize":24,
"members":[ "members":[
{"staticSize":24, "dynamicSize":12, "length":3, "capacity":3, "elementStaticSize":4}, {"staticSize":24, "dynamicSize":12, "exclusiveSize":36, "length":3, "capacity":3, "elementStaticSize":4},
{"staticSize":24, "dynamicSize":4, "length":1, "capacity":1, "elementStaticSize":4}, {"staticSize":24, "dynamicSize":4, "exclusiveSize":28, "length":1, "capacity":1, "elementStaticSize":4},
{"staticSize":24, "dynamicSize":8, "length":2, "capacity":2, "elementStaticSize":4} {"staticSize":24, "dynamicSize":8, "exclusiveSize":32, "length":2, "capacity":2, "elementStaticSize":4}
]}]''' ]}]'''
[cases.reserve] [cases.reserve]
param_types = ["const std::vector<int>&"] param_types = ["const std::vector<int>&"]
@ -43,4 +44,4 @@ includes = ["vector"]
ret.reserve(10); ret.reserve(10);
return ret; return ret;
''' '''
expect_json = '[{"staticSize":24, "dynamicSize":40, "length":3, "capacity":10, "elementStaticSize":4}]' expect_json = '[{"staticSize":24, "dynamicSize":40, "exclusiveSize":64, "length":3, "capacity":10, "elementStaticSize":4}]'