object-introspection/test/integration/pointers_function.toml
2023-06-23 11:25:43 +01:00

99 lines
3.2 KiB
TOML
Raw Permalink 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 = ["-fchase-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 = ["-fchase-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"
}]'''