mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 08:41:13 -07:00
exthost.core-range: the evidence is a dict
The test wrote its evidence through ev.note(), which the run's evidence does not have: it is a plain dict, as every other test uses it. On the bench the test stopped at its first record with an AttributeError, an ERROR before anything was asked of the host. The records are keys now, and the three ranges are one list. The description said a package asking for a range was installed; the test only inspects, and it says accepted. No host test runs a suite function, which is how this reached the image. Proof: on the bench reference, image 20260922152358 with this file bind-mounted over the installed one, exthost.core-range PASS: the image stamps "20260922152358", which is no version; inspect answers core_checked false with no range, with a minimum of 99.0.0, a maximum of 0.0.1, and both ends, and installs nothing.
This commit is contained in:
@@ -40,7 +40,7 @@ from .exthost import FWUP, _forgeext, _read, _write
|
||||
"build writes. This test asks the host what it made of that file rather than reading the "
|
||||
"file and believing it. On the dev image a campaign runs on, the first word is a build "
|
||||
"stamp and no version: inspect answers core_checked false, and a package asking for a "
|
||||
"minimum far above or a maximum far below is installed all the same, because a range "
|
||||
"minimum far above or a maximum far below is accepted all the same, because a range "
|
||||
"cannot be judged against a stamp and the host does not guess one. A dev image that "
|
||||
"began stamping something version-shaped would fail here, which is the regression this "
|
||||
"test is for; the judging branch belongs to forgeext's version_test, since no image "
|
||||
@@ -59,8 +59,7 @@ def core_range(ctx):
|
||||
version = stamp[1:] if stamp[:1] == "v" and stamp[1:2].isdigit() else stamp
|
||||
looks_like_a_version = bool(re.match(r"^\d+\.\d+\.\d+(-[0-9A-Za-z.-]+)?$", version))
|
||||
ctx.log("/etc/forgefirm-version: %r -> %r", stamp, version)
|
||||
ev.note("firmware version", {"file": stamp, "version": version,
|
||||
"looks_like_a_version": looks_like_a_version})
|
||||
ev["firmware_version"] = {"file": stamp, "version": version, "looks_like_a_version": looks_like_a_version}
|
||||
|
||||
# The suite ships on the dev image alone, so this is the only shape a
|
||||
# campaign can meet. If it ever is not, the image changed and the
|
||||
@@ -99,16 +98,17 @@ def core_range(ctx):
|
||||
ctx.check(r.get("ok") is True, "a package with no core range was refused: %s", r.get("error"))
|
||||
ctx.check(r.get("core_checked") is False,
|
||||
"the host judged a range against the stamp %r: core_checked %s", stamp, r.get("core_checked"))
|
||||
ev.note("no range", r)
|
||||
ev["no_range"] = r
|
||||
|
||||
# A stamp is no version, so neither end of a range is judged and
|
||||
# neither refuses the package. The host says so rather than
|
||||
# refusing on a comparison it cannot make.
|
||||
ev["ranges"] = []
|
||||
for core in ({"min": "99.0.0"}, {"max": "0.0.1"}, {"min": "0.0.1", "max": "0.0.2"}):
|
||||
r = _forgeext("inspect", packed(core))
|
||||
ctx.check(r.get("ok") is True and r.get("core_checked") is False,
|
||||
"the host judged %s against the stamp anyway: %s", core, r)
|
||||
ev.note("stamp vs %s" % core, r)
|
||||
ev["ranges"].append({"core": core, "inspect": r})
|
||||
|
||||
ctx.check("org.forgetest.corerange" not in
|
||||
[x.get("id") for x in (_forgeext("list").get("packages") or [])],
|
||||
|
||||
Reference in New Issue
Block a user