Repository navigation
CI: refresh .test_durations from main's real timings (Part of #5133) - #5255
Merged
Merged
Conversation
… seconds (Part of #5133) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
No description provided. |
squid-protocol
marked this pull request as ready for review
October 16, 2026 13:14
Owner
Author
|
No description provided. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #5133
What
.test_durationsregenerated from the real per-test seconds of main run 38901664312 (ea93351d8, after #5247): the threetest-times-part-*artifacts merged, 21549 tests, none unrecorded (the old file lacked 180 and held 13 stale ones).Predicted per-part sums (
least_duration, replayed offline against the real seconds)Replay used my own re-implementation of least_duration (sort descending, give each test to the lightest group);
pytest-splitis not installed in the box venv, so the real plugin's tie-breaking was not run. Wall scales by about 0.33 min per 100 s of test seconds, so the refreshed file predicts about 5.6 min per part, not the 7-8 min the brief gave as a target: there is no total left to spread, the suite is 3025 s of test seconds in all.Ground truth (not fixable by this file)
mainframe-ground-truth.ymlsplits by explicit file lists, not durations. Summing this file overtests/cobol_mainframe/: part 1 (everything but two files, plus the ledger check) 1071 s, part 2 408 s (test_evidence_components.py has no entries here, so part 2 is understated).least_duration2-way would be 740 / 740 s, about 7 min each. Matches 10.8 / 3.3 min wall.Open items (workflow edits, not authorized here)
tests:lists with--splits 2 --group N --splitting-algorithm least_duration(and put the ledger step on the lighter part).full-suite-partbalances by the newesttest-durations-*cache (run 38247246921, 2026-10-12), not this file; the file is only the cache-miss fallback and the full-suite-gate input. The next nightly saves a fresh cache; until then the smoke parts stay at 4.9/7.1/4.8.Sibling gaps
Gates
pr_gates --fast6/6 pass;--ratchets8/8 pass;time_ratchet.py check(reads slow marks from source): 0 over the limit, 7 warned.Lessons for agents
time_ratchet.py check --times .test_durationsskips the source slow-mark read and false-fails on module-scoped fixture cost; run it with no--timesto check the committed file.{"seconds": {...}, "slow": ...}, not pytest-split format: take["seconds"].🤖 Generated with Claude Code