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")