This reverts commit 82a3883715.
The original version had a copy-paste error: using the Interrupt timeout
for the ResumeSynchronous wait, which is clearly wrong. This error would
have been evident with real use, but the interrupt is long enough that it
only caused one testsuite failure (in the Swift fork).
Anyway, I found that mistake and fixed it and checked all the other places
where I had to plumb through a timeout, and added a test with a short
interrupt timeout stepping over a function that takes 3x the interrupt timeout
to complete, so that should detect a similar mistake in the future.
37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
"""
|
|
This is to make sure that the interrupt timer
|
|
doesn't influence synchronous user level stepping.
|
|
"""
|
|
|
|
import lldb
|
|
import lldbsuite.test.lldbutil as lldbutil
|
|
from lldbsuite.test.lldbtest import *
|
|
|
|
|
|
class TestStepVrsInterruptTimeout(TestBase):
|
|
|
|
mydir = TestBase.compute_mydir(__file__)
|
|
|
|
NO_DEBUG_INFO_TESTCASE = True
|
|
|
|
def test_step_vrs_interrupt(self):
|
|
"""This test is to make sure that the interrupt timeout
|
|
doesn't cause use to flub events from a synchronous step."""
|
|
self.build()
|
|
self.main_source_file = lldb.SBFileSpec("main.cpp")
|
|
self.sample_test()
|
|
|
|
def sample_test(self):
|
|
"""You might use the test implementation in several ways, say so here."""
|
|
|
|
# This function starts a process, "a.out" by default, sets a source
|
|
# breakpoint, runs to it, and returns the thread, process & target.
|
|
# It optionally takes an SBLaunchOption argument if you want to pass
|
|
# arguments or environment variables.
|
|
(target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self,
|
|
"Set a breakpoint here", self.main_source_file)
|
|
self.dbg.SetAsync(False)
|
|
self.runCmd("settings set target.process.interrupt-timeout 1")
|
|
thread.StepOver()
|
|
self.assertEqual(process.GetState(), lldb.eStateStopped, "Stopped like we should")
|