teak-llvm/lldb/packages/Python/lldbsuite/test/python_api/breakpoint/TestBreakpointAPI.py
Zachary Turner c432c8f856 Move lldb/test to lldb/packages/Python/lldbsuite/test.
This is the conclusion of an effort to get LLDB's Python code
structured into a bona-fide Python package.  This has a number
of benefits, but most notably the ability to more easily share
Python code between different but related pieces of LLDB's Python
infrastructure (for example, `scripts` can now share code with
`test`).

llvm-svn: 251532
2015-10-28 17:43:26 +00:00

45 lines
1.4 KiB
Python

"""
Test SBBreakpoint APIs.
"""
from __future__ import print_function
import use_lldb_suite
import os, time
import re
import lldb, lldbutil
from lldbtest import *
class BreakpointAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@add_test_categories(['pyapi'])
def test_breakpoint_is_valid(self):
"""Make sure that if an SBBreakpoint gets deleted its IsValid returns false."""
self.build()
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.")