1""" 2Test that SBCompileUnit::FindLineEntryIndex works correctly. 3""" 4 5import lldb 6import lldbsuite.test.lldbutil as lldbutil 7from lldbsuite.test.lldbtest import * 8 9class FindLineEntry(TestBase): 10 11 mydir = TestBase.compute_mydir(__file__) 12 13 def test_compile_unit_find_line_entry_index(self): 14 """ Test the CompileUnit LineEntryIndex lookup API """ 15 self.build() 16 exe = self.getBuildArtifact("a.out") 17 self.target = self.dbg.CreateTarget(exe) 18 self.assertTrue(self.target.IsValid(), "Target is not valid") 19 20 self.file = lldb.SBFileSpec("main.c") 21 sc_list = self.target.FindCompileUnits(self.file) 22 self.assertEqual(len(sc_list), 1) 23 cu = sc_list[0].GetCompileUnit() 24 self.assertTrue(cu.IsValid(), "CompileUnit is not valid") 25 26 # First look for valid line 27 self.line = line_number("main.c", "int change_me") 28 self.assertNotEqual(cu.FindLineEntryIndex(0, self.line, self.file), 29 lldb.LLDB_INVALID_LINE_NUMBER) 30 31 # Then look for a line out of bound 32 self.assertEqual(cu.FindLineEntryIndex(0, 42, self.file), 33 lldb.LLDB_INVALID_LINE_NUMBER) 34