diff options
author | Raphael Isemann <teemperor@gmail.com> | 2018-09-17 12:06:07 +0000 |
---|---|---|
committer | Raphael Isemann <teemperor@gmail.com> | 2018-09-17 12:06:07 +0000 |
commit | 9dd34c838536bdd49feb84ada617130d7e6aa019 (patch) | |
tree | 3217f53f6697f410146aaa2a2812140fda29a60b /lldb/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py | |
parent | ac3a5d66c6d411514397ffd710743f56f7f05c86 (diff) | |
download | bcm5719-llvm-9dd34c838536bdd49feb84ada617130d7e6aa019.tar.gz bcm5719-llvm-9dd34c838536bdd49feb84ada617130d7e6aa019.zip |
Add descriptions to completed expressions
Summary:
Completing inside the expression command now uses the new description API
to also provide additional information to the user. For now this information
are the types of variables/fields and the signatures of completed function calls.
Reviewers: #lldb, JDevlieghere
Reviewed By: JDevlieghere
Subscribers: JDevlieghere, lldb-commits
Differential Revision: https://reviews.llvm.org/D52103
llvm-svn: 342385
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py b/lldb/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py index 2ebc239fa08..c33120c66b7 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py +++ b/lldb/packages/Python/lldbsuite/test/expression_command/completion/TestExprCompletion.py @@ -195,6 +195,39 @@ class CommandLineExprCompletionTestCase(TestBase): self.complete_exactly('expr some_expr.Self(). FooNoArgs', 'expr some_expr.Self(). FooNoArgsBar()') + @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24489") + def test_expr_completion_with_descriptions(self): + self.build() + self.main_source = "main.cpp" + self.main_source_spec = lldb.SBFileSpec(self.main_source) + self.dbg.CreateTarget(self.getBuildArtifact("a.out")) + + (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, + '// Break here', self.main_source_spec) + + self.check_completion_with_desc("expr ", [ + # VarDecls have their type as description. + ["some_expr", "Expr &"], + # builtin types have no description. + ["int", ""], + ["float", ""] + ]) + self.check_completion_with_desc("expr some_expr.", [ + # Functions have their signature as description. + ["some_expr.Self()", "Expr &Self()"], + ["some_expr.operator=(", "inline Expr &operator=(const Expr &)"], + ["some_expr.FooNumbersBar1()", "int FooNumbersBar1()"], + ["some_expr.StaticMemberMethodBar()", "static int StaticMemberMethodBar()"], + ["some_expr.FooWithArgsBar(", "int FooWithArgsBar(int)"], + ["some_expr.FooNoArgsBar()", "int FooNoArgsBar()"], + ["some_expr.FooUnderscoreBar_()", "int FooUnderscoreBar_()"], + ["some_expr.FooWithMultipleArgsBar(", "int FooWithMultipleArgsBar(int, int)"], + ["some_expr.~Expr()", "inline ~Expr()"], + # FieldDecls have their type as description. + ["some_expr.MemberVariableBar", "int"], + ]) + + def assume_no_completions(self, str_input, cursor_pos = None): interp = self.dbg.GetCommandInterpreter() match_strings = lldb.SBStringList() |