summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/lldbtest.py
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lldbtest.py')
-rw-r--r--lldb/packages/Python/lldbsuite/test/lldbtest.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py
index ffd56fcb0ed..2b83d26d234 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -2366,6 +2366,45 @@ FileCheck output:
self.assertTrue(matched if matching else not matched,
msg if msg else EXP_MSG(str, output, exe))
+ def expect_expr(
+ self,
+ expr,
+ result_summary=None,
+ result_value=None,
+ result_type=None,
+ error_msg=None,
+ ):
+ """
+ Evaluates the given expression and verifies the result.
+ :param expr: The expression as a string.
+ :param result_summary: The summary that the expression should have. None if the summary should not be checked.
+ :param result_value: The value that the expression should have. None if the value should not be checked.
+ :param result_type: The type that the expression result should have. None if the type should not be checked.
+ :param error_msg: The error message the expression should return. None if the error output should not be checked.
+ """
+ self.assertTrue(expr.strip() == expr, "Expression contains trailing/leading whitespace: '" + expr + "'")
+
+ frame = self.frame()
+ eval_result = frame.EvaluateExpression(expr)
+
+ if error_msg:
+ self.assertFalse(eval_result.IsValid())
+ self.assertEqual(error_msg, eval_result.GetError().GetCString())
+ return
+
+ if not eval_result.GetError().Success():
+ self.assertTrue(eval_result.GetError().Success(),
+ "Unexpected failure with msg: " + eval_result.GetError().GetCString())
+
+ if result_type:
+ self.assertEqual(result_type, eval_result.GetTypeName())
+
+ if result_value:
+ self.assertEqual(result_value, eval_result.GetValue())
+
+ if result_summary:
+ self.assertEqual(result_summary, eval_result.GetSummary())
+
def invoke(self, obj, name, trace=False):
"""Use reflection to call a method dynamically with no argument."""
trace = (True if traceAlways else trace)
OpenPOWER on IntegriCloud