xref: /llvm-project/lldb/test/API/lang/cpp/sizeof/TestCPPSizeof.py (revision 2238dcc39358353cac21df75c3c3286ab20b8f53)
1import lldb
2from lldbsuite.test.decorators import *
3from lldbsuite.test.lldbtest import *
4from lldbsuite.test import lldbutil
5
6
7class TestCase(TestBase):
8    def test(self):
9        self.build()
10        self.createTestTarget()
11
12        # Empty structs/classes have size 1 in C++.
13        self.expect_expr("sizeof(Empty) == sizeof_empty", result_value="true")
14        self.expect_expr(
15            "sizeof(EmptyClass) == sizeof_empty_class", result_value="true"
16        )
17        self.expect_expr(
18            "sizeof(EmptyClassAligned) == sizeof_empty_class_aligned",
19            result_value="true",
20        )
21        self.expect_expr(
22            "sizeof(ClassEmptyMember) == sizeof_class_empty_member", result_value="true"
23        )
24        self.expect_expr("sizeof(SingleMember) == sizeof_single", result_value="true")
25        self.expect_expr(
26            "sizeof(SingleMemberClass) == sizeof_single_class", result_value="true"
27        )
28        self.expect_expr("sizeof(PaddingMember) == sizeof_padding", result_value="true")
29        self.expect_expr(
30            "sizeof(PaddingMemberClass) == sizeof_padding_class", result_value="true"
31        )
32