Files
clang-p2996/lldb/test/API/functionalities/breakpoint/breakpoint_on_overload/TestBreakOnOverload.py
Jim Ingham 05f10ae0d8 On Windows, the function name contains the return parameter, so
the test has to be "function name contains the name we used to specify
the breakpoint" not IS the name...
2022-02-16 19:10:03 -08:00

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)")