""" Tests stepping with scripted thread plans. """ import lldb import lldbsuite.test.lldbutil as lldbutil from lldbsuite.test.lldbtest import * class StepScriptedTestCase(TestBase): mydir = TestBase.compute_mydir(__file__) NO_DEBUG_INFO_TESTCASE = True def test_standard_step_out(self): """Tests stepping with the scripted thread plan laying over a standard thread plan for stepping out.""" self.build() self.main_source_file = lldb.SBFileSpec("main.c") self.step_out_with_scripted_plan("Steps.StepOut") def test_scripted_step_out(self): """Tests stepping with the scripted thread plan laying over an another scripted thread plan for stepping out.""" self.build() self.main_source_file = lldb.SBFileSpec("main.c") self.step_out_with_scripted_plan("Steps.StepScripted") def setUp(self): TestBase.setUp(self) self.runCmd("command script import Steps.py") def step_out_with_scripted_plan(self, name): (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, "Set a breakpoint here", self.main_source_file) frame = thread.GetFrameAtIndex(0) self.assertEqual("foo", frame.GetFunctionName()) err = thread.StepUsingScriptedThreadPlan(name) self.assertTrue(err.Success(), "Failed to step out") frame = thread.GetFrameAtIndex(0) self.assertEqual("main", frame.GetFunctionName())