xref: /llvm-project/lldb/test/API/lang/cpp/gmodules/alignment/TestPchAlignment.py (revision 07ffb7e294767b74e43f90e9ab3d713da929b907)
1*07ffb7e2SMichael Buch"""
2*07ffb7e2SMichael BuchTests that we correctly track AST layout info
3*07ffb7e2SMichael Buch(specifically alignment) when moving AST nodes
4*07ffb7e2SMichael Buchbetween ClangASTImporter instances (in this case,
5*07ffb7e2SMichael Buchfrom pch to executable to expression AST).
6*07ffb7e2SMichael Buch"""
7*07ffb7e2SMichael Buch
8*07ffb7e2SMichael Buchimport lldb
9*07ffb7e2SMichael Buchimport os
10*07ffb7e2SMichael Buchfrom lldbsuite.test.decorators import *
11*07ffb7e2SMichael Buchfrom lldbsuite.test.lldbtest import *
12*07ffb7e2SMichael Buchfrom lldbsuite.test import lldbutil
13*07ffb7e2SMichael Buch
14*07ffb7e2SMichael Buch
15*07ffb7e2SMichael Buchclass TestPchAlignment(TestBase):
16*07ffb7e2SMichael Buch    @add_test_categories(["gmodules"])
17*07ffb7e2SMichael Buch    def test_expr(self):
18*07ffb7e2SMichael Buch        self.build()
19*07ffb7e2SMichael Buch        lldbutil.run_to_source_breakpoint(
20*07ffb7e2SMichael Buch            self, "return data", lldb.SBFileSpec("main.cpp")
21*07ffb7e2SMichael Buch        )
22*07ffb7e2SMichael Buch
23*07ffb7e2SMichael Buch        self.expect(
24*07ffb7e2SMichael Buch            "frame variable data",
25*07ffb7e2SMichael Buch            substrs=["row = 1", "col = 2", "row = 3", "col = 4", "stride = 5"],
26*07ffb7e2SMichael Buch        )
27*07ffb7e2SMichael Buch
28*07ffb7e2SMichael Buch    @add_test_categories(["gmodules"])
29*07ffb7e2SMichael Buch    def test_frame_var(self):
30*07ffb7e2SMichael Buch        self.build()
31*07ffb7e2SMichael Buch        lldbutil.run_to_source_breakpoint(
32*07ffb7e2SMichael Buch            self, "return data", lldb.SBFileSpec("main.cpp")
33*07ffb7e2SMichael Buch        )
34*07ffb7e2SMichael Buch
35*07ffb7e2SMichael Buch        self.expect_expr(
36*07ffb7e2SMichael Buch            "data",
37*07ffb7e2SMichael Buch            result_type="MatrixData",
38*07ffb7e2SMichael Buch            result_children=[
39*07ffb7e2SMichael Buch                ValueCheck(
40*07ffb7e2SMichael Buch                    name="section",
41*07ffb7e2SMichael Buch                    children=[
42*07ffb7e2SMichael Buch                        ValueCheck(
43*07ffb7e2SMichael Buch                            name="origin",
44*07ffb7e2SMichael Buch                            children=[
45*07ffb7e2SMichael Buch                                ValueCheck(name="row", value="1"),
46*07ffb7e2SMichael Buch                                ValueCheck(name="col", value="2"),
47*07ffb7e2SMichael Buch                            ],
48*07ffb7e2SMichael Buch                        ),
49*07ffb7e2SMichael Buch                        ValueCheck(
50*07ffb7e2SMichael Buch                            name="size",
51*07ffb7e2SMichael Buch                            children=[
52*07ffb7e2SMichael Buch                                ValueCheck(name="row", value="3"),
53*07ffb7e2SMichael Buch                                ValueCheck(name="col", value="4"),
54*07ffb7e2SMichael Buch                            ],
55*07ffb7e2SMichael Buch                        ),
56*07ffb7e2SMichael Buch                    ],
57*07ffb7e2SMichael Buch                ),
58*07ffb7e2SMichael Buch                ValueCheck(name="stride", value="5"),
59*07ffb7e2SMichael Buch            ],
60*07ffb7e2SMichael Buch        )
61