95 lines
5.2 KiB
Markdown
95 lines
5.2 KiB
Markdown
# Static RGB, input and standard-return retest fixture
|
|
|
|
EXPERIMENTAL / FROZEN EVIDENCE. No production integration.
|
|
Read the [protocol](../../../docs/design/STEP20C_STATIC_RGB_INPUT_STANDARD_RETEST.md).
|
|
The historical failed campaign is frozen and must never be rerun.
|
|
|
|
`ipc_predicates.py` supplies pure validators shared by replay and the real runner.
|
|
`replay.py` uses actual sealed historical IPC/scene/client observations and
|
|
clearly labelled historical PNGs or synthetic input fixtures. Negative tests
|
|
must reject wrong identities/ownership/geometry/focus/clip and malformed input.
|
|
`pixels.py` compares every RGB pixel, preserves differences, measures actual
|
|
paint and selects points with a 20-pixel interior margin. `support.py` and
|
|
`test-budget.py` implement/test durable exclusive no-refund reservations.
|
|
|
|
Offline preparation, client-only C17 checks and gates:
|
|
|
|
```sh
|
|
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-static-rgb-input-retest/test-budget.py
|
|
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-static-rgb-input-retest/prepare.py
|
|
# LAB is the one newly printed path, registered in the exclusive owner file.
|
|
PYTHONDONTWRITEBYTECODE=1 python "$LAB/fixture/replay.py" --lab "$LAB"
|
|
```
|
|
|
|
Preparation copies the exact qualified static binary, verifies the unchanged
|
|
historical manifests, builds only exact historical clients and freezes the
|
|
fixture inventory. No Mosaic or SceneFX build is allowed. `replay.py` verifies
|
|
source authority, syntax and ledger tests and records the two mandatory PASS
|
|
markers. `run.py` verifies the immutable inventory and all gates before its
|
|
first run reservation. Never replace the owner file, reset the ledger, modify
|
|
the executed fixture or create a second lab to retry.
|
|
|
|
Only after every gate passes, execute the single retained runner:
|
|
|
|
```sh
|
|
PYTHONDONTWRITEBYTECODE=1 python "$LAB/fixture/run.py" "$LAB"
|
|
PYTHONDONTWRITEBYTECODE=1 python "$LAB/fixture/collect.py" "$LAB"
|
|
PYTHONDONTWRITEBYTECODE=1 python "$LAB/fixture/verify.py" "$LAB"
|
|
```
|
|
|
|
One static run, zero pristine runs/builds, one camera correction, three named
|
|
right clicks, eight movements including click positioning, twelve PNGs and
|
|
150 seconds. Reservations precede work and remain consumed on failure.
|
|
Headless/private mode-0700 runtime only, explicit swaymsg -s, owned process
|
|
groups, bounded logs and cleanup. No inherited daily IPC or library override.
|
|
The collector seals source/evidence once, verification never rewrites them.
|
|
Generated C protocols, clients/binaries/builds/logs/PNG/sockets stay outside Git.
|
|
Actual observations and final verdict are recorded below after collection.
|
|
|
|
## Post-run collection distinction
|
|
|
|
The exact executed fixture remains immutable in LAB/fixture. The measurements
|
|
completed, but its final `swaymsg exit` returned 1 after normal compositor exit.
|
|
Raw runtime.json and runner code/status are preserved. `validate_results.py`
|
|
independently rechecks actual PNG, IPC/scene, real recipient events, focus,
|
|
layout/clip and cleanup, and rejects changed RGB, invisible delivery, retained
|
|
clip or abnormal compositor exit. It accepts terminal transport only after all
|
|
scientific measurements, explicit exit, compositor code 0 and terminal EPIPE.
|
|
The post-run collector is retained separately in LAB/postrun-fixture, with its
|
|
own source inventory. Run that collector/validator for this completed campaign;
|
|
do not substitute it for the historical executed fixture or rerun the compositor.
|
|
|
|
## Measured result (one run, no retry)
|
|
|
|
LAB `/home/fy59/swayfx-mosaic-static-rgb-input-retest-hn67lnhq`.
|
|
Scientific FEASIBLE for the exact matrix, architecture
|
|
STATIC_MOSAIC_RGB_INPUT_STANDARD_FEASIBLE_FOR_TESTED_MATRIX. The executed runner
|
|
exited 1 only on final exit IPC; compositor exited 0 after every measured gate.
|
|
Raw failure is retained, never rewritten as a successful runner execution.
|
|
271 damage traces are partial evidence, not every-frame qualification.
|
|
|
|
H2 six PNGs are whole-RGB identical; 182,214 target pixels on H1, zero H2.
|
|
Actual target visible serials 35/36, reference 48/49, standard target 67/68;
|
|
wrong clients have no button delivery. Real H1 splith/clip removal measured,
|
|
standard H1 paint 226,908 pixels. Budget run 1, camera 1, PNG 8, clicks 3,
|
|
movements 6 including click positioning, duration 9.142914 seconds. No second run.
|
|
|
|
Source manifest 31 entries SHA-256
|
|
`cb812ae3a27c9715efce2e1b2cfd36f315ea897d003c77944f688bc931861f1e`;
|
|
evidence 93 entries SHA-256
|
|
`209196b2857381db7a856347dcce45cd3ee33c48c2db0c73777fc982d01ad568`.
|
|
Every entry verifies; runner/pre-run inventory and post-run collector are
|
|
separate retained sources. Result additions here are later documentation.
|
|
|
|
Read-only final validation (no recording into sealed results):
|
|
|
|
```sh
|
|
PYTHONDONTWRITEBYTECODE=1 python "$LAB/postrun-fixture/validate_results.py" "$LAB"
|
|
PYTHONDONTWRITEBYTECODE=1 python "$LAB/postrun-fixture/verify.py" "$LAB"
|
|
```
|
|
|
|
No production readiness, broad static/shared equivalence, popup/effect/buffer
|
|
qualification, full damage/generation or exhaustive ABI approval. STEP20C NEXT,
|
|
production multi-output NOT YET SUPPORTED. The completed retest sources and report are preserved for publication.
|
|
Any later static nested-grab campaign is separate and remains local, uncommitted
|
|
and unpublished. No installation or system/session change.
|