Author: jimingham Date: 2024-02-28T17:26:29-08:00 New Revision: 5784bf85bc5143266565586ece0113cd773a8616
URL: https://github.com/llvm/llvm-project/commit/5784bf85bc5143266565586ece0113cd773a8616 DIFF: https://github.com/llvm/llvm-project/commit/5784bf85bc5143266565586ece0113cd773a8616.diff LOG: Fix interactive use of "command script add". (#83350) There was a think-o in a previous commit that made us only able to define 1 line commands when using command script add interactively. There was also no test for this feature, so I fixed the think-o and added a test. Added: lldb/test/API/commands/command/script/cmd_file.lldb Modified: lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp lldb/test/API/commands/command/script/TestCommandScript.py Removed: ################################################################################ diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp index a1ad3f569ec71a..ce52f359524785 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp @@ -1417,7 +1417,7 @@ bool ScriptInterpreterPythonImpl::GenerateScriptAliasFunction( sstr.Printf("def %s (debugger, args, exe_ctx, result, internal_dict):", auto_generated_function_name.c_str()); - if (!GenerateFunction(sstr.GetData(), user_input, /*is_callback=*/true) + if (!GenerateFunction(sstr.GetData(), user_input, /*is_callback=*/false) .Success()) return false; diff --git a/lldb/test/API/commands/command/script/TestCommandScript.py b/lldb/test/API/commands/command/script/TestCommandScript.py index 850552032902fd..fdd5216a1c6cc5 100644 --- a/lldb/test/API/commands/command/script/TestCommandScript.py +++ b/lldb/test/API/commands/command/script/TestCommandScript.py @@ -216,3 +216,17 @@ def test_persistence(self): # The result object will be replaced by an empty result object (in the # "Started" state). self.expect("script str(persistence.result_copy)", substrs=["Started"]) + + def test_interactive(self): + """ + Test that we can add multiple lines interactively. + """ + interp = self.dbg.GetCommandInterpreter() + cmd_file = self.getSourcePath("cmd_file.lldb") + result = lldb.SBCommandReturnObject() + interp.HandleCommand(f"command source {cmd_file}", result) + self.assertCommandReturn(result, "Sourcing the command should cause no errors.") + self.assertTrue(interp.UserCommandExists("my_cmd"), "Command defined.") + interp.HandleCommand("my_cmd", result) + self.assertCommandReturn(result, "Running the command succeeds") + self.assertIn("My Command Result", result.GetOutput(), "Command was correct") diff --git a/lldb/test/API/commands/command/script/cmd_file.lldb b/lldb/test/API/commands/command/script/cmd_file.lldb new file mode 100644 index 00000000000000..1589a7cfe0b8d9 --- /dev/null +++ b/lldb/test/API/commands/command/script/cmd_file.lldb @@ -0,0 +1,4 @@ +command script add my_cmd +result.PutCString("My Command Result") +result.SetStatus(lldb.eReturnStatusSuccessFinishResult) +DONE _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits