2 Test SBProcess APIs, including ReadMemory(), WriteMemory(), and others.
7 from lldbsuite
.test
.decorators
import *
8 from lldbsuite
.test
.lldbtest
import *
9 from lldbsuite
.test
import lldbutil
10 from lldbsuite
.test
.lldbutil
import get_stopped_thread
, state_type_to_str
13 class SignalsAPITestCase(TestBase
):
14 NO_DEBUG_INFO_TESTCASE
= True
16 @skipIfWindows # Windows doesn't have signals
17 def test_ignore_signal(self
):
18 """Test Python SBUnixSignals.Suppress/Stop/Notify() API."""
20 exe
= self
.getBuildArtifact("a.out")
21 self
.runCmd("file " + exe
, CURRENT_EXECUTABLE_SET
)
23 target
= self
.dbg
.CreateTarget(exe
)
24 self
.assertTrue(target
, VALID_TARGET
)
27 "main.cpp", "// Set break point at this line and setup signal ignores."
29 breakpoint
= target
.BreakpointCreateByLocation("main.cpp", line
)
30 self
.assertTrue(breakpoint
, VALID_BREAKPOINT
)
32 # Launch the process, and do not stop at the entry point.
33 process
= target
.LaunchSimple(None, None, self
.get_process_working_directory())
35 thread
= get_stopped_thread(process
, lldb
.eStopReasonBreakpoint
)
37 thread
.IsValid(), "There should be a thread stopped due to breakpoint"
40 unix_signals
= process
.GetUnixSignals()
41 sigint
= unix_signals
.GetSignalNumberFromName("SIGINT")
42 unix_signals
.SetShouldSuppress(sigint
, True)
43 unix_signals
.SetShouldStop(sigint
, False)
44 unix_signals
.SetShouldNotify(sigint
, False)
48 process
.state
, lldb
.eStateExited
, "The process should have exited"
51 process
.GetExitStatus(), 0, "The process should have returned 0"