object-introspection/test/integration/std_queue.toml
Alastair Robertson 2060a0491e CodeGen v2: Enable independent running without CodeGen v1
Create DrgnExporter to translate Type Graph "Type" nodes into drgn_type
structs, suitable for use in OICache and TreeBuilder.
2023-12-15 14:57:24 +00:00

115 lines
5.2 KiB
TOML

includes = ["queue"]
[cases]
[cases.int_empty]
oil_skip = 'not implemented for treebuilder v2' # https://github.com/facebookexperimental/object-introspection/issues/308
param_types = ["const std::queue<int>&"]
setup = "return {};"
expect_json = '''[{
"typeName": "std::queue<int32_t, std::deque<int32_t, std::allocator<int32_t>>>",
"staticSize": 80, "dynamicSize": 0, "length": 0, "capacity": 0, "elementStaticSize": 4,
"members": [
{
"typeName": "std::deque<int32_t, std::allocator<int32_t>>",
"staticSize": 80, "dynamicSize": 0, "length": 0, "capacity": 0, "elementStaticSize": 4
}
]}]'''
[cases.int_some]
oil_skip = 'not implemented for treebuilder v2' # https://github.com/facebookexperimental/object-introspection/issues/308
param_types = ["const std::queue<int>&"]
setup = "return std::queue<int>({1,2,3});"
expect_json = '''[{
"typeName": "std::queue<int32_t, std::deque<int32_t, std::allocator<int32_t>>>",
"staticSize": 80, "dynamicSize": 12, "length": 3, "capacity": 3, "elementStaticSize": 4,
"members": [
{
"typeName": "std::deque<int32_t, std::allocator<int32_t>>",
"staticSize": 80, "dynamicSize": 12, "length": 3, "capacity": 3, "elementStaticSize": 4
}
]}]'''
[cases.queue_int_empty]
oil_skip = 'not implemented for treebuilder v2' # https://github.com/facebookexperimental/object-introspection/issues/308
param_types = ["const std::queue<std::queue<int>>&"]
setup = "return {};"
expect_json = '''[{
"staticSize": 80, "dynamicSize": 0, "length": 0, "capacity": 0, "elementStaticSize": 80,
"members": [
{
"staticSize": 80, "dynamicSize": 0, "length": 0, "capacity": 0, "elementStaticSize": 80
}
]}]'''
[cases.queue_int_some]
oil_skip = 'not implemented for treebuilder v2' # https://github.com/facebookexperimental/object-introspection/issues/308
param_types = ["const std::queue<std::queue<int>>&"]
setup = '''
return std::queue<std::queue<int>>({
std::queue<int>({1,2,3}),
std::queue<int>(),
std::queue<int>({4,5})
});
'''
expect_json = '''[{
"staticSize": 80, "dynamicSize": 260, "length": 3, "capacity": 3, "elementStaticSize": 80,
"members": [
{
"staticSize": 80, "dynamicSize": 260, "length": 3, "capacity": 3, "elementStaticSize": 80,
"members": [
{
"typeName": "std::queue<int32_t, std::deque<int32_t, std::allocator<int32_t>>>",
"staticSize": 80, "dynamicSize": 12, "length": 3, "capacity": 3, "elementStaticSize": 4,
"members": [
{
"typeName": "std::deque<int32_t, std::allocator<int32_t>>",
"staticSize": 80, "dynamicSize": 12, "length": 3, "capacity": 3, "elementStaticSize": 4
}
]
},
{
"typeName": "std::queue<int32_t, std::deque<int32_t, std::allocator<int32_t>>>",
"staticSize": 80, "dynamicSize": 0, "length": 0, "capacity": 0, "elementStaticSize": 4,
"members": [
{
"typeName": "std::deque<int32_t, std::allocator<int32_t>>",
"staticSize": 80, "dynamicSize": 0, "length": 0, "capacity": 0, "elementStaticSize": 4
}
]
},
{
"typeName": "std::queue<int32_t, std::deque<int32_t, std::allocator<int32_t>>>",
"staticSize": 80, "dynamicSize": 8, "length": 2, "capacity": 2, "elementStaticSize": 4,
"members": [
{
"typeName": "std::deque<int32_t, std::allocator<int32_t>>",
"staticSize": 80, "dynamicSize": 8, "length": 2, "capacity": 2, "elementStaticSize": 4
}
]
}
]
}
]}]'''
[cases.adapter_vector_empty]
oil_skip = 'not implemented for treebuilder v2' # https://github.com/facebookexperimental/object-introspection/issues/308
param_types = ["const std::queue<int, std::vector<int>>&"]
setup = "return {};"
expect_json = '''[{
"typeName": "std::queue<int32_t, std::vector<int32_t, std::allocator<int32_t>>>",
"staticSize": 24, "dynamicSize": 0, "length": 0, "capacity": 0, "elementStaticSize": 4,
"members": [
{
"typeName": "std::vector<int32_t, std::allocator<int32_t>>",
"staticSize": 24, "dynamicSize": 0, "length": 0, "capacity": 0, "elementStaticSize": 4
}
]}]'''
[cases.adapter_vector_some]
oil_skip = 'not implemented for treebuilder v2' # https://github.com/facebookexperimental/object-introspection/issues/308
param_types = ["const std::queue<int, std::vector<int>>&"]
setup = "return std::queue<int, std::vector<int>>({1,2,3});"
expect_json = '''[{
"typeName": "std::queue<int32_t, std::vector<int32_t, std::allocator<int32_t>>>",
"staticSize": 24, "dynamicSize": 12, "length": 3, "capacity": 3, "elementStaticSize": 4,
"members": [
{
"typeName": "std::vector<int32_t, std::allocator<int32_t>>",
"staticSize": 24, "dynamicSize": 12, "length": 3, "capacity": 3, "elementStaticSize": 4
}
]}]'''