Skip to content

List the parallel test runner's tests among the slower files - #112

Merged
rostislavrotaru merged 13 commits into
mainfrom
dev1/111-slow-file-list
Nov 15, 2026
Merged

rostislavrotaru merged 13 commits into
mainfrom
dev1/111-slow-file-list

Conversation

@rostislavrotaru

@rostislavrotaru rostislavrotaru commented Nov 15, 2026 •

Copy link
Copy Markdown
Contributor

parallel-test-runner.test.js joins 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.js at 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.
    • Every other row now gives its file's slowest median from these runs, rounded up: conformance-cases 14500 ms (was 14000), packed-install 11700 ms (11500), typescript-syntax.parser 7800 ms (6900), test-run-entry-point 5500 ms (5000), parameter-list.parser 3900 ms (3500) and postgresql-pool.server 3800 ms (4000). The table stays slowest first.
    • A new sentence says a file stays listed while its slowest machine needs it, so the check may name it as stale on a faster one. The sentence on stale files now says the list drops a file once it is stale on every machine.

Linked issue

Closes #111

Testing

npm run test:timing at 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:

File Linux Windows macOS
parallel-test-runner.test.js 1976 ms, stale 3384 ms 2957 ms, stale
postgresql-pool.server.test.js 2016 ms, stale 3750 ms 2220 ms, stale
parameter-list.parser.test.js 1148 ms, stale 1584 ms, stale 3845 ms
packed-install.test.js (listed at 11500 ms) 4319 ms 11651 ms 8261 ms

Earlier runs at ffd05de gave parallel-test-runner.test.js 3013 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

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
@rostislavrotaru rostislavrotaru self-assigned this Nov 15, 2026
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 rostislavrotaru left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread README.md Resolved
Comment thread README.md Resolved
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 rostislavrotaru left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@rostislavrotaru
rostislavrotaru merged commit 977ca5c into main Nov 15, 2026
16 checks passed
@rostislavrotaru
rostislavrotaru deleted the dev1/111-slow-file-list branch November 15, 2026 01:29
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.

Bring README's slow-file list in line with the timing check's medians

1 participant