| """ | |
| Test SBBreakpoint APIs. | |
| """ | |
| import os, time | |
| import re | |
| import unittest2 | |
| import lldb, lldbutil | |
| from lldbtest import * | |
| class BreakpointAPITestCase(TestBase): | |
| mydir = TestBase.compute_mydir(__file__) | |
| @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") | |
| @python_api_test | |
| @dsym_test | |
| def test_breakpoint_is_valid_with_dsym(self): | |
| """Make sure that if an SBBreakpoint gets deleted its IsValid returns false.""" | |
| self.buildDsym() | |
| self.breakpoint_is_valid() | |
| @python_api_test | |
| @dwarf_test | |
| def test_breakpoint_is_valid_with_dwarf(self): | |
| """Make sure that if an SBBreakpoint gets deleted its IsValid returns false.""" | |
| self.buildDwarf() | |
| self.breakpoint_is_valid () | |
| def setUp(self): | |
| # Call super's setUp(). | |
| TestBase.setUp(self) | |
| def breakpoint_is_valid(self): | |
| """Get an SBBreakpoint object, delete it from the target and make sure it is no longer valid.""" | |
| exe = os.path.join(os.getcwd(), "a.out") | |
| # Create a target by the debugger. | |
| target = self.dbg.CreateTarget(exe) | |
| self.assertTrue(target, VALID_TARGET) | |
| # Now create a breakpoint on main.c by name 'AFunction'. | |
| breakpoint = target.BreakpointCreateByName('AFunction', 'a.out') | |
| #print "breakpoint:", breakpoint | |
| self.assertTrue(breakpoint and | |
| breakpoint.GetNumLocations() == 1, | |
| VALID_BREAKPOINT) | |
| # Now delete it: | |
| did_delete = target.BreakpointDelete(breakpoint.GetID()) | |
| self.assertTrue (did_delete, "Did delete the breakpoint we just created.") | |
| # Make sure we can't find it: | |
| del_bkpt = target.FindBreakpointByID (breakpoint.GetID()) | |
| self.assertTrue (not del_bkpt, "We did delete the breakpoint.") | |
| # Finally make sure the original breakpoint is no longer valid. | |
| self.assertTrue (not breakpoint, "Breakpoint we deleted is no longer valid.") | |
| if __name__ == '__main__': | |
| import atexit | |
| lldb.SBDebugger.Initialize() | |
| atexit.register(lambda: lldb.SBDebugger.Terminate()) | |
| unittest2.main() |