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 def test(self): 13a6926d57SMed Ismail Bennani """Exercise some SBCompileUnit APIs.""" 14a6926d57SMed Ismail Bennani self.build() 15a6926d57SMed Ismail Bennani 16*2238dcc3SJonas Devlieghere (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint( 17*2238dcc3SJonas Devlieghere self, "break here", lldb.SBFileSpec("main.c") 18*2238dcc3SJonas Devlieghere ) 19a6926d57SMed Ismail Bennani self.assertTrue(target, VALID_TARGET) 20a6926d57SMed Ismail Bennani self.assertTrue(process, PROCESS_IS_VALID) 21*2238dcc3SJonas Devlieghere self.assertTrue(bkpt and bkpt.GetNumLocations() == 1, VALID_BREAKPOINT) 22a6926d57SMed Ismail Bennani 23a6926d57SMed Ismail Bennani self.assertTrue( 24a6926d57SMed Ismail Bennani thread.IsValid(), 25*2238dcc3SJonas Devlieghere "There should be a thread stopped due to breakpoint condition", 26*2238dcc3SJonas Devlieghere ) 27a6926d57SMed Ismail Bennani frame0 = thread.GetFrameAtIndex(0) 28a6926d57SMed Ismail Bennani line_entry = frame0.GetLineEntry() 29a6926d57SMed Ismail Bennani 30a6926d57SMed Ismail Bennani sc_list = target.FindCompileUnits(line_entry.GetFileSpec()) 31a6926d57SMed Ismail Bennani self.assertGreater(sc_list.GetSize(), 0) 32a6926d57SMed Ismail Bennani 33a6926d57SMed Ismail Bennani main_cu = sc_list.compile_units[0] 34a6926d57SMed Ismail Bennani self.assertTrue(main_cu.IsValid(), "Main executable CU is not valid") 35a6926d57SMed Ismail Bennani 36*2238dcc3SJonas Devlieghere self.assertEqual( 37*2238dcc3SJonas Devlieghere main_cu.FindLineEntryIndex(line_entry, True), 38*2238dcc3SJonas Devlieghere main_cu.FindLineEntryIndex( 39*2238dcc3SJonas Devlieghere 0, line_entry.GetLine(), line_entry.GetFileSpec(), True 40*2238dcc3SJonas Devlieghere ), 41*2238dcc3SJonas Devlieghere ) 42