laser_stream_test: rule 24's pause holds the window open: one arm

Rule 24 proved the pause tier holds lit to the stop, masks FIRE while
held, never writes the latch and resumes lit on the clean verdict. What
only laser_lifecycle_test's verdict-pause session held was that the
window stayed open through it: the resume armed nothing new. Rule 24 now
counts the arms, so that session can leave.

- verdict-rehold: exactly one "laser armed" across the pause, the
  re-hold and the resume.

Proof: laser_stream_test passes whole on a null-sink build of the
grblHAL-glowforge working tree under Linux. pyflakes is clean.

Acceptance: none. The harness runs in grblHAL-glowforge's CI.
This commit is contained in:
ScottW514
2026-10-13 19:10:00 -04:00
parent 8149a44f93
commit 280ceee849
+3
View File
@@ -1319,6 +1319,9 @@ def main():
fail("[verdict-rehold] the client did not resume its own hold once the verdict cleared") fail("[verdict-rehold] the client did not resume its own hold once the verdict cleared")
if "fire masked, job held" not in text: if "fire masked, job held" not in text:
fail("[verdict-rehold] the pause tier did not report the masked hold") fail("[verdict-rehold] the pause tier did not report the masked hold")
if text.count("laser armed") != 1:
fail("[verdict-rehold] armed %d times: the pause tier closed the window and the "
"resume re-armed it (it must hold under the open window)" % text.count("laser armed"))
if "latch locked" in text.split("Pgm End")[0]: if "latch locked" in text.split("Pgm End")[0]:
fail("[verdict-rehold] the pause tier locked the latch") fail("[verdict-rehold] the pause tier locked the latch")
if "ALARM" in text: if "ALARM" in text: