]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_set_restart/TestBreakpointSetRestart.py
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / packages / Python / lldbsuite / test / functionalities / breakpoint / breakpoint_set_restart / TestBreakpointSetRestart.py
1 """
2 Test inferior restart when breakpoint is set on running target.
3 """
4
5 import os
6 import lldb
7 from lldbsuite.test.lldbtest import *
8
9
10 class BreakpointSetRestart(TestBase):
11
12     mydir = TestBase.compute_mydir(__file__)
13     BREAKPOINT_TEXT = 'Set a breakpoint here'
14
15     def test_breakpoint_set_restart(self):
16         self.build()
17
18         cwd = os.getcwd()
19         exe = os.path.join(cwd, 'a.out')
20
21         target = self.dbg.CreateTarget(exe)
22         self.assertTrue(target, VALID_TARGET)
23
24         self.dbg.SetAsync(True)
25         process = target.LaunchSimple(
26             None, None, self.get_process_working_directory())
27         self.assertTrue(process, PROCESS_IS_VALID)
28
29         event = lldb.SBEvent()
30         # Wait for inferior to transition to running state
31         while self.dbg.GetListener().WaitForEvent(2, event):
32             if lldb.SBProcess.GetStateFromEvent(event) == lldb.eStateRunning:
33                 break
34
35         bp = target.BreakpointCreateBySourceRegex(
36             self.BREAKPOINT_TEXT, lldb.SBFileSpec(
37                 os.path.join(
38                     cwd, 'main.cpp')))
39         self.assertTrue(
40             bp.IsValid() and bp.GetNumLocations() == 1,
41             VALID_BREAKPOINT)
42
43         while self.dbg.GetListener().WaitForEvent(2, event):
44             if lldb.SBProcess.GetStateFromEvent(
45                     event) == lldb.eStateStopped and lldb.SBProcess.GetRestartedFromEvent(event):
46                 continue
47             if lldb.SBProcess.GetStateFromEvent(event) == lldb.eStateRunning:
48                 continue
49             self.fail(
50                 "Setting a breakpoint generated an unexpected event: %s" %
51                 lldb.SBDebugger.StateAsCString(
52                     lldb.SBProcess.GetStateFromEvent(event)))