Skip to content

tests: balance the ownership-manifest control shards by checker work, drop the stale 180 s wording - #561

Closed
luisleo526 wants to merge 2 commits into
mainfrom
tests/manifest-shard-balance
Closed

luisleo526 wants to merge 2 commits into
mainfrom
tests/manifest-shard-balance

Conversation

@luisleo526

Copy link
Copy Markdown
Collaborator

tests: balance the ownership-manifest control shards by checker work, drop the stale 180 s wording

test_selected_window_ownership_manifest_controls_shard_1of4 took 74 s on an idle
8-vCPU box while shards 2-4 took 41-50 s (the modulo split over sorted case ids
put the heaviest controls together). The four rows carry no explicit TIMEOUT
any more (#504 removed it) but the tree still described a 180 s budget and the
CMake guard still exempted the exact old statement.

  • Shards are now assigned largest-first to the lightest shard, with a weight per
    case read from its AST (checker subprocess launches, through self helpers and
    literal loops). No measured seconds are stored. The partition stays exact,
    order independent and deterministic; --shard I/N validation and the
    "ran N tests as selected" fail-closed check are unchanged.
  • The two 60 s subprocess deadlines inside the controls are removed.
  • scripts/check_cr150_cmake_d.py no longer exempts the old six-row
    "TIMEOUT 180" statement, and its test now requires the refusal.
  • docs/ci.md, tests/ownership/README.md and the CMake comment describe the
    balancing and no deadline.
  • New rows: balance bound (max/min <= 5/4, violated by the old split) and an
    estimator row; the partition row now checks input-order independence.

Measured on a throwaway 8-vCPU spot VM: shards 51/57/53/55 s after, 74/42/41/50 s
before.

🤖 Generated with Claude Code

luisleo526 and others added 2 commits October 28, 2026 02:39
… drop the stale 180 s wording

test_selected_window_ownership_manifest_controls_shard_1of4 took 74 s on an idle
8-vCPU box while shards 2-4 took 41-50 s (the modulo split over sorted case ids
put the heaviest controls together). The four rows carry no explicit TIMEOUT
any more (#504 removed it) but the tree still described a 180 s budget and the
CMake guard still exempted the exact old statement.

- Shards are now assigned largest-first to the lightest shard, with a weight per
  case read from its AST (checker subprocess launches, through self helpers and
  literal loops). No measured seconds are stored. The partition stays exact,
  order independent and deterministic; --shard I/N validation and the
  "ran N tests as selected" fail-closed check are unchanged.
- The two 60 s subprocess deadlines inside the controls are removed.
- scripts/check_cr150_cmake_d.py no longer exempts the old six-row
  "TIMEOUT 180" statement, and its test now requires the refusal.
- docs/ci.md, tests/ownership/README.md and the CMake comment describe the
  balancing and no deadline.
- New rows: balance bound (max/min <= 5/4, violated by the old split) and an
  estimator row; the partition row now checks input-order independence.

Measured on a throwaway 8-vCPU spot VM: shards 51/57/53/55 s after, 74/42/41/50 s
before.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
@luisleo526

Copy link
Copy Markdown
Collaborator Author

Closing: this change is being remade as one clean commit on the current main (each commit's message must name the sentences it removes), and will be opened as a new PR.

@luisleo526

Copy link
Copy Markdown
Collaborator Author

Superseded by #585.

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