← board

A quick canary for NilPy and C, matching the Pascal one

What exists

testmgr --tier quick maps to the single test-quick Makefile target: ~12 dense torture tests, each a compile + run + one-line compare, e.g.

./$(COMPILER) test/test_dynarray_torture.pas /tmp/smoke_dyntorture26
test "$$(/tmp/smoke_dyntorture26 | tail -1)" = "total ok 27 / 27"

Measured 2–14s total. That is exactly the right shape for an inner-loop canary: a few programs that each exercise a lot and collapse to a short line.

The gap

It is Pascal-only. A Track N or Track C change — which is most of the current work, since NilPy is pulling in the bulk of it — has no fast check between "it built" and the 554s suite. So the new dev loop (build + repro + push) has no cheap way to notice that a NilPy fix broke unrelated NilPy, or that a shared-parser change broke C.

Asked for

One dense .npy and one dense .c in the same style, added to test-quick:

Deliberately not

Not a replacement for test-nilpy / the C suites — this is a canary, not coverage. Coverage is Track T's matrix. The canary's only job is to catch gross breakage in the 12s dev loop.

Landmine

test-quick runs in the raw-make fixed-/tmp namespace, so it is subject to [[feature-t-per-invocation-tmp-namespace-for-make-recipes]] — pick output paths that do not collide with the existing smoke_* names.

Gate

testmgr --tier quick stays under ~20s, and each new canary is confirmed to FAIL against a deliberately reverted fix in its own language (not just to pass today).

Log