mirror of
https://github.com/JakeHillion/object-introspection.git
synced 2024-11-10 05:26:56 +00:00
85 lines
2.5 KiB
TOML
85 lines
2.5 KiB
TOML
definitions = '''
|
|
struct Foo10 {
|
|
int arr[10];
|
|
};
|
|
|
|
#pragma clang diagnostic push
|
|
#pragma clang diagnostic ignored "-Wzero-length-array"
|
|
struct Foo0 {
|
|
int arr[0];
|
|
};
|
|
|
|
using ZeroLengthIntArray = int[0];
|
|
#pragma clang diagnostic pop
|
|
|
|
struct MultiDim {
|
|
int arr[2][3];
|
|
};
|
|
'''
|
|
[cases]
|
|
[cases.member_int10]
|
|
param_types = ["const Foo10&"]
|
|
setup = "return {};"
|
|
expect_json = '''[{
|
|
"staticSize":40,
|
|
"dynamicSize":0,
|
|
"members":[{
|
|
"staticSize":40,
|
|
"dynamicSize":0,
|
|
"length":10,
|
|
"capacity":10,
|
|
"elementStaticSize":4
|
|
}]}]'''
|
|
[cases.member_int0]
|
|
# WARNING: zero-length arrays are handled differently to non-empty arrays.
|
|
# They end up not being treated as containers. This should probably change
|
|
# in the future.
|
|
param_types = ["const Foo0&"]
|
|
setup = "return {};"
|
|
expect_json = '''[{
|
|
"staticSize":0,
|
|
"dynamicSize":0,
|
|
"members":[{
|
|
"staticSize":0,
|
|
"dynamicSize":0
|
|
}]}]'''
|
|
[cases.multidim]
|
|
param_types = ["const MultiDim&"]
|
|
setup = "return {};"
|
|
expect_json = '''[{
|
|
"staticSize":24,
|
|
"dynamicSize":0,
|
|
"members":[{
|
|
"staticSize":24,
|
|
"dynamicSize":0,
|
|
"length":6,
|
|
"capacity":6,
|
|
"elementStaticSize":4
|
|
}]}]'''
|
|
[cases.direct_int10]
|
|
skip = "Direct array arguments don't work"
|
|
param_types = ["int[10]"]
|
|
setup = "return {};"
|
|
expect_json = '[{"staticSize":40, "dynamicSize":0, "length":10, "capacity":10, "elementStaticSize":4}]'
|
|
[cases.direct_int0]
|
|
skip = "Direct array arguments don't work"
|
|
# WARNING: zero-length arrays are handled differently to non-empty arrays.
|
|
# They end up not being treated as containers. This should probably change
|
|
# in the future.
|
|
param_types = ["ZeroLengthIntArray"]
|
|
setup = "return {};"
|
|
expect_json = '[{"staticSize":0, "dynamicSize":0}]'
|
|
[cases.ref_int10]
|
|
skip = "CodeGen bug with array reference arguments"
|
|
param_types = ["const int(&)[10]"]
|
|
setup = "return {};"
|
|
expect_json = '[{"staticSize":40, "dynamicSize":0, "length":10, "capacity":10, "elementStaticSize":4}]'
|
|
[cases.ref_int0]
|
|
skip = "CodeGen bug with array reference arguments"
|
|
# WARNING: zero-length arrays are handled differently to non-empty arrays.
|
|
# They end up not being treated as containers. This should probably change
|
|
# in the future.
|
|
param_types = ["const ZeroLengthIntArray&"]
|
|
setup = "return {};"
|
|
expect_json = '[{"staticSize":0, "dynamicSize":0}]'
|