ctlport_test: the polling sender is a Grbl sender, not a product

The NewlinePoller docstring and poll_case's named one sender product
as the sender that polls '?' with an end of line behind it, and quoted
that product's poll rate beside the harness's own. The behavior under
test is the controller port's: an empty line is not the sender
speaking, a port jog is never refused for a poll, and every poll draws
its one ok. Which sender polls, and how often, is not the contract;
the harness's own rate (four times a second, period 0.25) is the fact
that matters. Both docstrings now say a Grbl sender that polls, and
the comparative rate is gone.

Proof: docstrings only, no behavior change. python3 -B -m py_compile
and pyflakes are clean on scripts/bench/ctlport_test.py, and the file
names no product. The harness runs in grblHAL-glowforge CI (python3
forgefirm/scripts/bench/ctlport_test.py build/grblHAL_glowforge).

Acceptance: none; docstrings of a harness outside every covers map.
This commit is contained in:
ScottW514
2026-10-15 22:42:49 -04:00
parent 68e9d3fb8e
commit b2a011ac08
+5 -6
View File
@@ -379,8 +379,8 @@ def test_sender_wins_queued(s):
class NewlinePoller(threading.Thread):
"""A sender that polls the way LightBurn does: '?' with an end of line
behind it, on a timer. The '?' is a realtime character; the end of line
"""A sender that polls '?' with an end of line behind it, on a timer,
as some Grbl senders do. The '?' is a realtime character; the end of line
is an empty line, which the core answers ok."""
def __init__(self, sender, period=0.25):
@@ -402,10 +402,9 @@ class NewlinePoller(threading.Thread):
def poll_case(tag, eol):
"""An empty line is not the sender speaking. With a sender polling
'?'<eol> four times a second (LightBurn polls about twice a second): a
port jog is never refused for it, a long port jog runs whole under it,
and every poll still draws its one ok, during the jog too. A real line
still goes first."""
'?'<eol> four times a second: a port jog is never refused for it, a
long port jog runs whole under it, and every poll still draws its one
ok, during the jog too. A real line still goes first."""
s = Session(eol=eol)
try:
s.sender.wait_state("Idle")