Commit graph

1 commit

Author SHA1 Message Date
0596fc66ed test(cad): measure the widget layer — 13.15%, and six files at zero
Some checks failed
email.yml / test(cad): measure the widget layer — 13.15%, and six files at zero (push) Failing after 0s
repo hygiene / hygiene (push) Has been cancelled
The number nobody had. The engine harness is structurally blind to
viewport*.rs, workspace*.rs and friends, so "97.14% covered" has always
been a statement about the smaller half. With the Makepad Linux packages
installed, the real crate builds and its tests run under
-C instrument-coverage, which makes the other half measurable in about
six minutes.

10,714 lines. 13.15% covered. 9,305 never executed by any test.

  viewport_input.rs      736 lines    0.00%
  viewport_render.rs   2,083 lines    0.00%
  workspace_actions.rs   690 lines    0.00%
  cad_editor_sheet.rs    224 lines    0.00%
  viewport_2d.rs         138 lines    0.00%
  code_editor.rs          67 lines    0.00%
  viewport.rs          3,548 lines   14.37%
  workspace.rs         2,462 lines   14.18%
  script_bindings.rs     724 lines   71.27%

viewport_input.rs is every click, drag, modifier and keystroke the
editor handles, and not one line of it has ever run in a test.
viewport_render.rs is every draw call.

This reframes the six sessions of engine work above it. 1044 green tests
and a 97% engine coexist with an input layer nothing has touched. Those
facts were never in tension — they were just never on the same page,
because the tool that produced the good number could not see the bad
one. A coverage figure that excludes the risky half is not a summary,
it is an average with the interesting term deleted.

The new script reports the widget files ONLY, on purpose. Folding them
into one number would let a 97% engine hide a 0% input layer, which is
the arithmetic this exists to prevent.

No floors yet, deliberately: a floor at 13% reads as a blessing rather
than a debt. The first real input test should set one behind it.

Verified: two runs, cold and warm, same numbers; script cleans its
profraw data on exit and refuses with a useful message when the native
packages or llvm-tools are missing.
2026-08-17 11:59:06 +00:00