brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 8ddc2c7 Raw
45 lines · python
1"""2Test calling user defined functions using expression evaluation.3 4Note: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.7 8"""9 10import lldb11from lldbsuite.test.decorators import *12from lldbsuite.test.lldbtest import *13from lldbsuite.test import lldbutil14 15 16class 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")22        )23 24        # Test recursive function call.25        self.expect_expr("fib(5)", result_type="unsigned int", result_value="5")26 27        # Test function with more than one parameter28        self.expect_expr("add(4, 8)", result_type="int", result_value="12")29 30        # Test nesting function calls in function parameters31        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")33 34        # Test function with pointer parameter35        self.expect_expr(36            'stringCompare((const char*) "Hello world")',37            result_type="bool",38            result_value="true",39        )40        self.expect_expr(41            'stringCompare((const char*) "Hellworld")',42            result_type="bool",43            result_value="false",44        )45