object-introspection/test/integration/enums_params.toml
Jake Hillion 5071519e45 oil v2
2023-08-23 15:59:53 +01:00

65 lines
1.8 KiB
TOML

includes = ["vector"]
definitions = '''
namespace MyNS {
enum class ScopedEnum {
Zero = 0,
One = 1,
Two = 2,
};
enum UNSCOPED_ENUM {
ZERO = 0,
ONE = 1,
TWO = 2,
};
enum class EnumWithGaps {
Five = 5,
MinusTwo = -2,
Twenty = 20,
};
} // MyNS
template <MyNS::ScopedEnum val>
class MyClass {
int n;
};
template <MyNS::EnumWithGaps val>
class ClassGaps {
int n;
};
'''
[cases]
[cases.scoped_enum_type]
param_types = ["const std::vector<MyNS::ScopedEnum>&"]
setup = "return {};"
[cases.scoped_enum_val_cast]
param_types = ["const std::array<int, static_cast<size_t>(MyNS::ScopedEnum::Two)>&"]
setup = "return {};"
expect_json = '[{"staticSize":8, "length":2, "capacity":2, "elementStaticSize":4}]'
expect_json_v2 = '[{"staticSize":8, "dynamicSize":0, "length":2, "capacity":2}]'
[cases.scoped_enum_val]
param_types = ["const MyClass<MyNS::ScopedEnum::One>&"]
setup = "return {};"
expect_json = '[{"staticSize":4, "dynamicSize":0, "exclusiveSize":0}]'
[cases.scoped_enum_val_gaps]
param_types = ["const ClassGaps<MyNS::EnumWithGaps::Twenty>&"]
setup = "return {};"
expect_json = '[{"staticSize":4, "dynamicSize":0, "exclusiveSize":0}]'
[cases.scoped_enum_val_negative]
param_types = ["const ClassGaps<MyNS::EnumWithGaps::MinusTwo>&"]
setup = "return {};"
expect_json = '[{"staticSize":4, "dynamicSize":0, "exclusiveSize":0}]'
[cases.unscoped_enum_type]
param_types = ["const std::vector<MyNS::UNSCOPED_ENUM>&"]
setup = "return {};"
[cases.unscoped_enum_val_cast]
param_types = ["const std::array<int, MyNS::ONE>&"]
setup = "return {};"
expect_json = '[{"staticSize":4, "length":1, "capacity":1, "elementStaticSize":4}]'
expect_json_v2 = '[{"staticSize":4, "length":1, "capacity":1}]'