1""" 2Test SBBreakpoint APIs. 3""" 4 5import lldb 6from lldbsuite.test.decorators import * 7from lldbsuite.test.lldbtest import * 8from lldbsuite.test import lldbutil 9 10 11class BreakpointAPITestCase(TestBase): 12 13 mydir = TestBase.compute_mydir(__file__) 14 NO_DEBUG_INFO_TESTCASE = True 15 16 @add_test_categories(['pyapi']) 17 def test_breakpoint_is_valid(self): 18 """Make sure that if an SBBreakpoint gets deleted its IsValid returns false.""" 19 self.build() 20 exe = self.getBuildArtifact("a.out") 21 22 # Create a target by the debugger. 23 target = self.dbg.CreateTarget(exe) 24 self.assertTrue(target, VALID_TARGET) 25 26 # Now create a breakpoint on main.c by name 'AFunction'. 27 breakpoint = target.BreakpointCreateByName('AFunction', 'a.out') 28 #print("breakpoint:", breakpoint) 29 self.assertTrue(breakpoint and 30 breakpoint.GetNumLocations() == 1, 31 VALID_BREAKPOINT) 32 33 # Now delete it: 34 did_delete = target.BreakpointDelete(breakpoint.GetID()) 35 self.assertTrue( 36 did_delete, 37 "Did delete the breakpoint we just created.") 38 39 # Make sure we can't find it: 40 del_bkpt = target.FindBreakpointByID(breakpoint.GetID()) 41 self.assertTrue(not del_bkpt, "We did delete the breakpoint.") 42 43 # Finally make sure the original breakpoint is no longer valid. 44 self.assertTrue( 45 not breakpoint, 46 "Breakpoint we deleted is no longer valid.") 47 48 @add_test_categories(['pyapi']) 49 def test_target_delete(self): 50 """Make sure that if an SBTarget gets deleted the associated 51 Breakpoint's IsValid returns false.""" 52 53 self.build() 54 exe = self.getBuildArtifact("a.out") 55 56 # Create a target by the debugger. 57 target = self.dbg.CreateTarget(exe) 58 self.assertTrue(target, VALID_TARGET) 59 60 # Now create a breakpoint on main.c by name 'AFunction'. 61 breakpoint = target.BreakpointCreateByName('AFunction', 'a.out') 62 #print("breakpoint:", breakpoint) 63 self.assertTrue(breakpoint and 64 breakpoint.GetNumLocations() == 1, 65 VALID_BREAKPOINT) 66 location = breakpoint.GetLocationAtIndex(0) 67 self.assertTrue(location.IsValid()) 68 69 self.assertTrue(self.dbg.DeleteTarget(target)) 70 self.assertFalse(breakpoint.IsValid()) 71 self.assertFalse(location.IsValid()) 72