1*99451b44SJordan Rupprecht""" 2*99451b44SJordan RupprechtTest SBSection APIs. 3*99451b44SJordan Rupprecht""" 4*99451b44SJordan Rupprecht 5*99451b44SJordan Rupprecht 6*99451b44SJordan Rupprecht 7*99451b44SJordan Rupprechtfrom lldbsuite.test.decorators import * 8*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import * 9*99451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil 10*99451b44SJordan Rupprecht 11*99451b44SJordan Rupprecht 12*99451b44SJordan Rupprechtclass SectionAPITestCase(TestBase): 13*99451b44SJordan Rupprecht 14*99451b44SJordan Rupprecht mydir = TestBase.compute_mydir(__file__) 15*99451b44SJordan Rupprecht 16*99451b44SJordan Rupprecht @add_test_categories(['pyapi']) 17*99451b44SJordan Rupprecht def test_get_target_byte_size(self): 18*99451b44SJordan Rupprecht d = {'EXE': 'b.out'} 19*99451b44SJordan Rupprecht self.build(dictionary=d) 20*99451b44SJordan Rupprecht self.setTearDownCleanup(dictionary=d) 21*99451b44SJordan Rupprecht exe = self.getBuildArtifact('b.out') 22*99451b44SJordan Rupprecht target = self.dbg.CreateTarget(exe) 23*99451b44SJordan Rupprecht self.assertTrue(target, VALID_TARGET) 24*99451b44SJordan Rupprecht 25*99451b44SJordan Rupprecht # find the .data section of the main module 26*99451b44SJordan Rupprecht mod = target.GetModuleAtIndex(0) 27*99451b44SJordan Rupprecht data_section = None 28*99451b44SJordan Rupprecht for s in mod.sections: 29*99451b44SJordan Rupprecht sect_type = s.GetSectionType() 30*99451b44SJordan Rupprecht if sect_type == lldb.eSectionTypeData: 31*99451b44SJordan Rupprecht data_section = s 32*99451b44SJordan Rupprecht break 33*99451b44SJordan Rupprecht elif sect_type == lldb.eSectionTypeContainer: 34*99451b44SJordan Rupprecht for i in range(s.GetNumSubSections()): 35*99451b44SJordan Rupprecht ss = s.GetSubSectionAtIndex(i) 36*99451b44SJordan Rupprecht sect_type = ss.GetSectionType() 37*99451b44SJordan Rupprecht if sect_type == lldb.eSectionTypeData: 38*99451b44SJordan Rupprecht data_section = ss 39*99451b44SJordan Rupprecht break 40*99451b44SJordan Rupprecht 41*99451b44SJordan Rupprecht self.assertIsNotNone(data_section) 42*99451b44SJordan Rupprecht self.assertEqual(data_section.target_byte_size, 1) 43