blob: 70588b64e85e5c9706f8a61dd1be8c81b960f843 [file] [edit]
"""Helper for TestStatusline.test_scripted_command_output_not_eaten.
Registers a command that floods output while emitting progress events, so the
statusline redraws (on the event thread) concurrently with the command output.
"""
import lldb
@lldb.command("statusline_flood")
def statusline_flood(debugger, command, result, internal_dict):
# The caller sets the count so the test can widen the flood and give the
# event thread a chance to redraw the statusline mid-output. The loop never
# sleeps: a redraw must be able to land between prints for a race to show.
count = int(command) if command.strip() else 50
progress = lldb.SBProgress("flood", "working", count, debugger)
for i in range(count):
print("MARKER_{:04d}".format(i), flush=True)
progress.Increment(1, "step {}".format(i))
progress.Finalize()