2 Test calling user defined functions using expression evaluation.
5 LLDBs current first choice of evaluating functions is using the IR interpreter,
6 which is only supported on Hexagon. Otherwise JIT is used for the evaluation.
11 from lldbsuite
.test
.decorators
import *
12 from lldbsuite
.test
.lldbtest
import *
13 from lldbsuite
.test
import lldbutil
16 class ExprCommandCallUserDefinedFunction(TestBase
):
18 """Test return values of user defined function calls."""
20 lldbutil
.run_to_source_breakpoint(
21 self
, "// break here", lldb
.SBFileSpec("main.cpp")
24 # Test recursive function call.
25 self
.expect_expr("fib(5)", result_type
="unsigned int", result_value
="5")
27 # Test function with more than one parameter
28 self
.expect_expr("add(4, 8)", result_type
="int", result_value
="12")
30 # Test nesting function calls in function parameters
31 self
.expect_expr("add(add(5,2),add(3,4))", result_type
="int", result_value
="14")
32 self
.expect_expr("add(add(5,2),fib(5))", result_type
="int", result_value
="12")
34 # Test function with pointer parameter
36 'stringCompare((const char*) "Hello world")',
41 'stringCompare((const char*) "Hellworld")',