[Clang] Prevent `mlink-builtin-bitcode` from internalizing the RPC client (#118661)
[llvm-project.git] / lldb / test / API / commands / expression / call-function / TestCallUserDefinedFunction.py
blob8ddc2c73c05aec6885065f2e66a0d92bddb9c792
1 """
2 Test calling user defined functions using expression evaluation.
4 Note:
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.
8 """
10 import lldb
11 from lldbsuite.test.decorators import *
12 from lldbsuite.test.lldbtest import *
13 from lldbsuite.test import lldbutil
16 class ExprCommandCallUserDefinedFunction(TestBase):
17 def test(self):
18 """Test return values of user defined function calls."""
19 self.build()
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
35 self.expect_expr(
36 'stringCompare((const char*) "Hello world")',
37 result_type="bool",
38 result_value="true",
40 self.expect_expr(
41 'stringCompare((const char*) "Hellworld")',
42 result_type="bool",
43 result_value="false",