git add a test file from a previous commit.

A new file was added to the python_api/events test, but I forgot to
git add it before making the PR.  The commit was:

44d9692e6a
This commit is contained in:
Jim Ingham
2024-07-15 16:00:58 -07:00
parent bc1c84aee5
commit a7816c8e00
2 changed files with 43 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
import lldb
import time
class StopHook:
# These dictionaries are used to pass data back to the test case.
# Since these are global, we need to know which test run is which.
# The test passes a key in the extra_args, we use that as the key
# for these dictionaries, and then the test can fetch out the right
# one.
counter = {}
non_stops = {}
def __init__(self, target, extra_args, dict):
self.target = target
self.regs = {}
self.instance = extra_args.GetValueForKey("instance").GetStringValue(100)
StopHook.counter[self.instance] = 0
StopHook.non_stops[self.instance] = 0
def handle_stop(self, exe_ctx, stream):
import time
# All this stop hook does is sleep a bit and count. There was a bug
# where we were sending the secondary listener events when the
# private state thread's DoOnRemoval completed, rather than when
# the primary public process Listener consumes the event. That
# became really clear when a stop hook artificially delayed the
# delivery of the primary listener's event - since IT had to come
# after the stop hook ran.
time.sleep(0.5)
StopHook.counter[self.instance] += 1
# When we were sending events too early, one symptom was the stop
# event would get triggered before the state had been changed.
# Watch for that here.
if exe_ctx.process.GetState() != lldb.eStateStopped:
StopHook.non_stops[self.instance] += 1