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