diff options
author | Raphael Isemann <teemperor@gmail.com> | 2019-08-21 09:15:44 +0000 |
---|---|---|
committer | Raphael Isemann <teemperor@gmail.com> | 2019-08-21 09:15:44 +0000 |
commit | 4fc1eb55d1973868cc4c1420950ec89e1741bc73 (patch) | |
tree | dd59edb944739767216e776ac4ceda365a6e5091 /lldb/packages/Python/lldbsuite/test | |
parent | 71d38b3c6217d6b3f0d1a50e7a59d4d78b3ecd59 (diff) | |
download | bcm5719-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')
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( |