2 Test that we can listen to modules loaded events.
5 from __future__ import print_function
12 from lldbsuite.test.decorators import *
13 from lldbsuite.test.lldbtest import *
14 from lldbsuite.test import lldbutil
19 class ListenToModuleLoadedEvents (TestBase):
21 mydir = TestBase.compute_mydir(__file__)
24 # Call super's setUp().
27 def test_receiving_breakpoint_added(self):
28 """Test that we get breakpoint added events, waiting on event classes on the debugger"""
31 my_listener = lldb.SBListener("test_listener")
33 my_listener.StartListeningForEventClass(
35 lldb.SBTarget.GetBroadcasterClassName(),
36 lldb.SBTarget.eBroadcastBitBreakpointChanged)
38 exe = self.getBuildArtifact("a.out")
40 target = self.dbg.CreateTarget(exe)
42 bkpt = target.BreakpointCreateByName("main")
44 event = lldb.SBEvent()
45 my_listener.WaitForEvent(1, event)
47 self.assertTrue(event.IsValid(), "Got a valid event.")
49 lldb.SBBreakpoint.EventIsBreakpointEvent(event),
50 "It is a breakpoint event.")
51 self.assertTrue(lldb.SBBreakpoint.GetBreakpointEventTypeFromEvent(
52 event) == lldb.eBreakpointEventTypeAdded, "It is a breakpoint added event.")
54 bkpt == lldb.SBBreakpoint.GetBreakpointFromEvent(event),
55 "It is our breakpoint.")
57 # Now make sure if we stop listening for events we don't get them:
59 my_listener.StopListeningForEventClass(
61 lldb.SBTarget.GetBroadcasterClassName(),
62 lldb.SBTarget.eBroadcastBitBreakpointChanged)
63 my_listener.StopListeningForEvents(
64 target.GetBroadcaster(),
65 lldb.SBTarget.eBroadcastBitBreakpointChanged)
67 bkpt2 = target.BreakpointCreateByName("main")
68 my_listener.WaitForEvent(1, event)
71 "We don't get events we aren't listening to.")