summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/packages/Python/lldbsuite/test/settings/TestSettings.py39
-rw-r--r--lldb/source/Commands/CommandObjectSettings.cpp6
2 files changed, 42 insertions, 3 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/settings/TestSettings.py b/lldb/packages/Python/lldbsuite/test/settings/TestSettings.py
index 7f5be886a15..de56195ab2f 100644
--- a/lldb/packages/Python/lldbsuite/test/settings/TestSettings.py
+++ b/lldb/packages/Python/lldbsuite/test/settings/TestSettings.py
@@ -481,6 +481,45 @@ class SettingsCommandTestCase(TestBase):
substrs=['disassembly-format (format-string) = "foo "'])
self.runCmd("settings clear disassembly-format", check=False)
+ def test_settings_list(self):
+ # List settings (and optionally test the filter to only show 'target' settings).
+ self.expect("settings list target", substrs=["language", "arg0", "detach-on-error"])
+ self.expect("settings list target", matching=False, substrs=["packet-timeout"])
+ self.expect("settings list", substrs=["language", "arg0", "detach-on-error", "packet-timeout"])
+
+ def test_settings_remove_single(self):
+ # Set some environment variables and use 'remove' to delete them.
+ self.runCmd("settings set target.env-vars a=b c=d")
+ self.expect("settings show target.env-vars", substrs=["a=b", "c=d"])
+ self.runCmd("settings remove target.env-vars a")
+ self.expect("settings show target.env-vars", matching=False, substrs=["a=b"])
+ self.expect("settings show target.env-vars", substrs=["c=d"])
+ self.runCmd("settings remove target.env-vars c")
+ self.expect("settings show target.env-vars", matching=False, substrs=["a=b", "c=d"])
+
+ def test_settings_remove_multiple(self):
+ self.runCmd("settings set target.env-vars a=b c=d e=f")
+ self.expect("settings show target.env-vars", substrs=["a=b", "c=d", "e=f"])
+ self.runCmd("settings remove target.env-vars a e")
+ self.expect("settings show target.env-vars", matching=False, substrs=["a=b", "e=f"])
+ self.expect("settings show target.env-vars", substrs=["c=d"])
+
+ def test_settings_remove_nonexistent_value(self):
+ self.expect("settings remove target.env-vars doesntexist", error=True,
+ substrs=["no value found named 'doesntexist'"])
+
+ def test_settings_remove_nonexistent_settings(self):
+ self.expect("settings remove doesntexist alsodoesntexist", error=True,
+ substrs=["error: invalid value path 'doesntexist'"])
+
+ def test_settings_remove_missing_arg(self):
+ self.expect("settings remove", error=True,
+ substrs=["'settings remove' takes an array or dictionary item, or"])
+
+ def test_settings_remove_empty_arg(self):
+ self.expect("settings remove ''", error=True,
+ substrs=["'settings remove' command requires a valid variable name"])
+
def test_all_settings_exist(self):
self.expect("settings show",
substrs=["auto-confirm",
diff --git a/lldb/source/Commands/CommandObjectSettings.cpp b/lldb/source/Commands/CommandObjectSettings.cpp
index 200ef34d8a1..2bdbcd52bc1 100644
--- a/lldb/source/Commands/CommandObjectSettings.cpp
+++ b/lldb/source/Commands/CommandObjectSettings.cpp
@@ -638,8 +638,8 @@ protected:
const size_t argc = cmd_args.GetArgumentCount();
if (argc == 0) {
- result.AppendError("'settings set' takes an array or dictionary item, or "
- "an array followed by one or more indexes, or a "
+ result.AppendError("'settings remove' takes an array or dictionary item, "
+ "or an array followed by one or more indexes, or a "
"dictionary followed by one or more key names to "
"remove");
result.SetStatus(eReturnStatusFailed);
@@ -649,7 +649,7 @@ protected:
const char *var_name = cmd_args.GetArgumentAtIndex(0);
if ((var_name == nullptr) || (var_name[0] == '\0')) {
result.AppendError(
- "'settings set' command requires a valid variable name");
+ "'settings remove' command requires a valid variable name");
result.SetStatus(eReturnStatusFailed);
return false;
}
OpenPOWER on IntegriCloud