object-introspection/test/integration/inheritance_polymorphic_non_dynamic_base.toml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

177 lines
4.7 KiB
TOML
Raw Normal View History

2023-01-20 14:05:36 +00:00
includes = ["vector"]
definitions = '''
class A {
public:
int int_a;
};
class B : public A {
public:
2023-02-02 23:19:48 +00:00
virtual ~B() = default;
2023-01-20 14:05:36 +00:00
virtual void myfunc() {}
std::vector<int> vec_b;
};
class C : public B {
public:
2023-02-02 23:19:48 +00:00
virtual ~C() = default;
2023-01-20 14:05:36 +00:00
virtual void myfunc() override {}
int int_c;
};
'''
[cases]
[cases.a_as_a]
oil_skip = "Polymorphic inheritance disabled in OIL"
2023-06-22 13:24:39 +01:00
cli_options = ["-fpolymorphic-inheritance"]
2023-01-20 14:05:36 +00:00
param_types = ["const A&"]
arg_types = ["A"]
setup = "return {};"
expect_json = '''[{
"typeName":"A",
"staticSize":4,
"dynamicSize":0,
"members":[
{"name":"int_a", "staticSize":4, "dynamicSize":0}
]}]'''
[cases.a_no_polymorphic]
param_types = ["const A&"]
arg_types = ["A"]
setup = 'return {};'
expect_json = '''[{
"typeName":"A",
"staticSize":4,
"dynamicSize":0,
"members":[
{"name":"int_a", "staticSize":4, "dynamicSize":0}
]}]'''
2023-01-20 14:05:36 +00:00
[cases.b_as_a]
oil_skip = "Polymorphic inheritance disabled in OIL"
2023-06-22 13:24:39 +01:00
cli_options = ["-fpolymorphic-inheritance"]
2023-01-20 14:05:36 +00:00
param_types = ["const A&"]
arg_types = ["B"]
setup = '''
B b;
b.vec_b = {1,2,3};
return b;
'''
expect_json = '''[{
"typeName":"A",
"staticSize":4,
"dynamicSize":0,
"members":[
{"name":"int_a", "staticSize":4, "dynamicSize":0}
]}]'''
[cases.b_as_b]
oil_skip = "Polymorphic inheritance disabled in OIL"
2023-06-22 13:24:39 +01:00
cli_options = ["-fpolymorphic-inheritance"]
2023-01-20 14:05:36 +00:00
param_types = ["const B&"]
arg_types = ["B"]
setup = '''
B b;
b.vec_b = {1,2,3};
return b;
'''
expect_json = '''[{
"typeName":"B",
"staticSize":40,
"dynamicSize":12,
"members":[
{"name":"int_a", "staticSize":4, "dynamicSize":0},
{"staticSize":8, "dynamicSize":0},
{"name":"vec_b", "staticSize":24, "dynamicSize":12, "length":3, "capacity":3, "elementStaticSize":4}
]}]'''
[cases.b_no_polymorphic]
param_types = ["const B&"]
arg_types = ["B"]
setup = '''
B b;
b.vec_b = {1,2,3};
return b;
'''
expect_json = '''[{
"typeName":"B",
"staticSize":40,
"dynamicSize":12,
"members":[
{"name":"int_a", "staticSize":4, "dynamicSize":0},
{"staticSize":8, "dynamicSize":0},
{"name":"vec_b", "staticSize":24, "dynamicSize":12, "length":3, "capacity":3, "elementStaticSize":4}
]}]'''
2023-01-20 14:05:36 +00:00
[cases.c_as_a]
oil_skip = "Polymorphic inheritance disabled in OIL"
2023-06-22 13:24:39 +01:00
cli_options = ["-fpolymorphic-inheritance"]
2023-01-20 14:05:36 +00:00
param_types = ["const A&"]
arg_types = ["C"]
setup = '''
C c;
c.vec_b = {1,2,3};
return c;
'''
expect_json = '''[{
"typeName":"A",
"staticSize":4,
"dynamicSize":0,
"members":[
{"name":"int_a", "staticSize":4, "dynamicSize":0}
]}]'''
[cases.c_as_b]
oil_skip = "Polymorphic inheritance disabled in OIL"
2023-06-22 13:24:39 +01:00
cli_options = ["-fpolymorphic-inheritance"]
2023-01-20 14:05:36 +00:00
param_types = ["const B&"]
arg_types = ["C"]
setup = '''
C c;
c.vec_b = {1,2,3};
return c;
'''
expect_json = '''[{
"typeName":"C",
"staticSize":48,
2023-01-20 14:05:36 +00:00
"dynamicSize":12,
"members":[
{"name":"int_a", "staticSize":4, "dynamicSize":0},
{"staticSize":8, "dynamicSize":0},
{"name":"vec_b", "staticSize":24, "dynamicSize":12, "length":3, "capacity":3, "elementStaticSize":4},
{"name":"int_c", "staticSize":4, "dynamicSize":0}
2023-01-20 14:05:36 +00:00
]}]'''
[cases.c_as_c]
oil_skip = "Polymorphic inheritance disabled in OIL"
2023-06-22 13:24:39 +01:00
cli_options = ["-fpolymorphic-inheritance"]
2023-01-20 14:05:36 +00:00
param_types = ["const C&"]
arg_types = ["C"]
setup = '''
C c;
c.vec_b = {1,2,3};
return c;
'''
expect_json = '''[{
"typeName":"C",
"staticSize":48,
"dynamicSize":12,
"members":[
{"name":"int_a", "staticSize":4, "dynamicSize":0},
{"staticSize":8, "dynamicSize":0},
{"name":"vec_b", "staticSize":24, "dynamicSize":12, "length":3, "capacity":3, "elementStaticSize":4},
{"name":"int_c", "staticSize":4, "dynamicSize":0}
]}]'''
[cases.c_no_polymorphic]
param_types = ["const C&"]
arg_types = ["C"]
setup = '''
C c;
c.vec_b = {1,2,3};
return c;
'''
expect_json = '''[{
"typeName":"C",
"staticSize":48,
"dynamicSize":12,
"members":[
{"name":"int_a", "staticSize":4, "dynamicSize":0},
{"staticSize":8, "dynamicSize":0},
{"name":"vec_b", "staticSize":24, "dynamicSize":12, "length":3, "capacity":3, "elementStaticSize":4},
{"name":"int_c", "staticSize":4, "dynamicSize":0}
]}]'''