mirror of
https://github.com/intel/llvm.git
synced 2026-01-15 12:25:46 +08:00
[lldb] Test 'command' commands and fix the found crashes
llvm-svn: 370712
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import lldb
|
||||
from lldbsuite.test.lldbtest import *
|
||||
from lldbsuite.test.decorators import *
|
||||
|
||||
class InvalidArgsCommandTestCase(TestBase):
|
||||
|
||||
mydir = TestBase.compute_mydir(__file__)
|
||||
|
||||
@no_debug_info_test
|
||||
def test_script_add(self):
|
||||
self.expect("command script add 1 2", error=True,
|
||||
substrs=["'command script add' requires one argument"])
|
||||
|
||||
self.expect("command script add", error=True,
|
||||
substrs=["'command script add' requires one argument"])
|
||||
|
||||
@no_debug_info_test
|
||||
def test_script_clear(self):
|
||||
self.expect("command script clear f", error=True,
|
||||
substrs=["'command script clear' doesn't take any arguments"])
|
||||
|
||||
@no_debug_info_test
|
||||
def test_script_list(self):
|
||||
self.expect("command script list f", error=True,
|
||||
substrs=["'command script list' doesn't take any arguments"])
|
||||
|
||||
@no_debug_info_test
|
||||
def test_script_import(self):
|
||||
self.expect("command script import", error=True,
|
||||
substrs=["command script import needs one or more arguments"])
|
||||
|
||||
@no_debug_info_test
|
||||
def test_alias(self):
|
||||
self.expect("command alias", error=True,
|
||||
substrs=["'command alias' requires at least two arguments"])
|
||||
|
||||
self.expect("command alias blub foo", error=True,
|
||||
substrs=["error: invalid command given to 'command alias'. 'foo' does not begin with a valid command. No alias created."])
|
||||
|
||||
@no_debug_info_test
|
||||
def test_unalias(self):
|
||||
self.expect("command unalias", error=True,
|
||||
substrs=["must call 'unalias' with a valid alias"])
|
||||
|
||||
@no_debug_info_test
|
||||
def test_delete(self):
|
||||
self.expect("command delete", error=True,
|
||||
substrs=["must call 'command delete' with one or more valid user"])
|
||||
|
||||
@no_debug_info_test
|
||||
def test_regex(self):
|
||||
self.expect("command regex", error=True,
|
||||
substrs=["usage: 'command regex <command-name> "])
|
||||
|
||||
@no_debug_info_test
|
||||
def test_source(self):
|
||||
self.expect("command source", error=True,
|
||||
substrs=["'command source' takes exactly one executable filename argument."])
|
||||
@@ -859,6 +859,7 @@ protected:
|
||||
"defined regular expression command names",
|
||||
GetCommandName().str().c_str());
|
||||
result.SetStatus(eReturnStatusFailed);
|
||||
return false;
|
||||
}
|
||||
|
||||
auto command_name = args[0].ref;
|
||||
@@ -1724,6 +1725,12 @@ public:
|
||||
~CommandObjectCommandsScriptList() override = default;
|
||||
|
||||
bool DoExecute(Args &command, CommandReturnObject &result) override {
|
||||
if (command.GetArgumentCount() != 0) {
|
||||
result.AppendError("'command script list' doesn't take any arguments");
|
||||
result.SetStatus(eReturnStatusFailed);
|
||||
return false;
|
||||
}
|
||||
|
||||
m_interpreter.GetHelp(result, CommandInterpreter::eCommandTypesUserDef);
|
||||
|
||||
result.SetStatus(eReturnStatusSuccessFinishResult);
|
||||
@@ -1744,6 +1751,12 @@ public:
|
||||
|
||||
protected:
|
||||
bool DoExecute(Args &command, CommandReturnObject &result) override {
|
||||
if (command.GetArgumentCount() != 0) {
|
||||
result.AppendError("'command script clear' doesn't take any arguments");
|
||||
result.SetStatus(eReturnStatusFailed);
|
||||
return false;
|
||||
}
|
||||
|
||||
m_interpreter.RemoveAllUser();
|
||||
|
||||
result.SetStatus(eReturnStatusSuccessFinishResult);
|
||||
|
||||
Reference in New Issue
Block a user