the test has to be "function name contains the name we used to specify the breakpoint" not IS the name...
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
"""
|
|
Test setting a breakpoint on an overloaded function by name.
|
|
"""
|
|
|
|
import re
|
|
import lldb
|
|
from lldbsuite.test.decorators import *
|
|
from lldbsuite.test.lldbtest import *
|
|
from lldbsuite.test import lldbutil
|
|
|
|
|
|
class TestBreakpointOnOverload(TestBase):
|
|
|
|
mydir = TestBase.compute_mydir(__file__)
|
|
|
|
def check_breakpoint(self, name):
|
|
bkpt = self.target.BreakpointCreateByName(name)
|
|
self.assertEqual(bkpt.num_locations, 1, "Got one location")
|
|
addr = bkpt.locations[0].GetAddress()
|
|
self.assertTrue(addr.function.IsValid(), "Got a real function")
|
|
# On Window, the name of the function includes the return value.
|
|
# We still succeed in setting the breakpoint, but the resultant
|
|
# name is not the same.
|
|
# So just look for the name we used for the breakpoint in the
|
|
# function name, rather than doing an equality check.
|
|
self.assertIn(name, addr.function.name, "Got the right name")
|
|
|
|
def test_break_on_overload(self):
|
|
self.build()
|
|
self.target = lldbutil.run_to_breakpoint_make_target(self)
|
|
self.check_breakpoint("a_function(int)")
|
|
self.check_breakpoint("a_function(double)")
|
|
self.check_breakpoint("a_function(int, double)")
|
|
self.check_breakpoint("a_function(double, int)")
|
|
|
|
|
|
|