Skip to content

12 of 54 tests/scripts suites are executed by nothing, and check-test-registration.py cannot see the class #408

Description

@localai-bot

12 of the 54 suites under tests/scripts/ are executed by nothing. They are not
in scripts/agent-preflight.sh's SUITES array, not in the explicit
python3 tests/scripts/test_*.py list of the agent-record job, not in any
other workflow, and not in CTest:

test_check_arm_isa_build
test_check_cpu_isa_build
test_check_pr_size
test_check_role_discipline
test_compiler_pragma_boundaries
test_cpu_kernel_bench
test_gen_vulkan_spirv
test_main_baseline          <- registered by #274's repair; the rest are not
test_mlx_system_headers
test_now_render
test_ready_for_helper
test_record_merge_shape

Reproduce:

for f in tests/scripts/test_*.py; do b=$(basename "$f" .py)
  grep -q "$b" scripts/agent-preflight.sh || grep -q "$b" .github/workflows/ci.yml || echo "$b"
done

(test_check_role_discipline is named inside scripts/check-pr-size.py as a
path classification, not as an execution; test_cpu_kernel_bench is named in
examples/CMakeLists.txt for a different target.)

Why no checker notices

scripts/check-test-registration.py is the natural home and cannot see this
class by construction. Its REQUIRED_TESTS (scripts/check-test-registration.py:35)
is a fixed two-entry map naming one C++ target, and its wiring_errors() proves
only that the checker and its own mutation suite are wired into preflight and
CI. It is a self-guard, not a population guard, so a new Python suite added
tomorrow is silently unregistered exactly like these twelve.

Found by

The fresh review of PR #397 (issue #274). That PR's tests/scripts/test_main_baseline.py
is 44 tests guarding every claim the row makes, and grep -rn test_main_baseline .
returned exactly one hit: the file itself. The instance is fixed in #397 by
registering it in both places. The class is this issue.

What closing this looks like

Extend check-test-registration.py (or add a sibling) so that every
tests/scripts/test_*.py is either executed by preflight + CI, or listed in an
explicit, commented exemption set that names why. Changing that checker's
semantics is a spec + red-before-mutation + green-after change under AGENTS.md
"Changing the rules or a checker", and it must add its mutations to
tests/scripts/test_check_test_registration.py and re-pin
MUTATION_MANIFEST_SHA256 — which is why it was judged out of scope for the
#397 review repair rather than done inline.

Then register (or consciously exempt) the other eleven suites. Several of them
almost certainly fail today, which is the point.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions