From eb8935c9b16b731c6daad4c3f45e3e928fb2a235 Mon Sep 17 00:00:00 2001 From: ScottW514 Date: Mon, 31 Aug 2026 11:08:45 -0400 Subject: [PATCH] forgetest: aa-offset-calibrate waits for the tool's settle; pin forgectrl cooling.aa-offset-calibrate gives the tool 540 s (its 420 s stationary gate plus the six edges) and says so in its steps. Pin forgectrl 7dbb5e1e55a12e6bd1364d920f46c96a3ae2d4ce (the tool settles at the flow tools' gate before its first edge). --- forgetest/forgetest/suite/cooling.py | 23 +++++++++++-------- .../forgectrl/forgectrl-pin.inc | 2 +- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/forgetest/forgetest/suite/cooling.py b/forgetest/forgetest/suite/cooling.py index 60c3057..14d2e6e 100644 --- a/forgetest/forgetest/suite/cooling.py +++ b/forgetest/forgetest/suite/cooling.py @@ -71,16 +71,21 @@ def flow_verify(ctx): ctx.check(fc.wait_idle(120, abort=ctx.aborted), "machine did not return to idle after the diagnostic") +AA_CAL_TIMEOUT_S = 540 # the tool's 420 s settle limit plus its six edges + + @test("cooling.aa-offset-calibrate", title="The air-assist ground shift on the coolant readings measures cleanly", - subsystem="cooling", kind="auto", est_min=2, + subsystem="cooling", kind="auto", est_min=6, covers=_COOL_COVERS, requires=["kernel.latch-locked-idle"], steps=["Coolant loop normal (pump on); the machine idle. The controller is suspended by " - "forgectrl for the duration (about a minute); the air assist cycles three times."], - description="forgectrl's aa-offset-calibrate diagnostic: the air-assist fan stepped idle to " - "run and back three times with the tube dark and the heater off, both coolant " - "sensors read at every edge. The fan's return current shifts both readings by " - "a number of ADC counts the engine adds back (cool_aa_offset_counts). PASS = the " - "tool reports a recommendation, the six edges agree within its spread limit, and " + "forgectrl for the duration; the tool first waits for a stationary loop (up to " + "7 minutes after a heater trial), then the air assist cycles three times."], + description="forgectrl's aa-offset-calibrate diagnostic: the loop settled to the flow " + "tools' stationary gate, then the air-assist fan stepped idle to run and back " + "three times with the tube dark and the heater off, both coolant sensors read " + "at every edge. The fan's return current shifts both readings by a number of " + "ADC counts the engine adds back (cool_aa_offset_counts). PASS = the tool " + "reports a recommendation, the six edges agree within its spread limit, and " "the value sits inside the setting's legal range. The setting is not written.") def aa_offset_calibrate(ctx): fc = ctx.forgectrl @@ -96,7 +101,7 @@ def aa_offset_calibrate(ctx): last_phase = None t0 = time.time() try: - while time.time() - t0 < 300: + while time.time() - t0 < AA_CAL_TIMEOUT_S: ctx.checkpoint() st, d = fc.get("/diag/status") if st == 200 and isinstance(d, dict): @@ -112,7 +117,7 @@ def aa_offset_calibrate(ctx): except BaseException: fc.post("/diag/abort") raise - ctx.check(result is not None, "aa-offset-calibrate did not finish within 5 minutes") + ctx.check(result is not None, "aa-offset-calibrate did not finish within %d s", AA_CAL_TIMEOUT_S) ev["result"] = result ctx.check("error" not in result, "aa-offset-calibrate error: %s", result.get("error")) ctx.log("offset %s counts, spread %s, recommend %s, edges %s", result.get("offset_counts"), diff --git a/meta-forgefirm/recipes-forgefirm/forgectrl/forgectrl-pin.inc b/meta-forgefirm/recipes-forgefirm/forgectrl/forgectrl-pin.inc index 4bff3ed..70d37a2 100644 --- a/meta-forgefirm/recipes-forgefirm/forgectrl/forgectrl-pin.inc +++ b/meta-forgefirm/recipes-forgefirm/forgectrl/forgectrl-pin.inc @@ -2,5 +2,5 @@ # only SRCREV and PV here - the image manifest leaves *-pin.inc out of the # layer content hash because the component entry already identifies the # pinned source (forgefirm-image-manifest.bbclass). -SRCREV = "0e907f7db54b7a4c90b660f198d49e5c66b667b5" +SRCREV = "7dbb5e1e55a12e6bd1364d920f46c96a3ae2d4ce" PV = "0.1.0"