mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 16:51:12 -07:00
A stdlib-only daemon on the dev image (HTTP :8090) that runs the acceptance catalog against the machine from a self-contained page, keeps the append-only result log under /data/forgetest, and exports the release artifact the gate reads. Tests declare kind (auto / operator / live), hardware (api / takeover), coverage globs, prerequisites, and core membership; a test's domain fingerprint is the hash of the manifest files its globs select plus the platform and its own implementation, so a PASS stays valid exactly while nothing it covers changed. Campaign rules: a FAIL ends the campaign, the core (image health, kernel latch and drills, one live emission witness) is never inherited, invalidate-all forces a full campaign, no SKIP. Live tests need the operator acknowledgment and the physical arm press through the controller; takeover tests stop forgectrl for the duration with a crash-recoverable marker; the tool never touches the laser latch. Catalog v1: 24 tests ported from the proven bench drills with their recorded pass criteria (image, kernel K1-K3 and fire A/B/U, forgectrl API and logs, motion incl. dead-man, cooling, live laser, camera, update, cloud). The bench tab lists every scripts/bench tool and runs the board-side ones as subprocesses (takeover tools wrapped). 44 host unit tests, including the gate verification fixtures. Installed only by forgefirm-image-dev, with the bench scripts under /usr/share/forgetest/bench.
30 lines
1.0 KiB
BlitzBasic
30 lines
1.0 KiB
BlitzBasic
require forgefirm-image.bb
|
|
|
|
DESCRIPTION = "OpenGlow/ForgeFIRM development image for Glowforge"
|
|
|
|
# Strict superset of forgefirm-image: everything the main image ships, plus
|
|
# debug tooling. forgetest is the release acceptance tool (HTTP :8090) and
|
|
# the bench diagnostics page; it belongs to the bench, never to a release
|
|
# image (docs/ACCEPTANCE.md).
|
|
IMAGE_INSTALL += " \
|
|
forgectrl \
|
|
forgetest \
|
|
"
|
|
|
|
# debug-tweaks (passwordless root, root SSH login) belongs ONLY to the dev
|
|
# image - never the release image. It lives here, not in the shared kas
|
|
# local.conf, so the release forgefirm-image cannot inherit it.
|
|
IMAGE_FEATURES += " \
|
|
tools-debug \
|
|
debug-tweaks \
|
|
"
|
|
|
|
# Dev images boot from SD, never from a 200 MiB eMMC slot: lift the slot
|
|
# ceiling and give the filesystem generous working space instead.
|
|
IMAGE_ROOTFS_MAXSIZE = ""
|
|
IMAGE_ROOTFS_EXTRA_SPACE = "262144"
|
|
|
|
# Dev builds identify by build timestamp (matches the artifact name),
|
|
# tagged so a bench machine is never mistaken for a release.
|
|
FORGEFIRM_VERSION_STRING = "${DATETIME} (dev)"
|