1a6926d57SMed Ismail Bennani""" 2a6926d57SMed Ismail BennaniTest SBCompileUnit APIs. 3a6926d57SMed Ismail Bennani""" 4a6926d57SMed Ismail Bennani 5a6926d57SMed Ismail Bennaniimport lldb 6a6926d57SMed Ismail Bennanifrom lldbsuite.test.decorators import * 7a6926d57SMed Ismail Bennanifrom lldbsuite.test.lldbtest import * 8a6926d57SMed Ismail Bennanifrom lldbsuite.test import lldbutil 9a6926d57SMed Ismail Bennani 10a6926d57SMed Ismail Bennani 11a6926d57SMed Ismail Bennaniclass CompileUnitAPITestCase(TestBase): 12a6926d57SMed Ismail Bennani 13a6926d57SMed Ismail Bennani def setUp(self): 14a6926d57SMed Ismail Bennani TestBase.setUp(self) 15a6926d57SMed Ismail Bennani 16a6926d57SMed Ismail Bennani def test(self): 17a6926d57SMed Ismail Bennani """Exercise some SBCompileUnit APIs.""" 18a6926d57SMed Ismail Bennani self.build() 19a6926d57SMed Ismail Bennani 20a6926d57SMed Ismail Bennani (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, 'break here', lldb.SBFileSpec('main.c')) 21a6926d57SMed Ismail Bennani self.assertTrue(target, VALID_TARGET) 22a6926d57SMed Ismail Bennani self.assertTrue(process, PROCESS_IS_VALID) 23a6926d57SMed Ismail Bennani self.assertTrue(bkpt and bkpt.GetNumLocations() == 1, 24a6926d57SMed Ismail Bennani VALID_BREAKPOINT) 25a6926d57SMed Ismail Bennani 26a6926d57SMed Ismail Bennani self.assertTrue( 27a6926d57SMed Ismail Bennani thread.IsValid(), 28a6926d57SMed Ismail Bennani "There should be a thread stopped due to breakpoint condition") 29a6926d57SMed Ismail Bennani frame0 = thread.GetFrameAtIndex(0) 30a6926d57SMed Ismail Bennani line_entry = frame0.GetLineEntry() 31a6926d57SMed Ismail Bennani 32a6926d57SMed Ismail Bennani sc_list = target.FindCompileUnits(line_entry.GetFileSpec()) 33a6926d57SMed Ismail Bennani self.assertGreater(sc_list.GetSize(), 0) 34a6926d57SMed Ismail Bennani 35a6926d57SMed Ismail Bennani main_cu = sc_list.compile_units[0] 36a6926d57SMed Ismail Bennani self.assertTrue(main_cu.IsValid(), "Main executable CU is not valid") 37a6926d57SMed Ismail Bennani 38*174cf2f7SMed Ismail Bennani self.assertEqual(main_cu.FindLineEntryIndex(line_entry, True), 39a6926d57SMed Ismail Bennani main_cu.FindLineEntryIndex(0, line_entry.GetLine(), 40a6926d57SMed Ismail Bennani line_entry.GetFileSpec(), True)) 41a6926d57SMed Ismail Bennani 42a6926d57SMed Ismail Bennani 43