forked from OSchip/llvm-project
Make SBDebugger.RunCommandInterpreter callable from Python.
Authored by: Lukas Boger Differential Revision: https://reviews.llvm.org/D61602 llvm-svn: 360730
This commit is contained in:
parent
e8f83befd5
commit
7d7b788fb1
|
@ -0,0 +1,38 @@
|
|||
"""Test the RunCommandInterpreter API."""
|
||||
|
||||
import os
|
||||
import lldb
|
||||
from lldbsuite.test.decorators import *
|
||||
from lldbsuite.test.lldbtest import *
|
||||
|
||||
class CommandRunInterpreterAPICase(TestBase):
|
||||
|
||||
mydir = TestBase.compute_mydir(__file__)
|
||||
|
||||
def setUp(self):
|
||||
TestBase.setUp(self)
|
||||
|
||||
self.stdin_path = self.getBuildArtifact("stdin.txt")
|
||||
|
||||
with open(self.stdin_path, 'w') as input_handle:
|
||||
input_handle.write("nonexistingcommand\nquit")
|
||||
|
||||
with open(self.stdin_path, 'r') as input_handle:
|
||||
self.dbg.SetInputFileHandle(input_handle, False)
|
||||
|
||||
# No need to track the output
|
||||
devnull = open(os.devnull, 'w')
|
||||
self.dbg.SetOutputFileHandle(devnull, False)
|
||||
self.dbg.SetErrorFileHandle(devnull, False)
|
||||
|
||||
@add_test_categories(['pyapi'])
|
||||
def test_run_session_with_error_and_quit(self):
|
||||
"""Run non-existing and quit command returns appropriate values"""
|
||||
|
||||
n_errors, quit_requested, has_crashed = self.dbg.RunCommandInterpreter(
|
||||
True, False, lldb.SBCommandInterpreterRunOptions(), 0, False,
|
||||
False)
|
||||
|
||||
self.assertGreater(n_errors, 0)
|
||||
self.assertTrue(quit_requested)
|
||||
self.assertFalse(has_crashed)
|
|
@ -423,6 +423,32 @@ public:
|
|||
lldb::SBTypeSynthetic
|
||||
GetSyntheticForType (lldb::SBTypeNameSpecifier);
|
||||
|
||||
%feature("docstring",
|
||||
"Launch a command interpreter session. Commands are read from standard input or
|
||||
from the input handle specified for the debugger object. Output/errors are
|
||||
similarly redirected to standard output/error or the configured handles.
|
||||
|
||||
@param[in] auto_handle_events If true, automatically handle resulting events.
|
||||
@param[in] spawn_thread If true, start a new thread for IO handling.
|
||||
@param[in] options Parameter collection of type SBCommandInterpreterRunOptions.
|
||||
@param[in] num_errors Initial error counter.
|
||||
@param[in] quit_requested Initial quit request flag.
|
||||
@param[in] stopped_for_crash Initial crash flag.
|
||||
|
||||
@return
|
||||
A tuple with the number of errors encountered by the interpreter, a boolean
|
||||
indicating whether quitting the interpreter was requested and another boolean
|
||||
set to True in case of a crash.
|
||||
|
||||
Example:
|
||||
|
||||
# Start an interactive lldb session from a script (with a valid debugger object
|
||||
# created beforehand):
|
||||
n_errors, quit_requested, has_crashed = debugger.RunCommandInterpreter(True,
|
||||
False, lldb.SBCommandInterpreterRunOptions(), 0, False, False)") RunCommandInterpreter;
|
||||
%apply int& INOUT { int& num_errors };
|
||||
%apply bool& INOUT { bool& quit_requested };
|
||||
%apply bool& INOUT { bool& stopped_for_crash };
|
||||
void
|
||||
RunCommandInterpreter (bool auto_handle_events,
|
||||
bool spawn_thread,
|
||||
|
|
Loading…
Reference in New Issue