Repository navigation
test(render): control registered renderer phase deadlines - #2006
Conversation
|
Current-head qualification for #1947 / #1849: CI run 38840172326, attempt 1, passes all 13 selected jobs. Every executed job checkout log and all eleven independently downloaded/hash-verified artifact archives agree on checkout
Packaging is intentionally unselected for this test-only contribution. Unit proof passes 8,012 tests, browser proof 8,808 tests, and layout proof 1,093 tests. All 16 phase-budget cases pass in the shared unit shard. The original 65 matcher sites retain order and expected payloads within all 15 original cases (static AST check plus input/diff review); the original 82 executed expectations remain within the expanded 184. Unit skips are 24 opt-in paid image cases and four inactive vector-unavailability fallback sentinels; the corresponding real vector cases pass. Browser skips are ten coarse-touch cases intentionally excluded in fine-pointer projects. Native healthy cells, expected negative controls, ten-minute encoding and cleanup remain exercised; no unavailable runtime is reported as passing. Measured qualification cost: 6,852 executed job-seconds and 1,499 seconds event-to-completion. This excludes separate contract/project workflows and local work; it is validation cost, not optimization savings. The earlier title/label contract cancellations contain no test rerun. No test job was retried. Live main advanced through #1907 (interactive-share behavior) and #2007 (storage documentation attribution). Neither changes the renderer, its dependency closure, this fixture or the test harness. The recorded passing checkout remains distinct from the eventual combined squash; independent main proof will retain its own source identity.
|
|
Merged #1947 via PR #2006 as Automatic main CI 38842537268, attempt 1, passes all 13 selected jobs. Every executed job checkout log and all eleven independently downloaded/hash-verified artifact archives identify this actual squash/tree/parent. All original renderer assertions, 2000 ms logical cleanup boundary and separate native Chrome/endurance proof remain. No failed test job was retried. The separate website workflow also passed.
Main qualification cost is 6,674 executed job-seconds and 1,509 seconds event-to-completion. Together with PR qualification (6,852 job-seconds), these two CI runs cost 13,526 executed job-seconds, excluding separate workflows, queue outside event elapsed and local/engineering work. These are validation costs, not matched optimization savings. The committed paired fixture measurement remains 3.15 → 0.11 seconds for the full command, with 15 original cases retained and a sixteenth cleanup control added. Original 65 matcher sites/payloads are retained; candidate runs 184 expectations. Wrong deadlines/phase, cancellation/rearm, late capture, duplicate close and restoration controls fail intended assertions; narrower redundant-guard survivors remain explicitly documented. This establishes no whole-CI, native-duration or reliable CPU/RSS improvement. PR #2006 and closed #1947 both retain release milestone 0.44.0 (58). No downstream open issue declares #1947 as a blocker. Epic #1849 remains open with other work; this invocation does not claim another child.
|
Closes #1947
Refs #1849
What changed
The all-double renderer phase-budget fixture drives actual registered queue, acquisition, rendering, idle and cleanup timers with a test-local clock. It retains all 15 original cases and their behavioral expectations, adds exact boundaries, overlap/cancellation/rearming checks and a failure-path cleanup control (16 cases / 184 expectations). Late promise continuations still execute before resource/capture assertions. Production deadlines, options, renderer behavior and native Chromium proof remain unchanged.
Why this shape
#1947 explicitly scopes this file to scheduling policy with doubles. Native event-loop turns drain its finite promise continuations; registration and resource effects establish phase readiness. Complete timeout descriptors are restored in finally. Real outer failure ceilings remain independent. No production injection seam, dependency, contract change or consumer-visible changeset is needed.
Proof
Head
d6024807fstarts from base4e4a663f98054d86f2dc90154b42ffbe8f8b7692. Local checks passed:bun run test packages/ui-render-puppeteer/tests/phase-budgets.test.ts bun run typecheck bun run check:pr --base origin/mainPreflight: 288 cases / 3062 expectations. Focused restoration: 16 cases / 184 expectations. Committed evidence preserves source hashes, original logs, timer observations, mutation results and matched same-host commands. Full command: 3.15 → 0.11 s; wedged cleanup: 2.13 → 0.11 s; two phase cases: 0.51 → 0.11 s. Full summed bodies: 3024.55 → 6.96 ms. These overlapping scopes are not additive or a whole-CI gain. Installation (9.57 s), command overhead, CPU/RSS and observer runs are separately recorded.
Mutations fail intended assertions: changed requested deadlines or rendering phase fail registration; missing cancellation/rearm fails timer state; one-millisecond early/late scheduler faults fail boundary state; removed expiration guards fail original late-capture count (0 expected, 1 received); duplicated close fails original close count (1 expected, 2 received); omitted restoration fails complete descriptor equality. All were restored. Narrower post-content-only and memoization-only mutations survive independent safeguards; those limits are recorded without claiming detection.
All 13 selected hosted jobs passed. The qualification receipt records every executed job checkout, independently verified archive hashes, original head/base/tree, test counts, source-conditional exclusions, cost and unrelated main advancement.
Checklist
docs/reflect the change, or nothing documented moved.Anything left open
This delivers only #1947; other #1849 children and final epic-wide qualification remain open. The historical timing pair makes no native browser-duration, reliable CPU/RSS or whole-CI speedup claim.