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 def test_compile_unit_find_line_entry_index(self): 12 """ Test the CompileUnit LineEntryIndex lookup API """ 13 self.build() 14 exe = self.getBuildArtifact("a.out") 15 self.target = self.dbg.CreateTarget(exe) 16 self.assertTrue(self.target.IsValid(), "Target is not valid") 17 18 self.file = lldb.SBFileSpec("main.c") 19 sc_list = self.target.FindCompileUnits(self.file) 20 self.assertEqual(len(sc_list), 1) 21 cu = sc_list[0].GetCompileUnit() 22 self.assertTrue(cu.IsValid(), "CompileUnit is not valid") 23 24 # First look for valid line 25 self.line = line_number("main.c", "int change_me") 26 self.assertNotEqual(cu.FindLineEntryIndex(0, self.line, self.file), 27 lldb.LLDB_INVALID_LINE_NUMBER) 28 29 # Then look for a line out of bound 30 self.assertEqual(cu.FindLineEntryIndex(0, 42, self.file), 31 lldb.LLDB_INVALID_LINE_NUMBER) 32