[lldb] Add expect_expr function for testing expression evaluation in dotests.
authorRaphael Isemann <teemperor@gmail.com>
Wed, 15 Jan 2020 12:03:25 +0000 (13:03 +0100)
committerRaphael Isemann <teemperor@gmail.com>
Wed, 15 Jan 2020 12:04:04 +0000 (13:04 +0100)
commit13f22f5d5958a46db1212a083a426e339204c783
treec999bda147630d970d9f8e1b5b79851893ae4143
parent06cfcdcca7de9c88a1e885eff0d0c4c07090ad48
[lldb] Add expect_expr function for testing expression evaluation in dotests.

Summary:
This patch adds a new function to lldbtest: `expect_expr`. This function is supposed to replace the current approach
of calling `expect`/`runCmd` with `expr`, `p` etc.

`expect_expr` allows evaluating expressions and matching their value/summary/type/error message without
having to do any string matching that might allow unintended passes (e.g., `self.expect("expr 3+4", substrs=["7"])`
can unexpectedly pass for results like `(Class7) $0 = 7`, `(int) $7 = 22`, `(int) $0 = 77` and so on).

This only uses the function in a few places to test and demonstrate it. I'll migrate the tests in follow up commits.

Reviewers: JDevlieghere, shafik, labath

Reviewed By: labath

Subscribers: christof, abidh, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D70314
lldb/packages/Python/lldbsuite/test/commands/expression/call-function/TestCallBuiltinFunction.py
lldb/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
lldb/packages/Python/lldbsuite/test/lldbtest.py