summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2019-08-21 09:15:44 +0000
committerRaphael Isemann <teemperor@gmail.com>2019-08-21 09:15:44 +0000
commit4fc1eb55d1973868cc4c1420950ec89e1741bc73 (patch)
treedd59edb944739767216e776ac4ceda365a6e5091 /lldb/packages/Python/lldbsuite/test
parent71d38b3c6217d6b3f0d1a50e7a59d4d78b3ecd59 (diff)
downloadbcm5719-llvm-4fc1eb55d1973868cc4c1420950ec89e1741bc73.tar.gz
bcm5719-llvm-4fc1eb55d1973868cc4c1420950ec89e1741bc73.zip
[lldb][NFC] Add tests for invalid command invocations
llvm-svn: 369506
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/apropos/TestApropos.py19
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py4
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/plugins/commands/TestPluginCommands.py12
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/reproducer/TestReproducer.py20
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/version/TestVersion.py22
-rw-r--r--lldb/packages/Python/lldbsuite/test/help/TestHelp.py16
6 files changed, 93 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/apropos/TestApropos.py b/lldb/packages/Python/lldbsuite/test/functionalities/apropos/TestApropos.py
new file mode 100644
index 00000000000..f84477159d4
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/apropos/TestApropos.py
@@ -0,0 +1,19 @@
+import lldb
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+class AproposTestCase(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ def setUp(self):
+ TestBase.setUp(self)
+
+ @no_debug_info_test
+ def test_apropos(self):
+ self.expect("apropos", error=True,
+ substrs=[' must be called with exactly one argument'])
+ self.expect("apropos a b", error=True,
+ substrs=[' must be called with exactly one argument'])
+ self.expect("apropos ''", error=True,
+ substrs=['\'\' is not a valid search word'])
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py b/lldb/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py
index 1b97c3b0333..d41666a1866 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py
@@ -91,6 +91,10 @@ class CommandLineCompletionTestCase(TestBase):
'arm64'])
@skipIfFreeBSD # timing out on the FreeBSD buildbot
+ def test_plugin_load(self):
+ self.complete_from_to('plugin load ', [])
+
+ @skipIfFreeBSD # timing out on the FreeBSD buildbot
def test_quoted_command(self):
self.complete_from_to('"set',
['"settings" '])
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/plugins/commands/TestPluginCommands.py b/lldb/packages/Python/lldbsuite/test/functionalities/plugins/commands/TestPluginCommands.py
index 39c1f7be559..e81d4076574 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/plugins/commands/TestPluginCommands.py
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/plugins/commands/TestPluginCommands.py
@@ -64,3 +64,15 @@ class PluginCommandTestCase(TestBase):
print(retobj.GetOutput())
self.expect(retobj, substrs=['abc def ghi'], exe=False)
+
+ @no_debug_info_test
+ def test_invalid_plugin_invocation(self):
+ self.expect("plugin load a b",
+ error=True, startstr="error: 'plugin load' requires one argument")
+ self.expect("plugin load",
+ error=True, startstr="error: 'plugin load' requires one argument")
+
+ @no_debug_info_test
+ def test_invalid_plugin_target(self):
+ self.expect("plugin load ThisIsNotAValidPluginName",
+ error=True, startstr="error: no such file")
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/reproducer/TestReproducer.py b/lldb/packages/Python/lldbsuite/test/functionalities/reproducer/TestReproducer.py
new file mode 100644
index 00000000000..bb013409ace
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/reproducer/TestReproducer.py
@@ -0,0 +1,20 @@
+import lldb
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+class ReproducerTestCase(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ def setUp(self):
+ TestBase.setUp(self)
+
+ @no_debug_info_test
+ def test_reproducer_generate_invalid_invocation(self):
+ self.expect("reproducer generate f", error=True,
+ substrs=["'reproducer generate' takes no arguments"])
+
+ @no_debug_info_test
+ def test_reproducer_status_invalid_invocation(self):
+ self.expect("reproducer status f", error=True,
+ substrs=["'reproducer status' takes no arguments"])
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/version/TestVersion.py b/lldb/packages/Python/lldbsuite/test/functionalities/version/TestVersion.py
new file mode 100644
index 00000000000..ec449fd0c39
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/version/TestVersion.py
@@ -0,0 +1,22 @@
+import lldb
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+
+class VersionTestCase(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ def setUp(self):
+ TestBase.setUp(self)
+
+ @no_debug_info_test
+ def test_version(self):
+ # Should work even when people patch the output,
+ # so let's just assume that every vendor at least mentions
+ # 'lldb' in their version string.
+ self.expect("version", substrs=['lldb'])
+
+ @no_debug_info_test
+ def test_version_invalid_invocation(self):
+ self.expect("version a", error=True,
+ substrs=['the version command takes no arguments.'])
diff --git a/lldb/packages/Python/lldbsuite/test/help/TestHelp.py b/lldb/packages/Python/lldbsuite/test/help/TestHelp.py
index ea67b197ce9..55bcbd02be7 100644
--- a/lldb/packages/Python/lldbsuite/test/help/TestHelp.py
+++ b/lldb/packages/Python/lldbsuite/test/help/TestHelp.py
@@ -240,6 +240,22 @@ class HelpCommandTestCase(TestBase):
substrs=["'alongaliasna' is an abbreviation for 'help'"])
@no_debug_info_test
+ def test_hidden_help(self):
+ self.expect("help -h",
+ substrs=["_regexp-bt"])
+
+ @no_debug_info_test
+ def test_help_ambiguous(self):
+ self.expect("help g",
+ substrs=["Help requested with ambiguous command name, possible completions:",
+ "gdb-remote", "gui"])
+
+ @no_debug_info_test
+ def test_help_unknown_flag(self):
+ self.expect("help -z", error=True,
+ substrs=["unknown or ambiguous option"])
+
+ @no_debug_info_test
def test_help_format_output(self):
"""Test that help output reaches TerminalWidth."""
self.runCmd(
OpenPOWER on IntegriCloud