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

66 lines
1.4 KiB
TOML

includes = ["optional", "cstdint", "vector"]
[cases]
[cases.uint64_empty]
param_types = ["std::optional<std::uint64_t>&"]
setup = "return std::nullopt;"
expect_json = '''
[
{
"staticSize": 16,
"dynamicSize": 0,
"length": 0,
"capacity": 1,
"elementStaticSize": 8
}
]
'''
[cases.uint64_present]
param_types = ["std::optional<std::uint64_t>&"]
setup = "return 64;"
expect_json = '''
[
{
"staticSize": 16,
"dynamicSize": 0,
"length": 1,
"capacity": 1,
"elementStaticSize": 8
}
]
'''
[cases.vector_empty]
param_types = ["std::optional<std::vector<std::uint64_t>>&"]
setup = "return std::nullopt;"
expect_json = '''
[
{
"staticSize": 32,
"dynamicSize": 0,
"length": 0,
"capacity": 1,
"elementStaticSize": 24
}
]
'''
[cases.vector_present]
param_types = ["std::optional<std::vector<std::uint64_t>>&"]
setup = "return {{{1,2,3,4,5}}};"
expect_json = '''
[
{
"staticSize": 32,
"dynamicSize": 40,
"length": 1,
"capacity": 1,
"elementStaticSize": 24,
"members": [
{
"staticSize": 24,
"dynamicSize": 40,
"length": 5
}
]
}
]
'''