Index: lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/global_constructor/TestBreakpointInGlobalConstructor.py =================================================================== --- lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/global_constructor/TestBreakpointInGlobalConstructor.py +++ lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/global_constructor/TestBreakpointInGlobalConstructor.py @@ -29,8 +29,9 @@ bp_main = lldbutil.run_break_set_by_file_and_line( self, 'main.cpp', self.line_main) + bp_foo = lldbutil.run_break_set_by_file_and_line( - self, 'foo.cpp', self.line_foo) + self, 'foo.cpp', self.line_foo, num_expected_locations=-2) process = target.LaunchSimple( None, env, self.get_process_working_directory()) Index: lldb/packages/Python/lldbsuite/test/lldbutil.py =================================================================== --- lldb/packages/Python/lldbsuite/test/lldbutil.py +++ lldb/packages/Python/lldbsuite/test/lldbutil.py @@ -343,7 +343,9 @@ If extra_options is not None, then we append it to the breakpoint set command. - If num_expected_locations is -1 we check that we got AT LEAST one location, otherwise we check that num_expected_locations equals the number of locations. + If num_expected_locations is -1, we check that we got AT LEAST one location. If num_expected_locations is -2, we check + that we got AT LEAST one location on platforms other than Windows. Otherwise, we check that num_expected_locations + equals the number of locations. If loc_exact is true, we check that there is one location, and that location must be at the input file and line number.""" @@ -563,6 +565,12 @@ if num_locations == -1: test.assertTrue(out_num_locations > 0, "Expecting one or more locations, got none.") + elif num_locations == -2: + # On Windows, breakpoints may remain pending until a DLL is loaded, + # so we allow zero. Other platforms expect at least one. + if test.getPlatform() != "windows": + test.assertTrue(out_num_locations > 0, + "Expecting one or more locations, got none.") else: test.assertTrue( num_locations == out_num_locations,