1*99451b44SJordan Rupprecht"""
2*99451b44SJordan RupprechtTests calling a function by basename
3*99451b44SJordan Rupprecht"""
4*99451b44SJordan Rupprecht
5*99451b44SJordan Rupprechtimport lldb
6*99451b44SJordan Rupprechtfrom lldbsuite.test.decorators import *
7*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import *
8*99451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil
9*99451b44SJordan Rupprecht
10*99451b44SJordan Rupprecht
11*99451b44SJordan Rupprechtclass CallCPPFunctionTestCase(TestBase):
12*99451b44SJordan Rupprecht
13*99451b44SJordan Rupprecht    mydir = TestBase.compute_mydir(__file__)
14*99451b44SJordan Rupprecht
15*99451b44SJordan Rupprecht    def setUp(self):
16*99451b44SJordan Rupprecht        TestBase.setUp(self)
17*99451b44SJordan Rupprecht        self.line = line_number('main.cpp', '// breakpoint')
18*99451b44SJordan Rupprecht
19*99451b44SJordan Rupprecht    def test_with_run_command(self):
20*99451b44SJordan Rupprecht        """Test calling a function by basename"""
21*99451b44SJordan Rupprecht        self.build()
22*99451b44SJordan Rupprecht        self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
23*99451b44SJordan Rupprecht
24*99451b44SJordan Rupprecht        lldbutil.run_break_set_by_file_and_line(
25*99451b44SJordan Rupprecht            self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
26*99451b44SJordan Rupprecht
27*99451b44SJordan Rupprecht        self.runCmd("process launch", RUN_SUCCEEDED)
28*99451b44SJordan Rupprecht
29*99451b44SJordan Rupprecht        # The stop reason of the thread should be breakpoint.
30*99451b44SJordan Rupprecht        self.expect("thread list",
31*99451b44SJordan Rupprecht                    STOPPED_DUE_TO_BREAKPOINT,
32*99451b44SJordan Rupprecht                    substrs=['stopped', 'stop reason = breakpoint'])
33*99451b44SJordan Rupprecht
34*99451b44SJordan Rupprecht        self.expect_expr("a_function_to_call()", result_type="int", result_value="0")
35