1from typing_extensions import override 2import lldb 3from lldbsuite.test.decorators import * 4from lldbsuite.test.lldbtest import * 5from lldbsuite.test import lldbutil 6 7 8class CommandOverrideCallback(TestBase): 9 def setUp(self): 10 TestBase.setUp(self) 11 self.line = line_number("main.c", "Hello world.") 12 13 def test_command_override_callback(self): 14 self.build() 15 exe = self.getBuildArtifact("a.out") 16 17 target = self.dbg.CreateTarget(exe) 18 self.assertTrue(target, VALID_TARGET) 19 20 ci = self.dbg.GetCommandInterpreter() 21 self.assertTrue(ci, VALID_COMMAND_INTERPRETER) 22 23 command_arg = "" 24 25 def foo(*command_args): 26 nonlocal command_arg 27 command_arg = command_args[0] 28 29 self.assertTrue(ci.SetCommandOverrideCallback("breakpoint set", foo)) 30 self.expect("breakpoint set -n main") 31 self.assertTrue(command_arg == "breakpoint") 32