"""
Test that step over will let other threads run when necessary
"""
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class StepOverDoesntDeadlockTestCase(TestBase):
def test_step_over(self):
"""Test that when step over steps over a function it lets other threads run."""
self.build()
(target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(
self,
"without running the first thread at least somewhat",
lldb.SBFileSpec("locking.cpp"),
)
# This is just testing that the step over actually completes.
# If the test fails this step never return, so failure is really
# signaled by the test timing out.
thread.StepOver()
state = process.GetState()
self.assertState(state, lldb.eStateStopped)