internal/test-plugins.sh builds its test runner with --tests over the whole workspace, so that a verification whose native run just built every test binary reuses them rather than resolving features a second way. CI no longer runs the two together, so on the plugin runner that was a second build of all of them for the sake of one bin. --runner-only drops it, and ./scripts/verify passes that whenever the native test phase is not part of the same run. Measured cold, the shared shape is 571 crates and 44 linked binaries against 246 and one, six and a half minutes against four. The two resolutions differ by exactly one feature. A dev-dependency asks wgpu for its noop backend, so the runner built the shared way carries five megabytes of a backend it can never reach: an adapter from it is handed out only when NoopBackendOptions says so, which defaults to off and which nothing here sets, and the runner asks wgpu::Instance::default() for a real one. Both shapes run all 184 plugin tests. Which shape built the runner now decides whether a precompiled test module is still good, the way common.sh already asks that of a plugin's own .cwasm against the compiler that wrote it. An artifact wasmtime refuses is not an error, it is every test process compiling the module again for itself, which is minutes of a run that says nothing about why it got slow. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015KH6aAKUjaWJy7BEuXkcXr
2 files changedLine totals unavailable