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