import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class TestCase(TestBase):
@skipIfRemote
@skipIfWindows
@skipIfLinux
@expectedFailureAll(oslist=["freebsd"])
@expectedFailureNetBSD
@no_debug_info_test
def test(self):
self.build()
lldbutil.run_to_source_breakpoint(
self, "// break here", lldb.SBFileSpec("main.c")
)
self.target().DeleteAllBreakpoints()
self.assertEqual(self.target().GetExecutable().GetFilename(), "a.out")
breakpoint = self.target().BreakpointCreateBySourceRegex(
"// break after dlopen", lldb.SBFileSpec("main.c")
)
self.assertNotEqual(breakpoint.GetNumResolvedLocations(), 0)
stopped_threads = lldbutil.continue_to_breakpoint(self.process(), breakpoint)
self.assertEqual(len(stopped_threads), 1)
self.assertEqual(self.target().GetExecutable().GetFilename(), "a.out")
err = self.process().Kill()
self.assertSuccess(err)
lldbutil.run_to_breakpoint_do_run(self, self.target(), breakpoint)