object-introspection/test/integration/pointers_function.toml
2023-01-04 17:56:37 +00:00

99 lines
3.2 KiB
TOML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

includes = ["functional"]
definitions = '''
void myFunction(int x) {
(void)x;
}
// Put this function pointer inside a struct since the test framework doesn't
// support the syntax required for passing raw function pointers as arguments
struct FuncPtrStruct {
void (*p)(int);
};
'''
[cases]
[cases.raw]
oid_skip = "function pointers are not handled correctly" # https://github.com/facebookexperimental/object-introspection/issues/22
param_types = ["const FuncPtrStruct&"]
setup = "return {{myFunction}};"
expect_json = '''[{
"staticSize": 8,
"dynamicSize": 0,
"members": [{
"typeName": "void (*)(int)",
"staticSize": 8,
"dynamicSize": 0,
"NOT": {"pointer": 0},
"NOT": "members"
}]
}]'''
[cases.raw_chase] # We should never chase function pointers
oid_skip = "function pointers are not handled correctly" # https://github.com/facebookexperimental/object-introspection/issues/22
oil_disable = "oil can't chase raw pointers safely"
param_types = ["const FuncPtrStruct&"]
setup = "return {{myFunction}};"
cli_options = ["--chase-raw-pointers"]
expect_json = '''[{
"staticSize": 8,
"dynamicSize": 0,
"members": [{
"typeName": "void (*)(int)",
"staticSize": 8,
"dynamicSize": 0,
"NOT": {"pointer": 0},
"NOT": "members"
}]
}]'''
[cases.raw_null]
oid_skip = "function pointers are not handled correctly" # https://github.com/facebookexperimental/object-introspection/issues/22
param_types = ["const FuncPtrStruct&"]
setup = "return {{nullptr}};"
expect_json = '''[{
"staticSize": 8,
"dynamicSize": 0,
"members": [{
"typeName": "void (*)(int)",
"staticSize": 8,
"dynamicSize": 0,
"pointer": 0,
"NOT": "members"
}]
}]'''
[cases.std_function]
oid_skip = "function pointers are not handled correctly" # https://github.com/facebookexperimental/object-introspection/issues/22
param_types = ["std::function<void(int)> &"]
setup = "return myFunction;"
expect_json = '''[{
"typeName": "function<void (int)>",
"staticSize": 32,
"dynamicSize": 0,
"NOT": {"pointer": 0},
"NOT": "members"
}]'''
[cases.std_function_chase] # We should never chase function pointers
oid_skip = "function pointers are not handled correctly" # https://github.com/facebookexperimental/object-introspection/issues/22
oil_disable = "oil can't chase raw pointers safely"
param_types = ["std::function<void(int)> &"]
setup = "return myFunction;"
cli_options = ["--chase-raw-pointers"]
expect_json = '''[{
"typeName": "function<void (int)>",
"staticSize": 32,
"dynamicSize": 0,
"NOT": {"pointer": 0},
"NOT": "members"
}]'''
[cases.std_function_null]
oid_skip = "function pointers are not handled correctly" # https://github.com/facebookexperimental/object-introspection/issues/22
param_types = ["std::function<void(int)> &"]
setup = "return nullptr;"
expect_json = '''[{
"typeName": "function<void (int)>",
"staticSize": 32,
"dynamicSize": 0,
"pointer": 0,
"NOT": "members"
}]'''