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