Skip to content

scripts/test.sh: eleven test files match no glob, so the integration-point and swarm suites have never run in CI #721

Closed

Description

@lmoresi

What we found

scripts/test.sh selects serial tests with numeric batch globs. One of them,

$PYTEST tests/test_005[1-9]*py tests/test_006[0-1]*py || status=1

stopped covering its own band as soon as test_0062 was added. Eleven test
files currently match no glob in the script and have never run in CI:

tests/test_0062_rotated_constraint_exclusivity.py
tests/test_0063_mpi_hang_supervisor.py
tests/test_0064_quadrature_point_fe.py          <- #703
tests/test_0065_integration_point_variable.py   <- #703
tests/test_0066_integration_point_slcn.py       <- #703
tests/test_0067_integration_point_proxy.py      <- #707
tests/test_0068_swarm_repopulation.py           <- #713
tests/test_0069_swarm_midtime_velocity.py       <- #713
tests/test_0070_ve_stress_history_on_particles.py <- #713
tests/test_0301_meshvariable_clone.py
tests/test_1030_analytic_zhong2008.py

That is the entire integration-point suite delivered by #703 and #707, and the
repopulation / mid-time-velocity / VE-stress-on-particles tests delivered by
#713. Each of those PRs shipped green.

This is separate from test_106*/test_107*, which are deferred on purpose
and documented in the script against #504.

Why it is the shape of the problem, not one glob

A numeric range has to be widened by hand every time the band grows, and
nothing says when it wasn't. This is the #570 class. Widening
test_006[0-1] to test_00[6-9] fixes today's instance and leaves the next
one to chance.

Fix

Widen the stale globs, and add scripts/check_test_coverage.py, which fails
the run if any tests/test_*.py matches no glob. Files deferred by decision
go in a DEFERRED list carrying the reason and issue, on the same terms as
the allowlist in check_deprecated_patterns.py: it may only shrink.

Underworld development team with AI support from Claude Code

Activity

  1. lmoresi commented on Oct 5, 2026

    @lmoresi
    MemberAuthor

    Already fixed. Probed against development (1391e4aa):

    $ python scripts/check_test_coverage.py
    OK: all 315 test files are reachable from scripts/test.sh (0 deferred by decision).
    

    The checker that this issue motivated now enforces it, so a file falling outside the globs fails rather than going dark. Closed under the issue-adjudication rule in #819.

  2. lmoresi commented on Oct 12, 2026

    @lmoresi
    MemberAuthor

    Reopened and labelled fixed-in-development, under the policy now in CLAUDE.md:

    While the fix is in an open PR, label the issue fixed-in-PR; when the PR merges, relabel it fixed-in-development, comment with the PR and the merge commit, and leave it open. Issues are closed when development is released to main.

    The fix stands and the evidence above is unchanged — this is a bookkeeping correction, not a reversal. Closing it on merge was wrong because development has not been released, so anyone running the release still has the defect; the label says where the fix is and the release sweep closes it.

  3. added
    fixed-in-developmentFix merged to development; the issue closes when it is released to main
    on Oct 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    fixed-in-developmentFix merged to development; the issue closes when it is released to main

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions