| """ | |
| Tests that we correctly track AST layout info | |
| (specifically alignment) when moving AST nodes | |
| between ClangASTImporter instances (in this case, | |
| from pch to executable to expression AST). | |
| """ | |
| import lldb | |
| import os | |
| from lldbsuite.test.decorators import * | |
| from lldbsuite.test.lldbtest import * | |
| from lldbsuite.test import lldbutil | |
| class TestPchAlignment(TestBase): | |
| SHARED_BUILD_TESTCASE = False | |
| @add_test_categories(["gmodules"]) | |
| def test_expr(self): | |
| self.build() | |
| lldbutil.run_to_source_breakpoint( | |
| self, "return data", lldb.SBFileSpec("main.cpp") | |
| ) | |
| self.expect( | |
| "frame variable data", | |
| substrs=["row = 1", "col = 2", "row = 3", "col = 4", "stride = 5"], | |
| ) | |
| @add_test_categories(["gmodules"]) | |
| def test_frame_var(self): | |
| self.build() | |
| lldbutil.run_to_source_breakpoint( | |
| self, "return data", lldb.SBFileSpec("main.cpp") | |
| ) | |
| self.expect_expr( | |
| "data", | |
| result_type="MatrixData", | |
| result_children=[ | |
| ValueCheck( | |
| name="section", | |
| children=[ | |
| ValueCheck( | |
| name="origin", | |
| children=[ | |
| ValueCheck(name="row", value="1"), | |
| ValueCheck(name="col", value="2"), | |
| ], | |
| ), | |
| ValueCheck( | |
| name="size", | |
| children=[ | |
| ValueCheck(name="row", value="3"), | |
| ValueCheck(name="col", value="4"), | |
| ], | |
| ), | |
| ], | |
| ), | |
| ValueCheck(name="stride", value="5"), | |
| ], | |
| ) |