Skip to content

Split the test suite, through TestShards.jl - #32

Merged
sotashimozono merged 1 commit into
mainfrom
ci/adopt-testshards
Aug 3, 2026
Merged

Split the test suite, through TestShards.jl#32
sotashimozono merged 1 commit into
mainfrom
ci/adopt-testshards

Conversation

@sotashimozono

Copy link
Copy Markdown
Member

This suite ran as one job. It is now 16 units, split 4 ways by measured per-unit runtime.

What changes

runtests.jl globs test_*.jl under test/ and includes each one. A new file, or a whole new directory, is picked up by being on disk rather than by being added to the dirs list that used to sit here and could disagree with the tree.

dirs, FIG_BASE and PATHS go with it: nothing in test/ referenced the latter two, and dirs was only the loop's own input.

The split is not the only thing gained

On a suite this size it may not even be the main one. The reusable also:

  • checks that every unit ran exactly once — a claim no unsharded run has to make, and none was making;
  • merges the shards' coverage into one Codecov upload;
  • merges their records into one ordered document.

With no timing history the first run is round-robin and balances itself from the second push onward.

Notes

  • shards: 4 is a starting point. The diagnosis printed on every run names the knee for this suite — read it and set what it says rather than keeping the number out of inertia.
  • registries: General also refreshes: a registry present but stale resolves fine while failing to see anything published since it was last pulled.

Refs QAtlasHub/TestShards.jl#13.

🤖 Generated with Claude Code

This suite ran as one job. It is now 16 units, split 4 ways by measured per-unit runtime.

runtests.jl globs `test_*.jl` under test/ and includes each one, so a new file or a whole new
directory is picked up by being on disk rather than by being added to the `dirs` list that used
to sit here and could disagree with the tree. `dirs`, `FIG_BASE` and `PATHS` go with it: nothing
in test/ referenced the latter two, and `dirs` was only the loop's own input.

The split is not the only thing gained, and on a suite this size it may not be the main one. The
reusable also checks that every unit ran EXACTLY once — a claim no unsharded run has to make and
none was making — merges the shards' coverage into one upload, and merges their records into one
ordered document. With no timing history the first run is round-robin and balances itself from
the second push onward.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@sotashimozono
sotashimozono merged commit e21da8b into main Aug 3, 2026
6 of 8 checks passed
@sotashimozono
sotashimozono deleted the ci/adopt-testshards branch August 3, 2026 10:31
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

📚 Docs preview: https://QAtlasHub.github.io/ParallelManager.jl/previews/PR32/

(updates on each push to this PR)

@codecov

codecov Bot commented Aug 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant