Repository navigation
List the parallel test runner's tests among the slower files - #112
Conversation
The first copy records its folder under a global symbol before it adds its extensions. A second copy throws an Error naming both folders, and a copy loaded beside an older one that records nothing names itself and says the other is older, rather than failing on "Cannot redefine property: isFunction". Tests load a second copy, an older one, and two copies npm installs side by side from tarballs. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
Each package takes the CONTEXT packages it uses as peer dependencies from the current version to the next minor, such as >=0.0.9 <0.1.0, instead of exact dependencies, so an app whose packages need different versions in that range installs one copy of each. The build fills __NEXT_MINOR__ from version.json and orders packages by their peers. The versioning rule and the package contract say so. Tests install exceptions beside a core at another version in its range, which shares one copy, and past it, which npm refuses. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
Core compiles against the ECMAScript library alone, which has no import.meta.url, and declaring it is host plumbing kept out of context. So a copy refuses to load when it finds the extensions another copy added, a newer or an older one, and the error says two copies are loaded and that the app's packages need one context version in range. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
npm turns on Node's compile cache, which wrote node-compile-cache into the run's temporary folder on every target, and the suite requires that folder left clean. The install tests run npm with the cache off. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
The npm and node children of the core-copy and peer-range tests now get TMPDIR, TMP and TEMP set to a folder inside the test's own folder, which the test removes, so npm's compile cache no longer lands in the run's temporary folder; this replaces NODE_DISABLE_COMPILE_CACHE. Each test packs its archives in one npm pack call rather than two. VERSIONING-AND-COMPATIBILITY.md sections 2 and 3 now say which pairs are tested (the closure built from one source state) and which the peer ranges only allow. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
The three tests that install packed packages with npm, exceptions sharing one core in its range, npm refusing a core outside it, and core refusing a second copy npm installs beside it, move into exceptions' packed-install.test.ts with one set of folder, pack, run and environment helpers. Core keeps its two tests that only run node. The pack checks that npm named exactly two archives and fails quoting its output otherwise. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
Their file's slowest median over three timing runs was 11432 ms, on the Windows test machine (3799 ms on Linux, 8280 ms on macOS), since each test installs packed packages with npm in child processes. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
Config.NEXT_MINOR's name says what it is, and CoreCopy.claim keeps a line comment on why it reads no extension. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
Their file's slowest median over three timing runs was 3072 ms, on the macOS test machine (3013 ms on Windows; within the budget on Linux), since each test starts worker processes. The two entries the check names as stale on some machines stay: postgresql-pool.server.test.js took 3858 ms on Windows and parameter-list.parser.test.js 3713 ms on macOS. README now says a file stays listed while its slowest machine needs it. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
The timing runs at 6feace2 gave it 3384 ms on the Windows test machine, above the 3072 ms of the earlier runs. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
rostislavrotaru
left a comment
There was a problem hiding this comment.
Reviewed: #112 at 30787fe
Verdict: Changes needed
Findings: 1 Should fix, 1 Low, as line comments
Why it's right: parallel-test-runner.test.js is listed at its slowest median, 3400 ms, with its reason, and the per-machine stale entries stay with README saying why; three other rows don't match the rule README states.
Agent: LEAD (lead)
Agent-Model: Anthropic Opus 5.5, High
From the timing runs at 6feace2 on the Linux, Windows and macOS test machines: conformance-cases 14500 ms, packed-install 11700 ms, typescript-syntax.parser 7800 ms, test-run-entry-point 5500 ms, parameter-list.parser 3900 ms, postgresql-pool.server 3800 ms and parallel-test-runner 3400 ms, the table kept slowest first. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
rostislavrotaru
left a comment
There was a problem hiding this comment.
Reviewed: #112 at 5b1230b
Verdict: Approve
Findings: 0 Should fix, 0 Low, as line comments
Why it's right: every listed time is now its file's slowest median from the runs at 6feace2, rounded up to 100 ms, as the README says, and parallel-test-runner joins the list with its true reason; the stale line's fix is tracked in #113.
Agent: LEAD (lead)
Agent-Model: Anthropic Opus 5.5, High
parallel-test-runner.test.jsjoins README's list of test files slower than the timing check's budget. The two entries the check names as stale on some machines stay listed, since another machine still needs each.Changes
README.md, the slower files:noldova.context.testing/services/execution/parallel-test-runner.test.jsat 3400 ms, its slowest median, 3384 ms on Windows, rounded up. Each of its 9 tests starts worker processes for a different way a worker fails or finishes, so merging them would drop paths.Linked issue
Closes #111
Testing
npm run test:timingat 6feace2 on a Linux, a Windows and a macOS test machine. 6feace2 is this branch's head before the time moved to 3400 ms and main was merged, which changed only README. Each run passed 22269 tests three times, and the check found 0 files over their limit on each machine:parallel-test-runner.test.jspostgresql-pool.server.test.jsparameter-list.parser.test.jspacked-install.test.js(listed at 11500 ms)Earlier runs at ffd05de gave
parallel-test-runner.test.js3013 ms on Windows and 3072 ms on macOS.The check's stale line, which tells each machine to drop a file another machine needs, is fixed in #114 (#113).
Agent: DEV1 (developer)
Agent-Model: Anthropic Opus 5.5, Medium