diff options
Diffstat (limited to 'lldb/test/python_api/section/TestSectionAPI.py')
-rwxr-xr-x | lldb/test/python_api/section/TestSectionAPI.py | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/lldb/test/python_api/section/TestSectionAPI.py b/lldb/test/python_api/section/TestSectionAPI.py new file mode 100755 index 00000000000..5644bb44608 --- /dev/null +++ b/lldb/test/python_api/section/TestSectionAPI.py @@ -0,0 +1,120 @@ +""" +Test SBSection APIs. +""" + +import unittest2 +from lldbtest import * + +class SectionAPITestCase(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") + @python_api_test + @dsym_test + def test_get_target_byte_size_with_dsym(self): + d = {'EXE': 'a.out'} + self.buildDsym(dictionary=d) + self.setTearDownCleanup(dictionary=d) + target = self.create_simple_target('a.out') + + # find the .data section of the main module + data_section = self.find_data_section(target) + + self.assertEquals(data_section.target_byte_size, 1) + + @python_api_test + @dwarf_test + def test_get_target_byte_size_with_dwarf(self): + d = {'EXE': 'b.out'} + self.buildDwarf(dictionary=d) + self.setTearDownCleanup(dictionary=d) + target = self.create_simple_target('b.out') + + # find the .data section of the main module + data_section = self.find_data_section(target) + + self.assertEquals(data_section.target_byte_size, 1) + + def create_simple_target(self, fn): + exe = os.path.join(os.getcwd(), fn) + target = self.dbg.CreateTarget(exe) + self.assertTrue(target, VALID_TARGET) + return target + + def find_data_section(self, target): + mod = target.GetModuleAtIndex(0) + data_section = None + for s in mod.sections: + if ".data" == s.name: + data_section = s + break + + self.assertIsNotNone(data_section) + return data_section + +if __name__ == '__main__': + import atexit + lldb.SBDebugger.Initialize() + atexit.register(lambda: lldb.SBDebugger.Terminate()) + unittest2.main() +""" +Test SBSection APIs. +""" + +import unittest2 +from lldbtest import * + +class SectionAPITestCase(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") + @python_api_test + @dsym_test + def test_get_target_byte_size_with_dsym(self): + d = {'EXE': 'a.out'} + self.buildDsym(dictionary=d) + self.setTearDownCleanup(dictionary=d) + target = self.create_simple_target('a.out') + + # find the .data section of the main module + data_section = self.find_data_section(target) + + self.assertEquals(data_section.target_byte_size, 1) + + @python_api_test + @dwarf_test + def test_get_target_byte_size_with_dwarf(self): + d = {'EXE': 'b.out'} + self.buildDwarf(dictionary=d) + self.setTearDownCleanup(dictionary=d) + target = self.create_simple_target('b.out') + + # find the .data section of the main module + data_section = self.find_data_section(target) + + self.assertEquals(data_section.target_byte_size, 1) + + def create_simple_target(self, fn): + exe = os.path.join(os.getcwd(), fn) + target = self.dbg.CreateTarget(exe) + self.assertTrue(target, VALID_TARGET) + return target + + def find_data_section(self, target): + mod = target.GetModuleAtIndex(0) + data_section = None + for s in mod.sections: + if ".data" == s.name: + data_section = s + break + + self.assertIsNotNone(data_section) + return data_section + +if __name__ == '__main__': + import atexit + lldb.SBDebugger.Initialize() + atexit.register(lambda: lldb.SBDebugger.Terminate()) + unittest2.main() |