test(web): heldMs bounds in server-boundary-records are timer-deterministic - #3531
Conversation
…nistic 'a grouped boundary that errors still records' failed CI on #3526 with heldMs 7.28 against a >= 10 floor: a 5 ms timer (the error) and a 20 ms timer (the sibling) raced on a loaded runner, and the hold is the gap between them. B now settles a fixed 30 ms AFTER A has failed (a deferred A resolves before it throws), so the hold's lower bound is a single timer's — a timer never fires early — and the floor is 25. Same shape for 'order=together': B is released 40 ms after A has settled, not 40 ms after the stream started; floors 35 (held) and 40 (B's duration); A's duration is asserted shorter than its own hold rather than under a wall-clock constant. Co-authored-by: Claude via Cursor <noreply@cursor.com>
|
Coverage Report for CI Build 35310559831Coverage remained the same at 71.304%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
Merging this PR will not alter performance
Comparing Footnotes
|
a grouped boundary that errors still recordsfailed CI on #3526 (heldMs7.28 against a>= 10floor). The hold is the gap between two independent timers — a 5 ms error and a 20 ms sibling — and on a loaded runner they raced.Now the sibling settles a fixed 30 ms after A has failed (a deferred A resolves just before it throws), so the hold's lower bound is one timer's, and a timer never fires early; floor 25. Same treatment for
order=together: B is released 40 ms after A has settled, not after the stream started; floors 35 / 40; A's duration is asserted shorter than its own hold instead of under a wall-clock constant. Theorder=naturaltest only asserts< 10on an un-held reveal and is unchanged.Test-only. Passes 6/6 locally in isolation; the other six failures in this file locally are the pre-existing compiler-binary ones that also fail on
origin/nextin my worktree.Made with Cursor