
`SBCommandInterpreter::CommandOverrideCallback` was not being exposed to the Python API and has no coverage in the API test suite, so this commits exposes and adds a test for it. Doing this involves also adding a typemap for the callback used for this function so that it matches the functionality of other callback functions that are exposed to Python.
32 lines
934 B
Python
32 lines
934 B
Python
from typing_extensions import override
|
|
import lldb
|
|
from lldbsuite.test.decorators import *
|
|
from lldbsuite.test.lldbtest import *
|
|
from lldbsuite.test import lldbutil
|
|
|
|
|
|
class CommandOverrideCallback(TestBase):
|
|
def setUp(self):
|
|
TestBase.setUp(self)
|
|
self.line = line_number("main.c", "Hello world.")
|
|
|
|
def test_command_override_callback(self):
|
|
self.build()
|
|
exe = self.getBuildArtifact("a.out")
|
|
|
|
target = self.dbg.CreateTarget(exe)
|
|
self.assertTrue(target, VALID_TARGET)
|
|
|
|
ci = self.dbg.GetCommandInterpreter()
|
|
self.assertTrue(ci, VALID_COMMAND_INTERPRETER)
|
|
|
|
command_arg = ""
|
|
|
|
def foo(*command_args):
|
|
nonlocal command_arg
|
|
command_arg = command_args[0]
|
|
|
|
self.assertTrue(ci.SetCommandOverrideCallback("breakpoint set", foo))
|
|
self.expect("breakpoint set -n main")
|
|
self.assertTrue(command_arg == "breakpoint")
|